I love Infrastructure as Code. I can not imagine a world without it. The way it allows for higher speed, better disaster recovery, scalability, standardization, security, documentation, and the list goes on.
IaC has lots of similarities to configuration as code, it also has similar downsides. I see them mainly at the intersection of DevOps and developers and to be precise in the way IaC gets executed. Do you let developers operate the setup themselves and add significant cognitive load, increasing the risk of screwing up? Do you bake it into pipelines and take away flexibility?
This is an area where the last word hasn’t been spoken yet. My colleague Luca wrote a great piece with lots of input from other industry experts on the good, the bad, and the future of IaC.
Interestingly enough I’m seeing a new design pattern evolve around Internal Developer Platforms and their relationship to IaC, it’s the train we’re jumping on.
Let me briefly explain: teams add a driver component to a platform API (like Humanitec’s) from which developers can request resources without worrying about the details of the underlying implementation. A driver has two web-accessible end-points (put and delete). They wrap any IaC setup, execute it and pick up the resource information (e.g. db name, user, host, pw) and pass it on to the platform API. The API can now feed the information to the developer directly or inject it into the correct container to wire a workload to its dependencies. This approach has a couple of positives:
- Developers can dynamically request whatever resources necessary, even fully provisioned environments
- Devs don’t mingle in scripts, nor do they need to understand the implementation in detail
- The underlying IaC can be maintained by a central team
- Because of the un-opinionated nature of the driver, you can switch between IaC providers on the fly
- You can encompass and mix IaC approaches from CloudFormation, Terraform, Pulumi, etc and orchestrate them even with the same call
If you want to bring self-service to your IaC setup or you just want to chat: book a slot on my calendar and let’s talk. Engineer to engineer, no strings attached.
Also, James Whinn is back as a guest in our webinar talking about the Challenges of Migrating Enterprise Setups to Kubernetes and Lian Li will cover why Kubernetes will not save you in 2 weeks.
Enjoy a (hopefully) Corona-free summer,
Kaspar