If your team is used to managing all of its infrastructure by hand, switching to infrastructure as code (IAC) requires more than just introducing a new tool or technology. It also requires changing the culture and processes of the team. In particular, your team will need to shift from a mindset of making changes directly to infrastructure (e.g., by SSHing to a server and running commands) to a mindset where you make those changes indirectly (e.g., by updating Terraform code) and allowing automated processes to do all the actual work.
Making this transition can be a bit uncomfortable. Initially, team members may complain, as learning new languages, new technologies, and new processes will feel slower and more complicated than just jumping onto a server manually like they’ve been doing for years. But this up-front investment in learning has a massive payoff. Doing things by hand may feel simpler and faster for a few servers, but once you have tens, hundreds, or thousands of servers, proper IAC processes are the only options that work.
In this chapter, I’ll dive into the key processes you need to put in place to make IAC work for your team, including:
Let’s go through these topics one at a time.
As a reminder, all of the code examples in the book can be found at the following URL: https://github.com/brikis98/terraform-up-and-running-code.