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.

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
  • Customize Jump Start Solutions
  • Customize Terraform Blueprints and Modules
  • Create your own Terraform Blueprint
  • Create your own Terraform module
Deploy & Manage
Support
  • Google Cloud Cloud Customer Care
  • Google Cloud + HashiCorp Support (Priority support if customer has support for both)