Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the difference between Docker and Chef's new Habitat tool?

Does Chef's new Habitat tool somehow work with Docker? If so, what problem is Habitat trying to solve or is it just trying to replace tools in the Docker toolset (e.g., Docker Swarm, Docker Machine, Docker Compose, etc.)?

like image 203
Justin Avatar asked Jul 11 '16 00:07

Justin


People also ask

What is the difference between chef and Docker?

Actually, Docker and Chef can even complement each other; Docker is used for quickly provisioning new servers, and Chef is used for rolling out the small, detailed changes to existing machines, a task for which Docker may be ill-suited.

What is chef habitat used for?

Chef Habitat is a patented automation tool that enables companies to apply a consistent approach to application definition, packaging and delivery across all applications and environments. Scaling continuous delivery requires consistent patterns that are not tool or platform specific.

What is Chef in Docker?

Chef is a configuration management tool designed to bring automation to your entire infrastructure.

What is chef habitat builder?

Habitat Builder offers a build service and an artifact store with public and private repositories for holding the packaged app and their desired deployment architectures, as well as support for the Habitat Supervisor for managing the runtime lifecycle, configuration updates and more.


1 Answers

This is skirting the limits of StackOverflow's policy on open-ended questions, but I'll answer anyway:

Docker and Habitat don't really overlap much. The main point of competition is on building release artifacts. Docker has Dockerfiles and docker build, Habitat has plans and the Studio. The output of both can be a Docker image though, which is basically a tarball of a filesystem along with some metadata. Habitat is aimed more are building super minimal artifacts, i.e. not including a Linux distro of any kind, no package manager, just statically compiled executable code and whatever support files you need for that specific app.

As for runtime, they are 100% orthogonal. Docker is a way to run a process inside a bunch of Linux security features collectively called a "container" now. Habitat is a little stub that surrounds your process and handles things like runtime config distribution, secrets transfer, and service discovery. Those features are more overlapping with higher-level tools like Kube but even there it's only barely overlapping. You need something to actually start hab-sup, which could be docker run (possibly via Swarm), Nomad, Kube, or even a non-container system like Upstart or Runit if you wanted to. The only interaction point between those is those tools all start an entrypoint process, and hab-sup is a generic entrypoint process that gives whatever app it runs underneath some cool features if they want to use 'em.

like image 53
coderanger Avatar answered Oct 11 '22 17:10

coderanger