The buzz at ChefConf last week was all around Habitat. This open source project brings a deployment layer to developers, allowing them to package their applications for just about any infrastructure. Considering that Chef remains a popular path to configuration management and environment configuration, adding this new unified deployment preparation layer brings developers even more exciting ways to automate their continuous integration and deployment processes.
“I describe it, personally, as two things. The first is a packaging system. What you do is, you create a plan file for your application, you write the application first, and then that plan file defines in Bash for Linux and Powershell for Windows how exactly that app should be built, installed, and run,” explained Nell Shamrell-Harrington, senior development engineer at Chef. “That package can be exported to almost anything. It can be exported into a Docker container. That’s by far the most popular exporter that people use.”
Habitat is quite good at preparing legacy applications for cloud deployment, said Shamrell-Harrington. “Let’s say you want to try Cloud Foundry, we have a Cloud Foundry exporter. You don’t have to rewrite the app to run it in Cloud Foundry. All you need to do is export it into the Cloud Foundry format. We have Helm Charts for Kubernetes. We really take the view that there is no one true way to deploy an application.”
Habitat also includes a runtime element, and Shamrell-Harrington detailed the benefits of using this side of the Habitat coin. “We have what’s called the Habitat Supervisor. That’s what actually unpacks and runs and manages the packaged application. The wonderful thing about that is you can have several instances of that Habitat package running. We call those services. Those make up what we call the Supervisor Ring, and they become aware of each other and can self-organize into different topologies. A really popular one for databases is leader/follower,” said Shamrell-Harrington.
This allows for a much faster response to problems, as teams can deploy networks of systems together, and automate the configuration required to arrange them as needed. “Five or ten years ago we felt we could anticipate every way the application could fail, and then we added in contingencies for that. Well, our view is, it’s going to fail somehow. It’s probably going to fail in a way that’s completely unpredictable because that’s the nature of Murphy’s Law and life. So we want, no matter the reason for the failure, for your applications to be able to recover very quickly without any other intervention,” said Shamrell-Harrington.
In this Edition:
- 1:32: With Habitat, has the concept of a control plane become easier for people to understand?
- 5:37: How does Habitat provide resiliency?
- 6:57: How has the growth of Docker container usage affected Habitat?
- 13:01: How do you manage complexity?
- 17:42: How does Habitat fit in with Chef Automate?
- 23:48: What do you see as the direction for Habitat from here?