|
|
|
|
|
by jbmsf
1858 days ago
|
|
When I set up a product deployment system, I want: 1. IaC for the network, database, container definitions, and other cloud things. I use terraform here.
2. CI/CD for the application software, which ultimately builds a container image from version control, tags it in some well-know way, and tells the container scheduler to redeploy. I tend to use CircleCI, but any CI solution will do.
3. Configuration management for my container definitions, injecting environment variables for config/secrets into the definition or runtime. I tend to use Ansible or Terraform here. For me, the main criteria is whether the product has a large number of components with configuration that needs to reuse common structures. If I'm just deploying one or two components (e.g. your typical early-stage monolith), Terraform is fine. Bt if you have many users contributing to many components and want to provide higher-level tools, I vastly prefer using Ansible; you just have more control. That is, I believe in Ansible as a tool for applying configuration from source control to some other system; I would no longer use it to provision cloud resources. |
|