This page explains the maturity model for Terraform on Google Cloud. This model provides best practices, recommendations, and learning materials that meet you at your level of comfort and expertise with Terraform on Google Cloud.
Overview
Terraform on Google Cloud has three user personas (Learners, Builders, and Operators), and three stages of the maturity model (Adopt, Build, and Scale).
As organizations advance through the process of adopting, building, and scaling Terraform on Google Cloud for their infrastructure use-cases, they need accessible learning materials that provide the guidance they need wherever they are at on their journey.
Determine which of these personas represent you the best and look at the associated content to find resources that will help you and your organization advance through the maturity stages, enabling you to apply your use case to Terraform on Google Cloud at scale.
Adopt (Learner)
Learners are beginning their journey on Google Cloud and focus on opinionated guidance to learn how to use Terraform on Google Cloud and adopt it for their use case.
They may have some knowledge of Bash or other scripting languages, but they don't use automation or CI/CD today to provision infrastructure.
Build (Builder)
Builders have experience with Infrastructure as Code and use Google Cloud to build their projects.
They work with foundational infrastructure and a few applications on Google Cloud. Builders plan on growing their cloud usage, specific use cases, and customizations, and think about scaling and onboarding more teams or applications.
Scale (Operator)
Operators are experienced with Google Cloud and use Terraform to provision infrastructure for their workloads at scale.
They scale and grow cloud usage, specific use cases, customizations, and onboard more teams and workloads. Operators set policies and self serve workflows for workload teams.
You may be a Learner if you are:
- a developer
- new to Google Cloud, Infrastructure as Code, or Terraform
You may be a Builder if you are:
- a developer
- on a platform admin team
- on a Cloud team
- a SRE
- familiar with working on Google Cloud, Terraform, and have a Infrastructure as Code operation model
You may be an Operator if you are:
- on a platform admin team
- on a Cloud team
- a SRE
- experienced operating a Google Cloud, and a Terraform operation model at scale
Criteria
This table details some of the criteria for each maturity stage to help you determine which fits best with your level of familiarity with Terraform on Google Cloud and your use case.
Adopt | Build | Scale | |
---|---|---|---|
Method | UI, CLI, and/or Terraform as a Service | Infrastructure as Code via Infra Manager | Infrastructure as Code via (1) Terraform OSS + Custom Pipelines or (2) Terraform Enterprise on Google Cloud |
Automation | None or Limited | Limited | Yes |
Consistency | None or Limited | Limited | Yes |
Configuration | Unstructured, stored in a variety of locations | Structured, stored in a central location | Structured, stored in a version control system and versioned |
Deployment | Manual | Automated using a CI/CD pipeline | Automated using a CI/CD pipeline |
State | Not stored | Stored in a central location | Stored in a central location |
Drift | Not monitored or managed | Monitored and managed | Monitored and managed |
Documentation | Not maintained | Maintained | Well-documented |
Review and Approval | Not required | Required | Required |
Integration with Cloud Management Platform | Not integrated | Not integrated | Integrated with a cloud management platform |
Range of Cloud Resources | Limited | Wide | Wide |
Cost Optimization | Some concern | Some concern | Used |
Security | Not a concern | Some concern | High concern |
Compliance | Not a concern | Some concern | High concern |
Recommendations
The following table lists some recommended topics based on the maturity stage of your organization and your use case with Terraform on Google Cloud.
Adopt | Build | Scale | |
---|---|---|---|
Discover & Learn | |||
Training & Tutorials |
|
||
Templates/ Ready to use |
|||
Deploy & Manage | |||
Support | |||
|