Notes: John Willis, Configuration Management in the Cloud

John Willis, Configuration Management in the Cloud

Specifically, "infrastructure as a service" (there are a lot of kinds of clouds)

People tend to think that cloud infrastructures come with sysadmins.
Infrastructure is hard. Control, provisioning, release, sources, monitoring, model. KaChing is crazy automated. They do 50 builds a day (continuous deployment). But this is a *lot* of work.

Cloudy Provisioning
Provisioning: ask for instances, get lamp stack (e.g.). All start off identical.
Configuration: turn those systems into their desired roles. Images, auto install. Systems integration: hook all the systems together. The last mile.

Chef: role-based config. Treat your infrastructure the same way you treat your code, eg reusable modules.

Why should we care about devops? It's an easy way to run your business better. Devops is not a tool, it's a cultural movement.

Even in agile projects, ops was waterfall. Better to treat infrastructure as code.

A tornado hits your data center, and you can deal with it.

Your prime constraint should be the time it takes to restore your applications.

Chef
A library for config management.
Chef Client runs on your systems. They talk to Servers. Each configured system is a Node. Attributes are searchable. Roles describe what a Node should be. Roles have Run Lists: what Roles or Recipes to apply in order. Roles are searchable. Chef manages Resources on Nodes. Resources (Ruby classes) have Parameters and Actions. Recipes are lists of Resources. Data Bags store arbitrary data. Separates config data from config logic. Eg user Data Bags: vimrc, ssh keys, can deploy user accounts easily. Cookbooks are collections of recipes. Infrastructure as code -> check it into VCS, refactor infrastructure code. Shef is Chef in Irb. Cookbooks are shareable (this has hit a nerve with sysadmins). Chef is idempotent. It doesn't change anything that hasn't changed. Won't reinstall stuff that's already installed. Will only change the things that have changed.

Lots of adoption. Open training, creative commons, attribution share alike. It's all geared toward adoption.

Knife
Implementation of the API. Example: add cloud credentials to knife config. Create 4 identical servers on 4 different cloud providers. Interchangeable providers! Opscode platform
Hosted, multi-tenant chef server. Free for 5 nodes. $50 for 20. #hoedown2010