Hi! I’m Chris. I’m a Solutions Engineer with CircleCI. I love speaking with prospective customers and technology partners, solving challenging issues, working with very talented engineers, and helping folks get the most out of our platform. My role is very much at the intersection of engineering and sales. At this intersection, I do a lot of demos that show off complicated things in deterministic ways, and I constantly find myself spending time recreating demo environments. Before transitioning into this role, I was on CircleCI’s SRE team for about two years. On the SRE side of things, I discovered a wonderful piece of software that helps me with my demos called HashiCorp Terraform. I’m sure many of you are familiar with it, but if not, here is the tl;dr:
Terraform is a magical tool that enables the automatic provisioning of infrastructure based on declarative templates, written either in HCL (HashiCorp Configuration Language) or JSON. These manifests represent declarative snapshots of what the desired state of your infrastructure would look like. Emphasis on declarative rather than procedural.
This is the first post in a two-part series. This post will focus on the basics of Infrastructure as Code (IaC), addressing a fundamental question that I’m often asked when speaking with folks who are new to the platform: “Can I use Terraform on CircleCI?” The answer is yes. Yes you can! The followup post will contain best practices for executing Terraform on CircleCI and address more sophisticated use cases.