CSC/ECE 517 Fall 2013/rails infrastructure management tools: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 43: Line 43:
# Setup chef client: Using knife tool in workstation, chef clients are setup on nodes.
# Setup chef client: Using knife tool in workstation, chef clients are setup on nodes.


Configure a role
====Configure a role====
Provision and setup a node
====Provision and setup a node====
Node management - foreman and chef
====Node management - foreman and chef====
Config files deployment - NFS mounting,network, security-configuration of netowrk restrictions and Ip restrictions.
====Config files deployment - NFS mounting,network, security-configuration of netowrk restrictions and Ip restrictions.====
Authentication and key deployment
====Authentication and key deployment====





Revision as of 23:04, 14 September 2013

Rails Infrastructure Management Tools- Comparison of Puppet and Chef

The Scenario

The scenario we will be using for the purposes of this comparison will be one that is a very prevalent one - a large scale web application infrastructure. We shall assume that the web application under discussion is being developed used Rails though this does not overly affect the infrastructure management - it is equally applicable to other frameworks.

The specific requirements of this sample project are as follows-

  • Zero downtime - the website's operation is a critical part of the client's business model. They require that the website should have zero downtime which means the infrastrucutre must handle failures, deployment and maintenance without interrupting the site's operation.
  • Large scale - The client anticipates a very high and dynamic load on the site which means the site should adapt to user demand and the infrastructure should be able to handle the required performance.
  • System Integration - The project is being built to be integrated with the client's legacy systems and need to integrate with them. The infrastructure must support the connection between these systems.


Sub Tasks =

Installation and setup

As part of our example scenario we shall assume that our environment consists of a collection of Amazon Web Services (AWS) instances.

Puppet


Puppet can be installed via packages for debian and yum based systems. The package source need only be configured the normal way and the package to be installed.

A particular instance needs to be chosen as the Puppet Master and the puppet-server package needs to be installed on it.

The remaining instances need to have the puppet package installed on it.

Once that is the Puppet Master needs to be configured with a valid host name. Then the agent nodes need to be configured to point to the host name of the server.

Finally the Puppet Master needs to sign of on the certificate of each Puppet Agent that will communicate with it as all the communication between the Puppet nodes is encrypted.

Chef


  1. Install chef server on the server machine
  2. Setup workstation:
    1. Setup chef-repo in the workstation.
    2. The machine needs to have access to the server, as well one of the chef clients machine which can act as the first node.
  3. Setup chef client: Using knife tool in workstation, chef clients are setup on nodes.

Configure a role

Provision and setup a node

Node management - foreman and chef

Config files deployment - NFS mounting,network, security-configuration of netowrk restrictions and Ip restrictions.

Authentication and key deployment

?? Environment setup

Headline text