TL; DR: By enabling teams to deploy new code quickly, yet methodically, a trio of open-source projects from Chef help organizations increase deployment speed while decreasing risk. The company’s commercial offering, Chef Automate, wraps the features in an enterprise-friendly platform to promote efficient and scalable collaboration. We spoke to Product Marketing Director George Miranda, who used Chef as an engineer before joining the project. He shared the aha moments that sold him on using the platform as a community-powered knowledgebase and tool for error-proof efficiency.
Application provisioning and deployment at Gannett used to take weeks — now that the media company is using Chef, the workflow takes a few minutes.
Originally, Gannett’s processes included multiple handoffs and manual tests, which often ran in the wrong environments. Operations teams operated out of different datacenters, and developers were spinning up instances on personal accounts without any oversight. Each group used its own toolset, and there was no accountability for finance or security.
According to the Gannett success story, Chef broke down the barriers between development and operations teams and gave them a common language when discussing infrastructure.
“We got real buy-in when people understood that Chef was code, the same as any other application,” said Franklin Hanson, Senior Manager of Platform-as-a-Service Delivery.
Relying on tools called recipes, cookbooks, and supermarkets, Chef serves up a delicious serving of DevOps efficiency and scalability. When combined with InSpec and Habitat, Chef Automate gives organizations a platform for automating consistency, compliance, and continuous deployments.
“Chef has increased the effectiveness and the speed of our development cycle,” according to Vice President of Platform-as-a-Service Erik Bursch. “We’ve been able to use the economies of scale that Chef gives us to move more quickly across the board.”
2 Revelations That Hooked a Chef User
George Miranda was a Chef user before becoming a Chef employee five years ago. Working as an engineer, he also had a background in infrastructure management, release engineering, system administrator, along with part-time development work.
“I wrote some homegrown automation frameworks,” he said. “I realized that, by automating the things I do on a day-to-day basis, I’m not spending my time logging into servers and running commands.”
1. Configuring Architecture in a Shared Way and Contributing Back to Others
Chef users can share and download cookbooks, or collections of recipes that automate various processes, through the Supermarket repository.
The resource acts as a “code knowledgebase,” as George described it, for how to streamline common tasks. SysAdmins, for example, have configured and deployed an Apache web server hundreds of times — Chef cookbooks provide the reusable and customizable code to automate the process.
“It’s very easy to slice and dice that code into a shape that makes sense for your organization and still allow somebody to use that same code for an organization that looks completely different from mine,” George said. “I can do things in a shared, repeatable way and contribute that back to the open-source community that has given so much to me over the years.”
2. Automating Effectively to Scale and Avoid Errors
Manual deployment processes, according to George, tend to be time-consuming and prone to errors — problems that are exacerbated as an organization grows.
“The problem we face is that a lot of companies are really good at developing software, but they’re fundamentally bad at shipping software consistently,” he said. “Getting that software out and running in production is a problem we see for many of our users.”
Chef enables companies to utilize and manage automation to adopt continuous integration and DevOps patterns. Whether you’re adding a new feature to an application or changing a configuration setting, new code is committed directly to source control and pushed through control and testing channels to the production environment.
“There’s a bit of a learning curve, but once you come out on the other end, it radically changes the way you work,” George said. “It radically changes the scope of the problems you have to solve, and it allows you to focus on higher-value problems than the ones you were solving before.”
Chef Automate: Mixing Key Ingredients to Deliver Speed and Efficiency
Written in Ruby and Erlang, Chef was originally founded as Opscode in 2009 to capitalize on a tool that Co-Founder and CTO Adam Jacob created for his consultancy business. The company supports three open-source projects:
- Chef automates infrastructure configuration, deployment, and management. Develop and test your code locally before deploying to production.
- InSpec transforms compliance regulations to code, automating security with speed. Built-in rulesets are included, or you can declare your own tests and metrics.
- Habitat provides consistency to running cloud-native applications by automating the creation and management of containers and microservices.
The company’s sole commercial product, Chef Automate, combines the three projects’ functionalities and includes “a little bit of last-mile tooling,” according to George, who estimated that 95% of the various features are available through the open-source projects.
Chef Automate provides a clean, modern interface with dashboards and charts illustrating the various automated processes.
“It’s a lot of moving pieces, so the Chef Automate platform lets you see what all that underlying automation is really doing,” he said.
Before any changes are committed, Chef will ensure the development environment matches production by using a tool called Test Kitchen. Once the new code is ready, the delivery command line interface packages the changes and delivers them to the Chef Automate platform.
The delivery review command will run basic tasks and automated tests to verify the code meets basic review and formatting guidelines. “Before I notify a human that they should spend some time looking at this change, I want to make sure it’s up to my standards,” George said.
Teams can review the changes in Chef Automate and leave comments. Once approved, the platform moves the code through additional tests for quality and security controls before presenting administrators with provisioning and deployment options.
“The idea is when you deploy a change, you can expect there’s a common workflow that your entire organization followed,” George said. “We give you one common shape for how all that change is managed, but you can customize steps within that.”
Chef’s Passion for Openness and Transparency Reflected to Customers
During his journey from Chef user to Chef employee, George said one of his most valuable lessons learned is the value for developers to understand the mechanisms behind making applications work in production at scale.
“Not everyone needs to be a full-stack engineer, but Chef makes things a lot more accessible for groups who used to be completely separated in silos have conversations and understand what each other is doing. We’re all working together in code that the other groups can understand.”
The company now employs around 250 people out of their Seattle headquarters, with about two-thirds of employees working remotely.
“I work with a lot of very brilliant, motivated, and passionate people who come from operational and development backgrounds and are very adamant about wanting to improve IT as a practice and help the industry take the next step,” he said. “It’s all about how people can do their jobs better than how we’ve done them in the past.”