

Configuration management platform vendor Chef Software Inc. is turning its attention to application automation with the creation of a new open-source project called Habitat that allows developers to package their applications and run them on a wide variety of infrastructures.
What Habitat does is to wrap applications up inside their own lightweight runtime environments, so they can be run in any environment, such as bare metal servers, Docker containers, PaaS systems like Cloud Foundry or virtual machines.
According to Chef, Habitat is the first solution that allows applications to free themselves from their dependency on a company’s infrastructure. When apps are wrapped in Habitat, the runtime environment is no longer the focus which means the app is no longer constrained. This means that USP apps can not only run across multiple environments, but can also self-configure and self-organize, Chef claims.
“We must free the application from its dependency on infrastructure to truly achieve the promise of DevOps,” said Adam Jacob, CTO at Chef. “There is so much open source software to be written in the world and we’re very excited to release Habitat into the wild. We believe application-centric automation can give modern development teams what they really want — to build new apps, not muck around in the plumbing.”
Habitat is based on the same concept of how container systems already work. Application packages created using Habitat are repeatable (which ensures the same results from each build), immutable (which ensures the package contents don’t change during runtime) and language-and-runtime-agnostic (they can be deployed via containers, bare metal servers et al). Using that foundation, Habitat merges the app with its automation details, so the two stay together throughout its lifecycle. As such, any changes made to the app are discoverable and can be altered by editing the app’s configuration.
As for the automation data, this is detailed in a shell script and optional configuration files. Habitat uses what’s called a “supervisor” app to run on the target platform as a host for the app in question, which performs the actual management. It’s possible to lump multiple supervisor apps together into service groups, and these supervisors can also be packaged inside Docker containers together with their apps.
Chef says Habitat was developed as a solution to the well-known “production cliff” problem – which refers to the growing difficulty of deploying apps the closer one gets to production. It’s a common developer issue that often arises due to the use of incompatible environments during development and production.
Habitat essentially takes the parts of an app that are dependent on a particular environment – for example, its build and runtime dependencies, info about the kind of network and infrastructure topologies it uses, and any other assumptions it makes – and creates a new set of abstractions it can use.
The project has initial support from others including Intel, Mesosphere Inc. and CoreOS, Inc. Future plans include an automated public build service as well as extending Habitat to cover more scenarios and platforms.
According to Chef, it should be pretty straightforward to port legacy applications to Habitat. For those who’re interested in trying it out, Chef provides an interactive demo as well as tutorials on its website.
THANK YOU