This blog series focuses on presenting complex DevOps projects as simple and approachable via plain language and lots of pictures. You can do it!

Hey all!

I’ve written in the past about my trials and tribulations designing and running a terraform and general CI/CD platform that’s used by 10+ teams to run ~130 terraform pipelines to deploy to 50+ environments across Azure and AWS.

When designing the system, I knew that’d it’d need to scale up and out to a great degree — any pattern and solution we chose would be stressed both by upward growth (running terraform and other deploys hundreds of times per day) and outward (scaling out to hundreds or maybe thousands of pipelines and workflows). Because of that, I’m extremely sensitive to:

  • Good design patterns that make sense and can scale out ad infinitum
  • Automating all that can be automated — lower the bar of knowledge that lets a dev or operations engineer take advantage of the system

I’ve also had to train all the users on this system and good patterns, and for every single person, I’ve stressed that they need to read the pull request validation before approving a PR. That pull request validation runs tflint as well as terraform init + validate + plan.

And for every single person I’ve trained, I’ve had to include the caveat that on the “terraform plan” stage there will be dozens and probably HUNDREDS of trash lines that they need to ignore and scroll past to get to the real information — what terraform plan says it’s going to do based on the PR.

#azure-devops #continuous-integration #software-engineering #programming #terraform

Let’s Do DevOps: Reduce Noise in Terraform Plans
1.20 GEEK