The benefits of adopting an infrastructure-as-code (IAC) approach to provisioning and managing resources is widely accepted. The benefits unlocked by using Hashicorp's Terraform for this are also well documented, in short;
- Version Control: Terraform code can be stored in a version control system, making it easy to track changes and collaborate with others.
- Repeatability: Terraform IAC can be executed repeatedly, ensuring consistent and predictable infrastructure deployment.
- Idempotency: Terraform ensures that the desired state of infrastructure is always met, regardless of how many times the workflow is run.
- Automation: Terraform can help automate the provisioning and management of infrastructure, reducing manual effort and the risk of human error.
- Scalability: Terraform can manage multiple AWS resources and scale infrastructure up or down as needed.
- Improved visibility: Terraform provides clear and concise documentation of the infrastructure and its configuration, making it easier to understand and manage.
- Cross-provider support: Terraform can provision and manage infrastructure across multiple cloud providers, including AWS, making it a versatile tool for managing infrastructure.
At what cost and risk?
The challenge to unlocking those benefits though is to find an approach will be cost effective and minimise your risks. Developing and maintaining an IAC library can have opportunity costs for your team, to name but a few:
- Learning curve: Terraform is still a new tool that requires time and effort to learn and master, which can be a significant opportunity cost for teams without prior experience.
- Maintenance: Terraform IAC must be regularly updated and maintained, requiring ongoing effort and resources, which can divert attention from other priorities.
- Integration: Terraform must be integrated with other tools and systems, requiring additional effort and resources, and potentially delaying other projects.
- Complexity: Complex Terraform IAC can be difficult to understand and maintain, making it challenging to identify and resolve issues.
- Risk of errors: Using Terraform can introduce errors or unexpected behavior into the infrastructure, leading to downtime and other issues that impact the business.
- Limited functionality: Terraform may not have mature support for all AWS services that large enterprises use (governance, policy and organization level resources), requiring additional custom development, which increases the effort and cost of maintaining the Terraform library.
Don't take our word for it!
A great example of the benefits vs risks can be seen from the Gartner reviews section; clear benefits gained with some of the most important challenges and risks surfaced. (Original here)
Why use an IAC Library?
Q: Is IAC (Terraform) development part of your core business or a core function of your team?
I expect the answer to that for many businesses will be "No".
Q: Is IAC engineering how you build and operate your applications and services at scale?
If you're reading this, then the likely answer is "Yes" - but you don't need to be an IAC developer to gain from the benefits that adopting IAC can bring.
At Hestio, our view of the landscape for technology teams in large enterprises looks like this;
|Developer Teams||Delivery Teams||Operations Teams|
|"We use many different languages to codify our applications and services. We are already developers. Terraform is another language that we could use to extend our capability to include all of the supporting infrastructure as well."||"We can use Terraform to provision, manage and scale our infrastructure and workloads on AWS. Terraform gives us the efficiency and consistency we need to get the job done so we can get back to bringing more value to the business in other ways"||"We can use Terraform to detect undesired or unintended changes to deployed workloads and realign that back to a target state that complies with policy, governance or cost controls."|
|Terraform enables us to develop value for the business||Terraform accelerates the pace we deliver to the business||Terraform supports our function to the business|
Did you see any of those teams claim or want to be Terraform developers? No, neither do we. Consider using an IAC library to bring that value to your business but without the cost of designing, developing and maintaining it.
At Hestio, that is our business. Let us enable and accelerate your business so you can get on with yours.
At Hestio, we have taken our experience with designing and building on cloud to codify these patterns and made them available as a low-code pattern library for AWS. Why spend time and effort on reinventing the wheel when it's already a solved problem? Would you start developing office productivity software in a world where Microsoft Office already exists?
If you'd like to find out more about the products and services Hestio has to offer, select one of the options below.