Categories
Daily Check-in

The beautiful simplicity of Infrastructure as Code (IaC)

It was June of 2022… I had just been hired for my first internship with a Trimble, Inc. As a young engineer with no practical experience, I went into the internship with a very common skillset for students. In my first several years of study, I was introduced to the fundamentals of programming and operating systems. I was also taught how to develop websites and manage their hosting environment. What I wasn’t taught… is how to deploy those hosting environments in a cloud environment. I hadn’t yet realized the impact technologies such as Terraform had made on the deployment mechanism’s in live production environments. I didn’t yet know what Infrastructure as Code (IaC) meant. I was about to learn.

Terraform is a simple, declarative programming language that allows infrastructure to be provisioned as code. Terraform is a vendor agnostic tool widely utilized and supported. All major cloud platforms (AWS, GCP, Azure, etc.) support Terraform provisioning. I had an opportunity to begin learning Terraform use strategies early in my career with Trimble, and I continue to utilize it today. If I was asked to share my favorite technology / framework to work in, there is no competition; terraform is the winner.

Some of the benefits of Infrastructure as Code are:

  • When Infrastructure configuration is stored as code, it can be versioned (AZDO, GitHub, etc)
  • When Infrastructure configuration is stored as code, changes can be tested and rolled back as part of standard CI / CD deployments.
  • Combined with the scalability of cloud computing, Infrastructure as Code creates more opportunities for low or zero downtime deployment strategies (such as blue / green deployments and canary deployments).

I am looking forward to incorporating the use of terraform into my current project, Dividend Dollars Investment App. For this application, we are planning to run a MySQL DB instance and Web Server on Google Cloud Platform (GCP). Being able to lay down these components as part of our CI / CD pipeline will allow us to manage cost and streamline development.

Infrastructure as Code was a career-altering experience for me as an engineer. I highly recommend it as a potential area of study for current students.