How Alaska Airlines got to grips with Chef Habitat
- 29 May, 2018 08:45
Alaska Airlines is one of the first enterprise customers to run Chef's new app automation product Habitat. During Chef Conf this week they explained how they got up and running with the product, and some key lessons learned for anyone looking to shift their applications onto Habitat.
Launched in 2016, Habitat is one of the newest products from the automation specialist Chef, promising to allow enterprise customers to run "any app, anywhere", so essentially infrastructure and operating system agnostic deployments.
When it launched, Lucas Welch, the former director of communications at Chef said: "Habitat allows the application to both be portable across independent infrastructure environments and have the intelligence to select the infrastructure features that benefit that application."
Alaska Airlines is a domestic US carrier that grew significantly in 2016 after acquiring Virgin America for $2.6 billion, starting a merger of its fleet, staff, websites, booking system and mobile app, all under the Alaska brand.
Give it to the intern
Speaking during Chef Conf in Chicago this week, Chris Maher, senior automation engineer and Nick Kirschbaum, manager of automation platforms, talked at length about how the airline deployed four applications on Habitat to date, starting with an intern's summer project.
Kirschbaum said one of the key goals of adoption was to allow their developers' "deployments to work on their workstation the same as production to avoid any infrastructure issues, and Habitat allows us to do that."
So, Kirschbaum recruited their summer intern, Lewis, last year to start looking into how the automation platforms team at Alaska could use Habitat.
Kirschbaum said: "He read the docs and did the tutorial to create a simple website and he deployed it in Habitat on a ring [network] distributed across data centres. Now we have redundancy and started to ask how to load balance this."
Kirschbaum and the intern worked to see what would happen when simulating a forced failure by killing the leader node.
"Without intervention the supervisor automatically started a new leader election and the load balancer sent traffic there. That random node was in a different data centre altogether, so when the node came back up Chef made everything functional again," Kirschbaum said.
"Habitat is not hard to learn, Lewis knew nothing and picked it up quickly. Load balancing was a challenge but we could create a health monitor and start building and running an app in Habitat. It was like entering the jet age."
Lewis is now a full time member of the automation platforms team at Alaska Airlines.
The airline has since moved three more applications onto Habitat, including third party and homegrown apps.
The second project was a third party application called Artifactory, an artifact repository built by JFrog.
As Maher explained: "We saw what Habitat could do so wanted to go crazy with it…and this would be a good candidate."
Maher says they learned that they "could run a third party app just fine in Habitat" as a result. "We have been running this steadily for a year and when we switched to Habitat no one noticed, they just knew it worked and experienced no downtime."
Next up was a homegrown app called BootsrApp for self service bootstrapping to avoid giving individual Chef accounts just for bootstrapping. This was the first app the team had built on Habitat, so the Ruby app was "homegrown on Habitat".
Last up was HashiCorp's secrets management app Vault, which they were having some stability issues with. By switching from running Vault on Ubuntu servers to Habitat, Maher says they were able to "take an app with stability issues and make it stable with Habitat".
Advice for Habitat deployments
Kirschbaum had plenty of advice for other enterprises looking into running their applications on Habitat.
The first is to start small, really small. "Don't be over ambitious for a big win, start extremely small," he said.
He also advised to "start with something you have full control of, something your team fully owns, as you will make mistakes and it's much easier to work through the team rather than engage with another team."
Lastly: "Really test the load balancing, test the nodes and get familiar with how it reacts," he added. "We are a large, risk-averse enterprise but don't be afraid to try it."
Chef CEO Barry Crist admitted earlier in the week that there had been some confusion both internally and with customers as to the value proposition of Habitat, so stories like this are a huge step in the right direction.