Habitat essentially wraps applications into their own lightweight runtime environments and then allows you to run them in any environment, ranging from bare metal servers to virtual machines, Docker containers (and their respective container management services), and PaaS systems like Cloud Foundry.
“We must free the application from its dependency on infrastructure to truly achieve the promise of DevOps,” Chef co-founder and CTO Adam Jacob said in a statement today. “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.”
The Chef team argues that today’s solutions are often too narrowly focused on the enterprise, where “the deep silo-ing of responsibility present in most enterprises drives us to design software specifically for one silo or another.” Web-scale companies like Google or Facebook, on the other hand, built their own platforms from scratch (and their business is often exactly this platform), something most companies can’t do.
Habitat, then, tries to solve the question for how to best build, deploy and manage applications from the application perspective. Instead of defining the infrastructure, you define what the application needs to run and take it from there. The Habitat “supervisor” will handle deployment, upgrades and security policies for the environment you want to deploy in.
The Chef team notes that it should also be pretty straightforward to port legacy applications to Habitat.
Habitat’s promises sound a bit like those we’ve long heard about containers, too. Chef argues that Habitat improves the container experience and reduces the complexity of managing containers in production. In a way, though, this project also feels like Chef’s reaction to containers, which at least partly threatens its core business. Unsurprisingly, Habitat also plays nice with Chef’s existing DevOps tools.