Chef vs Docker Compose

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

Chef

1.1K
963
+ 1
344
Docker Compose

14.5K
10.6K
+ 1
474
Add tool

Chef vs Docker Compose: What are the differences?

What is Chef? Build, destroy and rebuild servers on any public or private cloud. 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 Docker Compose? Define and run multi-container applications with Docker. With Compose, you define a multi-container application in a single file, then spin your application up in a single command which does everything that needs to be done to get it running.

Chef can be classified as a tool in the "Server Configuration and Automation" category, while Docker Compose is grouped under "Container Tools".

"Dynamic and idempotent server configuration" is the top reason why over 104 developers like Chef, while over 111 developers mention "Multi-container descriptor" as the leading cause for choosing Docker Compose.

Chef and Docker Compose are both open source tools. Docker Compose with 16.4K GitHub stars and 2.52K forks on GitHub appears to be more popular than Chef with 5.83K GitHub stars and 2.35K GitHub forks.

According to the StackShare community, Docker Compose has a broader approval, being mentioned in 787 company stacks & 608 developers stacks; compared to Chef, which is listed in 359 company stacks and 80 developer stacks.

Advice on Chef and Docker Compose
Needs advice
on
Puppet Labs
Chef
and
Ansible

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
Ansible

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
Kubernetes
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 Docker Compose
Michael Roberts

We develop rapidly with docker-compose orchestrated services, however, for production - we utilise the very best ideas that Kubernetes has to offer: SCALE! We can scale when needed, setting a maximum and minimum level of nodes for each application layer - scaling only when the load balancer needs it. This allowed us to reduce our devops costs by 40% whilst also maintaining an SLA of 99.87%.

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of Chef
Pros of Docker Compose
  • 109
    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)
  • 120
    Multi-container descriptor
  • 108
    Fast development environment setup
  • 75
    Easy linking of containers
  • 65
    Simple yaml configuration
  • 58
    Easy setup
  • 15
    Yml or yaml format
  • 11
    Use Standard Docker API
  • 7
    Open source
  • 4
    Go from template to application in minutes
  • 4
    Can choose Discovery Backend
  • 2
    Kubernetes integration
  • 2
    Easy configuration
  • 2
    Scalable
  • 1
    Quick and easy

Sign up to add or upvote prosMake informed product decisions

Cons of Chef
Cons of Docker Compose
    Be the first to leave a con
    • 8
      Tied to single machine
    • 5
      Still very volatile, changing syntax often

    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 Docker Compose?

    With Compose, you define a multi-container application in a single file, then spin your application up in a single command which does everything that needs to be done to get it running.

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

    What companies use Chef?
    What companies use Docker Compose?
    See which teams inside your own company are using Chef or Docker Compose.
    Sign up for Private StackShareLearn More

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

    What tools integrate with Chef?
    What tools integrate with Docker Compose?

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

    Blog Posts

    What are some alternatives to Chef and Docker Compose?
    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.
    Capistrano
    Capistrano is a remote server automation tool. It supports the scripting and execution of arbitrary tasks, and includes a set of sane-default deployment workflows.
    See all alternatives