Cloudformation is a pain at scale because they dont offer a good solution to break up your template in components or modules. The includes function that relies on S3 is just poor workflow and it doesn't solve the problem either.
My recommendation is Terraform and optionally in combination with Terragrunt for the simple reason it supports the break down of your infrastructure into modules, it can handle multiple environment deployments, it manages state and you can share that state with multiple DevOps people and work on it simultaneously.
It promotes reusable and DRY IaC templates and actually reduce time spend on configuration and maintaining the configuraiton codebase.
Terraform can setup your github, your CI/CD pipelines on AWS or on Azure or on Google Cloud. It's service agnostic and it combines them all in one workflow.
Cloudformation is a pain at scale because they dont offer a good solution to break up your template in components or modules. The includes function that relies on S3 is just poor workflow and it doesn't solve the problem either.
My recommendation is Terraform and optionally in combination with Terragrunt for the simple reason it supports the break down of your infrastructure into modules, it can handle multiple environment deployments, it manages state and you can share that state with multiple DevOps people and work on it simultaneously.
It promotes reusable and DRY IaC templates and actually reduce time spend on configuration and maintaining the configuraiton codebase.
Terraform can setup your github, your CI/CD pipelines on AWS or on Azure or on Google Cloud. It's service agnostic and it combines them all in one workflow.
perhaps this example on medium can show you what I mean, i quickly googled it:
medium.com/@I_M_Harsh/build-and-de...
I will try this, thanks a lot!