Ex-Amazon 'Master of Disaster' animates server Chef
'Object oriented programming for sysadmins'
Opscode — the Seattle-based startup lead by Amazon's former "Master of Disaster" — has introduced an online service for overseeing the use of its open source Chef framework, a means of juggling server configurations atop so-called infrastructure clouds such as Amazon EC2 and in good ol' private data centers.
Distributed computing guru Thorsten von Eicken calls Chef "object oriented programming for system administrators". With Chef, rather than building individual configuration scripts for each type of server you spin up, you can build object-oriented "recipes" that configure server images on the fly.
Chef runs as an agent on the server — be it a virtual instance or a physical server — and it carries out these recipes, object-oriented code that installs and configures software according to certain predefined rules.
When you launch an instance for web serving, for example, you can call a series of recipes that install and configure Apache. "When a new node comes up, you define it as a webserver and Chef will take all the actions necessary to bring that server into production as an Apache server and do something useful," Opscode director of business operations Bryan Hale tells The Reg.
von Eicken's company, RightScale, uses Chef on its eponymous services for managing server instances across various infrastructure clouds, including Amazon EC2, Rackspace Servers, and Go Grid. RightScale lets you build a single server template that runs across disparate cloud services. You spin up a server on Amazon, for example, and RightScale will select the bits of the template that apply to Amazon.
Chef was introduced by Opscode last year, and today the company rolled out a limited beta of what it calls the Opscode Platform. This is essentially an online service for managing the use of Chef. Opscode offers an open source Chef server that taps into the Chef agent, and you can think of the Opscode Platform as a hosted version of Chef server. "We're the Salesforce.com of configuration management," says Hale.
The Opscode Platform collects data from the Chef client, creating a central data store describing server setup and behavior that can be tapped by recipes. You could configure, say, a load balancer that needs to know the exact inventory and state of every web server and application server on your infrastructure. You could also use it for infrastructure monitoring, and it provides tools for infrastructure access control.
The service will be priced according to the number of nodes you're running. The first five nodes are free, and then it's five dollars per node per month.
Opscode CEO Jesse Robbins was previously with Amazon, where he was "responsible for website availability for every property bearing the Amazon brand." This earned him the affectionate titled "Master of Disaster". The company's CTO, Chris Brown, was a founding member, architect, and lead developer on Amazon EC2. ®
"Sounds like you've never had to deal with any large deployments."
Just fortune 150s, nothing country sized.
"Here's a job for you to do manually: configure 20 new servers of three types for a production-quality deployment. You have 10 minutes."
As a consultant, I would fire the management who came up with such an unrealistic concept. On the spot, no questions asked. HTH, HAND.
Missed the point?
Sounds like you've never had to deal with any large deployments. Here's a job for you to do manually: configure 20 new servers of three types for a production-quality deployment. You have 10 minutes.
similar, but still adds new value
Chef is mostly an evolution of cfengine, and it's a completely different approach to puppet.
The key approach of chef's config management is convergence - instead of having scripts that say 'do this', you have recipes that say 'make it like this', which mean it's much less sensitive to varying starting config - for example a script that tries to install apache and add options to a config file is likely to cause problems if it's already been done (e.g. enabling the same PHP extension more than once causes errors). Chef takes care of that. It also deals with higher-level constructs spanning multiple devices such as 'attach all servers that are configured as web servers as back-ends to this load balancer'; configuring a new server as a web server would automatically add it to the balancer (if you want that of course). It can also work backwards - simply remove apache from your config, and it will get uninstalled cleanly.
All that said, chef is still pretty new and changing fast, which makes it a little hard to keep up with, not a welcome characteristic of a config management system.