DevOps

Benefits and Key Metrics of Configuration Management Tool Chef

Chef is a configuration management (provisioning) tool that automates deployment work such as user creation, package installation, and configuration file editing. It corresponds to various infrastructures such as physical environment/virtual environment/cloud environment.

One can automate software installation such as various system settings and application/middleware/components. Convenient functions for easy construction of the infrastructure environment are installed.

Basic Explanation

DevOps is an innovative way to deliver applications to the market, combining organizational software development with system operation. The process of DevOps requires very intensive work and technicians are constantly looking for new tools to modernize operations. The cloud appears in the public cloud, private cloud, and its hybrids. The related software is also diversified from commercial products to open source.

In recent years, system migration from on-premises and virtualization servers to the cloud is proceeding. Therefore, infrastructure engineers should acquire new technologies. Although it is serious, the advantage earned by the engineer who got the earliest is also great.

Chef is a tool for encoding infrastructure. If you have written a shell script, you will be familiar with how it differs from shell script and how useful it is. Its public release is January 2009 and its name is derived from ‘chef’ representing a cook, and it builds with the sense of cooking infrastructure. In the code describing the structure of the infrastructure is called ‘recipe’, and the recipe collection is called ‘cookbook’. Every term is related to the cooking site.

Chef is a tool to automate server configuration. It has been created with Ruby and Erlang and has a large number of introduction records including Facebook, Splunk, etc. It is advocating ‘infrastructure as a code’ and positions it as software to practice ‘DevOps’. It consists of ‘Chef Server’ which manages setting information, ‘Chef Client’ which executes processing on the target server-side, development kit, etc.

Chef Architecture

Chef is basically client/server architecture, a node that is a client uploads configuration information to the server, and server manages them. When making a configuration change, the node of the Chef client acquires the configuration information from the Chef server and executes the configuration change. There is also a local mode called ‘Chef Zero’ when executing with only one unit.

Chef is particularly useful in cases where you repeatedly build similar environments like data centers and testing environments. Therefore, it seems that introduction of Chef started mainly from disaster recovery (disaster countermeasure).

Recently, more efficiency and time reduction are required for infrastructure building work. Even if you use the template of settings in the virtualization environment, setting the various settings manually required few working days. Although efficiency has improved in the cloud, it takes time according to the setting of the application to be used on the cloud.

Key Metrics

  • It supports various platforms like Microsoft Windows, Ubuntu, AIX, FreeBSD, RHEL/CentOS, Solaris, and OS X. Other client platforms include Fedora, Debian, and Arch Linux.
  • It can be combined with other cloud-based platforms like Microsoft Azure, Google Cloud Platform, Amazon EC2, SoftLayer and Rackspace.
  • It has a vast, rapidly expanding community support.
  • Chef is market leader in DevOps and full stack automation.

Benefits

  • Reduction of construction/operation cost
  • Sharing of construction/operation know-how
  • Redecoration of construction
  • Reduction of work time
  • Application to multiple servers at once

Conforms to DevOps Cooperates Between Developers & Operators

The characteristic of Chef is that you can write the configuration of the server and the mechanism of operation as program code. Developers in charge of system development and operators in charge of operation, the code on the same source code management system It is very conforming to the practice of DevOps which cooperates with each other to promote business as we can work on the base.