Chef: Automating Systems Configuration for High Application Availability

Barry Crist, CEO In the past decade, before mobile became massive and innumerable applications took the world by storm, organizations deployed and managed their solutions through one or two servers locked in a closet somewhere. Today, system administrators are in charge of coordinating thousands of servers and maintaining high availability of applications, typically require a tool that automates tedious administrative tasks. In such a scenario, configuration management has evolved from a fringe benefit to a must-have tool, as it handles change systematically and configures infrastructure in a consistent manner. Keeping in mind the need for an effectual systems engineering process, Chef, a Seattle, WA-based company addresses the need with an influential configuration management and automation platform that transmutes complex infrastructure through a code based model. “Our goal is to help the world’s most innovative companies such as Facebook that make great software, using the Chef platform as an automation engine,” remarks Barry Crist, CEO, Chef.

Business Automation Made Simple

Chef’s platform automates application configuration, deployment, and management of servers throughout a client’s network regardless of their size and also across public, private and hybrid environments. The tool is written in the programming languages Ruby and Erlang, and uses a Domain Specific Language (DSL) to write system configuration or “recipes.” These recipes which can be grouped together as a “cookbook” describe a series of resources, such as—how packages should be installed or how services should run. Chef can run in either client or server mode, or in a standalone mode named “chef solo.” As it runs, Chef-client queries Chef Server for the latest set of recipes or configuration instructions and executes them in the same order for consistent results. Chef client periodically runs a node's recipes so that the node incorporates the latest configuration information from Chef Server. Recipes only make configuration changes when the node is out of spec, so it’s safe to run them repeatedly. “For example, a recipe that installs a particular service on a node will only do this if the service doesn't already exist or if it’s out of date,” explains Crist. The company uses a “convergent” model of configuration and as changes propagate through the nodes, the network as a whole converges to the desired configuration state. “By default, the Chef-client pulls configuration updates from the Chef server every thirty minutes,” adds Crist. When a system administrator begins to receive insight from their network they can automate routine tasks in shorter time frames. Chef provides tremendous visibility through a powerful utility tool known as Ohai that harvests a node's configuration data and reports it back to the Chef server.

Handling Configuration Challenges with Ease

The Chef environment is typically made up of three components— Chef Server, Workstation and Chef Nodes. The Chef Server is the brain of the operation which acts as a hub to store configuration data that is available to every node. It stores and holds all the cookbooks, recipes and metadata that illustrate each and every registered node which is being managed by the Chef-client.


Chef’s platform automates application configuration, deployment, and management of servers throughout a client's network regardless of their size


Aggregating and indexing all information, the Chef Server also makes it possible to analyze, and identify any anomalies and unexpected configurations. “You can add searchable attributes to Chef which renders a holistic view of infrastructure,” says Crist. For enhanced safety and collaboration, the server scans audits and reports on compliance issues, security risks, and out of date software. The Chef Server also reduces errors that are caused due to configuration drift and automatically delivers the latest tested and approved policies to a customer's infrastructure. In the case of Standard Bank, one of South Africa's largest financial services groups, the client brought in Chef which transformed their delivery process to provide new features and services. Chef implemented a pilot project, the focus of which was a complete shift towards automation and quality control. The bank can now catch errors earlier than ever before and they have also adopted a test-driven development which reduces administrative burdens.

Helping users to configure organizational policies, the Workstation is a development machine from where users run all configuration related tasks such as creation of cookbooks and recipes, updating chef-repo, and interacting with the single Chef Server. The Chef node is any machine whether physical, virtual, cloud, or network devices that performs all infrastructure automation. Once, Bonobos, a prominent New York-based men’s apparel brand, used Chef to automate configuration management and application deployments in its Amazon Web Services (AWS) cloud infrastructure. Although Bonobos uses AWS as the foundation of its service-oriented infrastructure that supports the company's proprietary e-commerce platform; the application of public cloud also created significant management challenges for the client's lean engineering staff. On deploying Chef and its Knife EC2 command-line plug-in for AWS, Bonobos' engineering team could automate configuration management and application deployments across the cloud infrastructure, maximizing both application development speed and resource consistency. “Using Chef for resource configuration and management, Bonobos can leverage reusable recipes and cookbooks of code to automate everything from spinning up a single server to creating test, development, and disaster recovery environments,” states Crist. Because Chef abstracts infrastructure management to simple code commands, Bonobos now has a repeatable model for spinning up, moving, adjusting, and spinning down its cloud infrastructure to align with site demands and cloud service changes.

In another instance, the Facebook team used Chef to automate configuration within its web-tier infrastructure and as well manage thousands of servers, configurations, and administrative access policies in its dynamic compute environment. The client was burdened by multitude individual clusters over 10k nodes in size, a slew of different constantly-changing system configurations, and a small team. “The system was showing its age, limiting effectiveness and usability. Among other problems, it was difficult to integrate with internal systems, testing was often impractical, and provided no isolation of configurations,” points out Crist. After an extensive evaluation of the tools and paradigms in modern systems configuration management—Facebook built a system based on Chef. Chef's automation solutions where flexible and negated the need for any change in workflow. The tool also provided top-flight support, earlier access to upcoming changes, and additional rich features on top of the functionality in open-source Chef.

"The Chef Server is the brain of the operation which acts as a hub to store configuration data that is available to every node"

Aligning Company Strategy around Effective Partnership

Governed by a mission to drive utmost benefits for clients, Chef adopts a personal approach when it comes to dealing with partners and customers. “We place just as much importance on the Chef team and culture as our technology, and time and again, customers have told us that the real magic is how we transform their business through our partnership,” exclaims Crist. The company's scalable solutions, ability to work across diverse compute environments, and unmatched flexibility make them a sure shot winner from the crowd of solution providers in the market. The company also recently received a funding of 40 million from investors, including an investment from Hewlett Packard Ventures, to expand its operations globally and accelerate product development to keep up with surging customer requirements.



Witnessing tremendous growth in the past three years, where the company's revenue shot by more than 1800 percent, moving forward Chef is set to focus on scaling its business to best support and serve customers. In the near future the firm will be expanding its worldwide customer base with more solution architects, customer success engineers and DevOps practices engineers while using a portion of their finances to develop products. “As companies compete in the digital world, the game is: how to simultaneously increase innovation, velocity, and quality. This is the premise of DevOps and configuration management and Chef will continue to play, a major role in driving these new paradigms for years ahead,” ends the CEO.

Company
Chef

Headquarters
Seattle, WA

Management
Barry Crist, CEO

Description
Provides a configuration management tool that helps deploy servers and applications to any physical, virtual, or cloud location