Using Chef to Manage Windows Azure Resources

Chef Logo

Chef is an open source DevOps tool built to address hard IT infrastructure challenges. The team at Microsoft Open Technologies Inc. (MS Open Tech) has been hard at work collaborating with Chef the company to enhance Windows Azure resource management capabilities. The latest knife-azure release (v1.2.2) brings a number of bug fixes and some important new features to Chef that focus on provisioning and managing optimized clusters of virtual machines and other Windows Azure resources.

Knife is a Chef command line tool that provides an interface between a local Chef repository (which holds various data objects that describe resources) and a Chef server (which acts as a hub for configuration management). With Knife, you can manage many aspects of your infrastructure. The latest 1.2.2 update of knife-azure adds support for Windows Azure virtual networks and affinity groups to Knife.

Virtual networks make it possible to create logically isolated sections of Windows Azure which can then be securely connected to on premise clients and servers. A virtual network makes it easy for you to take advantage of Windows Azure’s scalable, on-demand infrastructure while providing connectivity to data and applications on-premises. For example, you could use a virtual network to:

Extend your datacenter in the same way that you would set up and connect to a remote branch office. You retain control over the network topology and configuration, and manage it in the same way you would your on-premises infrastructure.

Build distributed applications hosted in a hybrid environment, maintaining secure connections with on-premises infrastructure without the creation of custom codes. For example, a web application hosted in Windows Azure can securely access an on premise database server or authenticate users against an on premise directory service.

Remotely debug your applications by creating a direct connection between your local development machine and virtual machines hosted in Windows Azure. This allows you to troubleshoot and debug them using the same tools you would use for on-premises applications.

The second major addition in this knife-azure release is the ability to manage affinity groups. Affinity groups enable you to configure your infrastructure so that there is a higher degree of co-location within a datacenter. This ensures there is minimal latency between servers and thus optimize performance.

Full details of the supported Azure functionality in knife-azure (along with installation and configuration notes) can be found on the knife-azure GitHub project pages. It can also be retrieved as a Ruby Gem.

To learn more about Chef and Knife Azure check out this interview and demo on Channel 9 (Chef section starts at 7m 28s).

Why not take Chef and Windows Azure for a spin? You can sign up for a free trial subscription of Windows Azure, if you don't already have one.

Let us know what you think!