Chef Deployment Tool


What is Chef? Chef is a configuration management and deployment tool based on Ruby language. The most favorable feature of Chef is that it can be integrated with any Cloud technology. In the field of DevOps Chef is used to deploy and manage servers and applications in-house and on the cloud.

Let’s move on to the Chef architecture.

In order to get an idea of Chef architecture, first it is needed to get an understand regarding the following key components of Chef.

  • Recipe: Recipes contain information for a node to be run, create and change. This work as a collection of resources which determines the configuration of a node.
  • Cookbook: A cookbook is a collection of recipes. These are uploaded to Chef server from the workstation. When Chef runs, cookbook ensures that the recipes inside it get a given infrastructure to the desired state as listed in the recipe.
  • Knife: This is a command line tool which is used to interact with nodes or work with objects on the Chef server. Knife manages roles, cookbooks, nodes, data, bags, index, recipes and environments on the Chef server.
  • Test Kitchen:  This automatically tests cookbook data across any combination of patterns and test suites.


The main components in the Chef architecture are;
  • Chef workstation
  • Chef server
  • Chef nodes

Chef workstation
This is the place where all configurations are developed to allow users to author, test and maintain cookbooks using tools such as Test Kitchen, and interact with Chef intra server with tools such as Knife.

Chef server
This works as a centralized unit of Chef setup. There different kinds of Chef servers such as hosted Chef server and built-in premise. This server stores cookbooks, the policies related to nodes and metadata which describes each registered node that is being managed by Chef.

Chef Nodes
These are the actual machines which are going to be managed by the Chef server. Chef client helps for the communication between Chef server and Chef node. Ohai is another component of Chef node, which is used to get the current state of any node at a given time.

The above three components with each other in a linear manner. Any changes happen in the workstation are pushed towards the server, and then they are pulled by nodes and implemented on each node with Chef client. Information about the nodes also passes to the server to determine the changes in the files.


The rest of the article describes Chef deployment with respect to AWS

The below AWS services are used for Chef deployment.
  • Amazon VPC: Through VPC we can provide a private isolated section of the AWS cloud. The main usage of having an isolated section is that users have complete control over virtual networking environment can have their own IP range, creation of subnets and configuration of route tables and network gateways.
  • Amazon EC2: This enables to launch virtual machine instances with a variety of operating systems.
  • Amazon Marketplace: This is an online store where users can sell or  buy software that run on AWS


References 

Comments

Popular posts from this blog

Probabilistic Data Structures 1