3 ms·
I run and own a DevOps consulting company. Huge proponent of Packer + Terraform. Running commands and copying files on boot of VM instances can be a bit dodgy
by nodesocket 6y ago
I run and own a DevOps consulting company.
Huge proponent of Packer + Terraform. Running commands and copying files on boot of VM instances can be a bit dodgy (cloud-init) or using Terraform provisioner "file" or provisioner "remote-exec", but they work. Typically you want to "bake" as much as possible into the AMI using Packer and anything that is runtime dependent, can be setup by Terraform on instance create using the methods described above.
If you running standard Docker containers and AWS, highly recommend AWS ECS using Fargate[1]. No servers to manage, just define the services and container details and ECS runs the containers for you. Blue-green deploys and auto-scaling out of the box with health checks.
If you running Kubernetes, I highly recommend looking at using Terraform to manage the Kubernetes resources[2]. Helm, while nearly a defacto standard is full of edge cases, weird quirks, and utter frustration. Oftentimes Helm is required though to work within the Kubernetes ecosystem.
[1] https://aws.amazon.com/fargate/
[2] https://www.terraform.io/docs/providers/kubernetes/index.html
- freedomben 6y agoBe aware that you are locking yourself into AWS if you structure everything around ECS. IMHO once you hit a certain scale the dream of vendor-independence is a lie anyway. But while you are still small, I wouldn't box yourself in. Just my opinion of course.