Friday, January 29, 2016

DevOps tools: The beginner's guide to Chef

Configuration management 101


In the DevOps model, developers and system operators work closely together throughout the software development process to deploy software more frequently and more reliably. Many new third party and proprietary tools have been developed to support automation, measurement and sharing.

Chef: "IT automation for speed and awesomeness"

Chef is a configuration management tool for dealing with machine setup on physical servers, virtual machines and in the cloud. Many companies use Chef software to control and manage their infrastructure including Facebook, Etsy, Cheezburger, and Indiegogo.

But what does that really mean?

Configuration management is all about trying to ensure that the files and software you are expecting to be on a machine are present, configured correctly, and working as intended.
When you have only a single machine this is fairly simple. When you have five or ten servers, it is still possible to do this manually, but it may take all day. However, when your infrastructure scales up into the thousands we need a better way of doing things.

Infrastructure as code

Chef helps solve this problem by treating infrastructure as code. Rather than manually changing anything, the machine setup is described in a Chef recipe.
Collections of recipes are stored in a cookbook. One cookbook should relate to a single task, but can have a number of different server configurations involved (for example a web application with a database, will have two recipes, one for each part, stored together in a cookbook).
There is a Chef server which stores each of these cookbooks and as a new chef client node checks in with the server, recipes are sent to tell the node how to configure itself.
The client will then check in every now and again to make sure that no changes have occurred, and nothing needs to change. If it does, then the client deals with it. Patches and updates can be rolled out over your entire infrastructure by changing the recipe. No need to interact with each machine individually.

Chef configuration

Chef Configuration from https://www.chef.io/solutions/cloud-management/
Figure 1- Chef configuration from https://www.chef.io/solutions/cloud-management/
Recipes and cookbooks are the heart of the configuration management. They are written using the Ruby programming language, however, the domain specific language used by Chef is designed to be able to be understood by everyone. As the configuration is just code it can be tested and it can be version controlled. This means that there is less downtime, more reliable services and less stressed people on both the dev and ops sides.



Chef config files to install Apache
Chef Hello World screenshot
Figure 2: Chef config files to install Apache and add a hello world html page

So why is it awesome?

You want more? How about Chef Analytics - the ability to visualise everything going on in real time. It will check if something is going wrong and notify you before the problem becomes noticeable to your clients.
The Chef development kit allows you to write and manage your chef infrastructure from any machine and any operating system.
Chef's Knife allows you to manage the interface between your Chef bookshelf (the repository) and your chef server. The high availability and replication feature allows you to ensure that even if something goes wrong, the chef server is able to adapt and recreate your infrastructure as required, without outside help

Thursday, January 28, 2016

VMware Integrated OpenStack 2.0 turns up the heat

The latest version of VMware Integrated OpenStack makes it clear that VMware takes OpenStack development and implementation seriously.
VMware Integrated OpenStack is an OpenStack distribution for those who want to manage a private cloud on top of a vSphere infrastructure. In this article, you'll learn which OpenStack services are available in the new release of VMware Integrated OpenStack 2.0, and how working with VIO makes OpenStack implementation easier.
Implementation of VMware Integrated OpenStack 2.0 (VIO)happens as a virtual appliance, which is offered to customers of VMware vSphere Enterprise Plus without additional charges. After importing the appliance, you'll be ready to use OpenStack formats on top of a VMware vSphere infrastructure. To get started with these OpenStack services, you'll first need to know exactly what is included.
In OpenStack, the dashboard project is used for managing VMs. Most tasks that you'll need to manage the VIO environment are integrated in VMware vSphere Web Client.
The OpenStack services themselves run on Linux virtual machines that are important with the OpenStack Appliance. As a user of VIO, you'll hardly ever work on these VMs directly, as all significant management tasks are provided through the Web Client interface.
OpenStack services in VMware Integrated OpenStack 2.0
First and foremost is Nova -- the core of OpenStack and the layer that talks to the hypervisor about VM placement. Nova does not replace the hypervisor but integrates with most hypervisors on the market. In VIO, Nova only talks to vSphere ESXi; other hypervisor platforms cannot be integrated in VIO.
To deploy instances of VMs in VIO, we need images. These images are provided by the OpenStack Glance image service. This service allows users to work with different image formats to provide an optimal level of flexibility. Glance also allows administrators to work with images that are downloaded from the Internet, or custom build images that are created to match in-company needs.

When spinning off an instance in OpenStack, its storage is ephemeral by nature. Cinder, or OpenStack Block Storage, is provided for users that need to store data within a VM. This service enables users to create consistent block storage that is associated to the VM. Typically, Cinder volumes appear in VMs as an additional hard drive. Both Cinder and Glance OpenStack services use the VMware VMDK Driver, which facilitates integration with the block storage features that are provided by VMware vSphere environments.
The default OpenStack service Neutron is used to take care of networking. This service is responsible for creating a software-defined networking environment and uses the default NSX driver to talk to an NSX controller in the vSphere world, which allows for connection to vSphere virtual distributed switches.
Introduced in the latest version of VIO, Heat is an OpenStack componentthat provides application templates, which make it easy to deploy virtual appliances as well as large amounts of instances in an OpenStack environment.
VMware Integrated OpenStack 2.0 is based on the OpenStack Kilo release, which was launched in April 2015. Since Kilo's release, the OpenStack community has moved on to OpenStack Liberty, which launched in October 2015, but there are no compelling reasons for an OpenStack version such as VIO to follow the OpenStack release cycle so closely.
A number of new features have been added to VMware Integrated OpenStack 2.0, including automated upgrades, Load Balancing as a Service and Auto Scaling support based on OpenStack Heat. Additionally, VIO 2.0 offers automated conversion of non-VMware image formats such as Qcow2, Raw, VDI and VHD.
VIO was released just over a year ago, but with the recent launch of version 2.0 VMware has made it clear it takes OpenStack development seriously, and it is listening to requests for new features from current users of OpenStack.

HIPPA