Need advice about which tool to choose?Ask the StackShare community!

Chef

1.3K
1.1K
+ 1
345
Google Cloud Deployment Manager

24
112
+ 1
5
Add tool

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

Introduction:

Chef and Google Cloud Deployment Manager are both tools used for automating infrastructure provisioning and management. While they share some similarities, there are also key differences that set them apart.

  1. Configuration Language: One of the main differences between Chef and Google Cloud Deployment Manager is the configuration language they use. Chef utilizes Ruby-based DSL (Domain-Specific Language), allowing for greater flexibility and customization in defining infrastructure as code. On the other hand, Google Cloud Deployment Manager uses YAML or Jinja templates, which may be simpler for those already familiar with these languages.

  2. Hosted Solution: Chef is primarily self-hosted, meaning users are responsible for setting up and maintaining the infrastructure for Chef server and related components. In contrast, Google Cloud Deployment Manager is a hosted solution provided by Google Cloud Platform, requiring minimal setup and maintenance on the user's end.

  3. Integration with Google Cloud Platform Services: Google Cloud Deployment Manager seamlessly integrates with various Google Cloud Platform services, allowing for easy provisioning and management of resources within the Google Cloud ecosystem. While Chef can also be used for managing Google Cloud resources, it may require more manual configuration and integration work.

  4. Community Support: Chef benefits from a large and active community of users and contributors, providing a wealth of resources, cookbooks, and plugins to aid in automation tasks. Google Cloud Deployment Manager, while backed by Google's resources, may have a smaller community footprint, potentially leading to fewer pre-built templates or resources for users to leverage.

  5. Scalability: When it comes to scalability, Google Cloud Deployment Manager is designed to handle large-scale deployments and provide efficient resource management at scale. Chef, while capable of scaling to a certain extent, may require more manual intervention and optimization to handle large and complex infrastructures effectively.

  6. Pricing Model: Chef follows a subscription-based pricing model for its enterprise edition, with pricing based on the number of nodes being managed. In contrast, Google Cloud Deployment Manager is included in Google Cloud Platform's pricing structure, with charges based on the resources provisioned using the deployment manager.

In Summary, Chef and Google Cloud Deployment Manager differ in configuration language, hosting, integration with Google Cloud Platform, community support, scalability, and pricing model, offering users a choice between flexibility, ease of use, ecosystem integration, community support, scalability, and cost implications based on their specific requirements.

Advice on Chef and Google Cloud Deployment Manager
Needs advice
on
AnsibleAnsibleChefChef
and
Puppet LabsPuppet Labs

I'm just getting started using Vagrant to help automate setting up local VMs to set up a Kubernetes cluster (development and experimentation only). (Yes, I do know about minikube)

I'm looking for a tool to help install software packages, setup users, etc..., on these VMs. I'm also fairly new to Ansible, Chef, and Puppet. What's a good one to start with to learn? I might decide to try all 3 at some point for my own curiosity.

The most important factors for me are simplicity, ease of use, shortest learning curve.

See more
Replies (2)
Recommends
on
AnsibleAnsible

I have been working with Puppet and Ansible. The reason why I prefer ansible is the distribution of it. Ansible is more lightweight and therefore more popular. This leads to situations, where you can get fully packaged applications for ansible (e.g. confluent) supported by the vendor, but only incomplete packages for Puppet.

The only advantage I would see with Puppet if someone wants to use Foreman. This is still better supported with Puppet.

See more
Gabriel Pa
Recommends
on
KubernetesKubernetes
at

If you are just starting out, might as well learn Kubernetes There's a lot of tools that come with Kube that make it easier to use and most importantly: you become cloud-agnostic. We use Ansible because it's a lot simpler than Chef or Puppet and if you use Docker Compose for your deployments you can re-use them with Kubernetes later when you migrate

See more
Decisions about Chef and Google Cloud Deployment Manager

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.
See more

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

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Chef
Pros of Google Cloud Deployment Manager
  • 110
    Dynamic and idempotent server configuration
  • 76
    Reusable components
  • 47
    Integration testing with Vagrant
  • 43
    Repeatable
  • 30
    Mock testing with Chefspec
  • 14
    Ruby
  • 8
    Can package cookbooks to guarantee repeatability
  • 7
    Works with AWS
  • 3
    Has marketplace where you get readymade cookbooks
  • 3
    Matured product with good community support
  • 2
    Less declarative more procedural
  • 2
    Open source configuration mgmt made easy(ish)
  • 2
    Automates infrastructure deployments
  • 1
    Fast deploy and update
  • 1
    Infrastracture as a code
  • 1
    Easy to deploy for GCP

Sign up to add or upvote prosMake informed product decisions

Cons of Chef
Cons of Google Cloud Deployment Manager
    Be the first to leave a con
    • 1
      Only using in GCP

    Sign up to add or upvote consMake informed product decisions

    What is Chef?

    Chef enables you to manage and scale cloud infrastructure with no downtime or interruptions. Freely move applications and configurations from one cloud to another. Chef is integrated with all major cloud providers including Amazon EC2, VMWare, IBM Smartcloud, Rackspace, OpenStack, Windows Azure, HP Cloud, Google Compute Engine, Joyent Cloud and others.

    What is Google Cloud Deployment Manager?

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

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Chef?
    What companies use Google Cloud Deployment Manager?
    See which teams inside your own company are using Chef or Google Cloud Deployment Manager.
    Sign up for StackShare EnterpriseLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Chef?
    What tools integrate with Google Cloud Deployment Manager?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    What are some alternatives to Chef and Google Cloud Deployment Manager?
    Ansible
    Ansible is an IT automation tool. It can configure systems, deploy software, and orchestrate more advanced IT tasks such as continuous deployments or zero downtime rolling updates. Ansible’s goals are foremost those of simplicity and maximum ease of use.
    Puppet Labs
    Puppet is an automated administrative engine for your Linux, Unix, and Windows systems and performs administrative tasks (such as adding users, installing packages, and updating server configurations) based on a centralized specification.
    Terraform
    With Terraform, you describe your complete infrastructure as code, even as it spans multiple service providers. Your servers may come from AWS, your DNS may come from CloudFlare, and your database may come from Heroku. Terraform will build all these resources across all these providers in parallel.
    Jenkins
    In a nutshell Jenkins CI is the leading open-source continuous integration server. Built with Java, it provides over 300 plugins to support building and testing virtually any project.
    JavaScript
    JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
    See all alternatives