StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. DevOps
  3. Build Automation
  4. Infrastructure Build Tools
  5. Google Cloud Deployment Manager vs Pulumi

Google Cloud Deployment Manager vs Pulumi

OverviewDecisionsComparisonAlternatives

Overview

Google Cloud Deployment Manager
Google Cloud Deployment Manager
Stacks24
Followers113
Votes5
Pulumi
Pulumi
Stacks306
Followers293
Votes25
GitHub Stars24.1K
Forks1.3K

Google Cloud Deployment Manager vs Pulumi: What are the differences?

Introduction: In the realm of cloud infrastructure management, Google Cloud Deployment Manager and Pulumi are two popular tools that allow users to define and manage their infrastructure as code. While they both aim to streamline the deployment process, there are key differences between the two platforms.

  1. Declarative vs. Imperative Approach: Google Cloud Deployment Manager follows a declarative approach, where users define the desired state of their infrastructure without specifying the exact steps to achieve it. On the other hand, Pulumi adopts an imperative approach, allowing users to define infrastructure using familiar programming languages like JavaScript or Python, offering more flexibility in defining complex infrastructure configurations.

  2. Resource Support: Google Cloud Deployment Manager provides native support for managing Google Cloud Platform resources, making it an ideal choice for users heavily invested in GCP services. In contrast, Pulumi supports a wide range of cloud providers, allowing users to manage resources across multiple cloud platforms such as AWS, Azure, and Kubernetes clusters, offering more versatility in managing hybrid or multi-cloud environments.

  3. Ease of Use: While Google Cloud Deployment Manager provides a user-friendly interface and simple YAML configuration files for defining infrastructure, Pulumi offers a more developer-friendly experience by leveraging established programming languages and tools. This makes Pulumi a preferred choice for developers looking to apply software engineering best practices to their infrastructure management workflows.

  4. State Management: Google Cloud Deployment Manager relies on Google Cloud Storage to store and manage the state of deployments, allowing for easy tracking of changes and rollbacks. In comparison, Pulumi uses its own state management system that can be stored locally or remotely, providing more control over how infrastructure state is handled and shared within a team.

  5. Community and Ecosystem: Pulumi boasts a vibrant community and a growing ecosystem of libraries and plugins that extend its capabilities beyond infrastructure as code, such as enabling continuous integration and delivery workflows. While Google Cloud Deployment Manager has a smaller community base, it benefits from tight integration with other GCP services, offering seamless interactions with existing Google Cloud resources and workflows.

In Summary, Google Cloud Deployment Manager and Pulumi differ in their approach to infrastructure management, resource support, ease of use, state management, and community ecosystem, catering to different user preferences and use cases in the cloud deployment landscape.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Advice on Google Cloud Deployment Manager, Pulumi

Sung Won
Sung Won

Nov 4, 2019

DecidedonGoogle Cloud IoT CoreGoogle Cloud IoT CoreTerraformTerraformPythonPython

Context: I wanted to create an end to end IoT data pipeline simulation in Google Cloud IoT Core and other GCP services. I never touched Terraform meaningfully until working on this project, and it's one of the best explorations in my development career. The documentation and syntax is incredibly human-readable and friendly. I'm used to building infrastructure through the google apis via Python , but I'm so glad past Sung did not make that decision. I was tempted to use Google Cloud Deployment Manager, but the templates were a bit convoluted by first impression. I'm glad past Sung did not make this decision either.

Solution: Leveraging Google Cloud Build Google Cloud Run Google Cloud Bigtable Google BigQuery Google Cloud Storage Google Compute Engine along with some other fun tools, I can deploy over 40 GCP resources using Terraform!

Check Out My Architecture: CLICK ME

Check out the GitHub repo attached

2.25M views2.25M
Comments
Timothy
Timothy

SRE

Mar 20, 2020

Decided

I personally am not a huge fan of vendor lock in for multiple reasons:

  • I've seen cost saving moves to the cloud end up costing a fortune and trapping companies due to over utilization of cloud specific features.
  • I've seen S3 failures nearly take down half the internet.
  • I've seen companies get stuck in the cloud because they aren't built cloud agnostic.

I choose to use terraform for my cloud provisioning for these reasons:

  • It's cloud agnostic so I can use it no matter where I am.
  • It isn't difficult to use and uses a relatively easy to read language.
  • It tests infrastructure before running it, and enables me to see and keep changes up to date.
  • It runs from the same CLI I do most of my CM work from.
385k views385k
Comments
Daniel
Daniel

May 4, 2020

Decided

Because Pulumi uses real programming languages, you can actually write abstractions for your infrastructure code, which is incredibly empowering. You still 'describe' your desired state, but by having a programming language at your fingers, you can factor out patterns, and package it up for easier consumption.

426k views426k
Comments

Detailed Comparison

Google Cloud Deployment Manager
Google Cloud Deployment Manager
Pulumi
Pulumi

Google Cloud Deployment Manager allows you to specify all the resources needed for your application in a declarative format using yaml.

Pulumi is a cloud development platform that makes creating cloud programs easy and productive. Skip the YAML and just write code. Pulumi is multi-language, multi-cloud and fully extensible in both its engine and ecosystem of packages.

-
Containers - Deploy a Docker container to production in 5 minutes using your favorite orchestrator.; Serverless - Stand up a serverless API or event handler in 5 minutes using a real lambda in code.; Infrastructure - Manage cloud infrastructure or hosted services using infrastructure as code.; CoLaDa - Embrace containers, lambdas, and data, using a modern, multi-cloud framework.
Statistics
GitHub Stars
-
GitHub Stars
24.1K
GitHub Forks
-
GitHub Forks
1.3K
Stacks
24
Stacks
306
Followers
113
Followers
293
Votes
5
Votes
25
Pros & Cons
Pros
  • 2
    Automates infrastructure deployments
  • 1
    Fast deploy and update
  • 1
    Easy to deploy for GCP
  • 1
    Infrastracture as a code
Cons
  • 1
    Only using in GCP
Pros
  • 8
    Infrastructure as code with less pain
  • 4
    Best-in-class kubernetes support
  • 3
    Can use many languages
  • 3
    Simple
  • 2
    Can be self-hosted
Integrations
Jinja
Jinja
Python
Python
Google Cloud Storage
Google Cloud Storage
Google Compute Engine
Google Compute Engine
Google Cloud SQL
Google Cloud SQL
No integrations available

What are some alternatives to Google Cloud Deployment Manager, Pulumi?

AWS CloudFormation

AWS CloudFormation

You can use AWS CloudFormation’s sample templates or create your own templates to describe the AWS resources, and any associated dependencies or runtime parameters, required to run your application. You don’t need to figure out the order in which AWS services need to be provisioned or the subtleties of how to make those dependencies work.

Packer

Packer

Packer automates the creation of any type of machine image. It embraces modern configuration management by encouraging you to use automated scripts to install and configure the software within your Packer-made images.

Scalr

Scalr

Scalr is a remote state & operations backend for Terraform with access controls, policy as code, and many quality of life features.

Azure Resource Manager

Azure Resource Manager

It is the deployment and management service for Azure. It provides a management layer that enables you to create, update, and delete resources in your Azure subscription. You use management features, like access control, locks, and tags, to secure and organize your resources after deployment.

Habitat

Habitat

Habitat is a new approach to automation that focuses on the application instead of the infrastructure it runs on. With Habitat, the apps you build, deploy, and manage behave consistently in any runtime — metal, VMs, containers, and PaaS. You'll spend less time on the environment and more time building features.

AWS Cloud Development Kit

AWS Cloud Development Kit

It is an open source software development framework to model and provision your cloud application resources using familiar programming languages. It uses the familiarity and expressive power of programming languages for modeling your applications. It provides you with high-level components that preconfigure cloud resources with proven defaults, so you can build cloud applications without needing to be an expert.

Yocto

Yocto

It is an open source collaboration project that helps developers create custom Linux-based systems regardless of the hardware architecture. It provides a flexible set of tools and a space where embedded developers worldwide can share technologies, software stacks, configurations, and best practices that can be used to create tailored Linux images for embedded and IOT devices, or anywhere a customized Linux OS is needed.

GeoEngineer

GeoEngineer

GeoEngineer uses Terraform to plan and execute changes, so the DSL to describe resources is similar to Terraform's. GeoEngineer's DSL also provides programming and object oriented features like inheritance, abstraction, branching and looping.

Atlas

Atlas

Atlas is one foundation to manage and provide visibility to your servers, containers, VMs, configuration management, service discovery, and additional operations services.

Buildroot

Buildroot

It is a tool that simplifies and automates the process of building a complete Linux system for an embedded system, using cross-compilation.

Related Comparisons

GitHub
Bitbucket

Bitbucket vs GitHub vs GitLab

GitHub
Bitbucket

AWS CodeCommit vs Bitbucket vs GitHub

Kubernetes
Rancher

Docker Swarm vs Kubernetes vs Rancher

gulp
Grunt

Grunt vs Webpack vs gulp

Graphite
Kibana

Grafana vs Graphite vs Kibana