Maestro vs Chef

In this article, we would like to introduce Chef, an automation tool integrated with Maestro, that allows us to set up and configure the necessary infrastructure components quickly and change the configuration if needed. 
 Thus, Chef can substantively simplify the process of configuring typical infrastructure models, sparing DevOps specialists' time and efforts on the project.

How does Chef work?

Chef consists of several major components: server, client, roles, cookbooks, recipes, etc.

The Chef workstation represents the computer / instance, from which all the work is performed. The workstation is operated by an administrator.

The Chef server is a comprehensive product, containing the database, file storage, web server etc. The server is intended to provide instructions to Chef clients who request these instructions.
  1. In the beginning, the administrator creates an organization on the Chef server. The authorization to this organization is performed securely with the help of SSH keys.
  2. The administrator uploads respective public instructions (cookbooks) from the Chef Supermarket. Cookbooks contain a description of how to reach the desired state. Recipes, put together in the cookbook, describe the actions to be performed sequentially.
  3. The administrator pushes cookbooks to the Chef server using the Chef Knife utility.
  4. After this, the administrator can set Chef client on new instances, and add the organization’s key to these instances.
  5. Then clients come to register to the Chef server, and now (using Bootstrap), the administrator can modify their Chef roles by setting defined cookbooks on clients via the Chef Knife.
The Chef client works as follows:
  1. Once in a certain time, the client is activated and requests the Chef server to verify its role, version of cookbooks, etc.
  2. If the administrator wants to provision a new role or install certain software, he goes to the Chef server and updates nodes for the selected instance.
  3. When the Chef client requests information from the server, the latter returns the updated information based on which the actions will be executed.
Thus, Chef provides the comprehensive services of the virtual infrastructure.

Maestro vs Chef

Maestro, on the other hand, significantly simplifies the Chef native flow. Our users do not need to dive into details of this complicated schema.
The Maestro approach is the following:
  1. Maestro takes the most popular cookbooks (specific databases, Artifactory, Jenkins, etc.) from the Chef Supermarket and uploads them to our Chef server, maintained by the Maestro Orchestrator. This server contains the pre-configured cookbooks.
  2. When configuring a new instance in the Run wizard, the user selects a Chef role on the interface of the application. Note that the user does not need to create an organization, and work with such Chef components as Workstation and Knife.
  3. After this, Maestro, as an external component, sends necessary metadata to the started instance, and a Chef client is installed on the instance.
  4. The Chef client gets registered on the Chef server, requests information about its Chef role and accomplishes its intended function.
Thus, the Maestro user needs to specify only one option on the application’s interface at the start of the instance.

Chef server in a project

Moreover, in this schema, Maestro introduces/provides the third option – flexibility, when the project/client can set up a new Chef server as part of its project:
  1. The project starts a new instance.
  2. The project selects the Chef server role.
  3. Maestro sets a Chef client on the instance based on its role.
  4. The instance with a Chef server role downloads all cookbooks supported and verified by Maestro.
Thus, within the scope of this project, the user can apply the native Chef components within Maestro, such as:
  • setup Chef workstations.
  • use Chef Knife, i.e. request more recipes from the Chef Supermarket for the Chef server instance deployed in the project.
  • perform custom configuration, where an instance is set up with a custom role and sends requests to the project’s custom Chef server.
  • the project administrator can download new recipes both from Chef Supermarket and via Chef Knife, thus expanding Maestro orchestration functionality.
In such a way, Chef significantly simplifies the procedure of automating virtual infrastructures configuration, saving the time, and making work of DevOps specialists on the project more manageable.

Comments

Popular posts from this blog

Maestro Analytics: Essentials at the Fingertips

Maestro: Greeting the Green Dragon

Maestro Orchestrator: Product? SaaS? Framework!