Terraform on Google Cloud maturity model

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.

Terraform on Google Cloud maturity model diagram

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.

You may be a Learner if you are:

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.

You may be a Builder if you are:

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 an Operator if you are:

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
  • Export resources into Terraform
  • Import resources into Terraform state
  • Cloud Skill Boost for Terraform (Advanced)
  • Policy:
  • Templates/
    Ready to use
  • Jump Start Solutions
  • Google Cloud Terraform modules on GitHub
  • Terraform Registry
  • Deploy & Manage
  • Infrastructure Manager
  • Terraform GitOps with Cloud Build (CI/CD)
  • Terraform Cloud or Enterprise on Google Cloud
  • Support