Google Cloud Deployment Manager is Google Cloud's native infrastructure-as-code service. You describe a set of Google Cloud resources - VMs, networks, buckets, databases - in declarative YAML configuration files, and Deployment Manager creates and manages them as a single unit called a deployment. It is the GCP-native parallel to Azure Resource Manager and AWS CloudFormation.

Configurations, templates, and types

A deployment is built from a configuration that lists resources by their Google Cloud type (such as compute.v1.instance) and properties. For anything beyond a flat list, Deployment Manager supports templates written in Jinja2 or Python, which let you parameterize and generate resources programmatically - useful when you need loops, conditionals, or reusable modules instead of repeating YAML.

resources:
- name: data-bucket
  type: storage.v1.bucket
  properties:
    location: US
    storageClass: STANDARD

Declarative and managed as a unit

Like the rest of the category, Deployment Manager is declarative: you state the end state and it computes the changes, creating resources in dependency order and updating or deleting them when the configuration changes. Because the resources are grouped into one deployment, you can tear the whole environment down or update it consistently, and the state is tracked by Google Cloud rather than in a file you manage yourself.

Where it fits and what's changing

Deployment Manager suits teams committed to Google Cloud who want a native, no-extra-cost IaC option. It only manages GCP resources, so multi-cloud teams generally use Terraform. Worth noting: Google now steers new projects toward Terraform (via its Cloud Foundation Toolkit and Infrastructure Manager service) as the recommended IaC path, so for greenfield GCP work Terraform is increasingly the default while Deployment Manager remains in existing setups.

Frequently asked questions

What language are Deployment Manager configs written in? Declarative YAML for the resource list, with optional Jinja2 or Python templates for parameterization, loops, and reusable modules.

Can it manage non-GCP resources? No - it is Google Cloud only. Multi-cloud or cross-provider work uses a tool like Terraform.

Should I use it for new GCP projects? Google now recommends Terraform for new infrastructure as code on GCP; Deployment Manager is still supported and common in existing deployments.