Share your Infrastructure!

With Chef and Vagrant

Application Stacks evolve ...

... into something "modular"

Storage, Servers, Backend, Frontends, ...

credits to Speak Geek

Rubies

1.8, 1.9, 2.0, 2.1, ...

Redis / Postgres / ArangoDB

So, What is Chef?

Convention-over-configuration for infrastructure

What ??

It helps with...


$ sudo apt-get install checkinstall
 
$ wget -c http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.gz
$ tar -xzf ruby-2.0.0-p0.tar.gz
$ cd ruby-2.0.0-p0
 
$ ./configure   
$ make
 
$ sudo checkinstall -y \
  --pkgversion 2.0.0-p0 \
  --provides "ruby-interpreter"
                    

Provisioning

e.g. Heroku --> VPS

Work in Teams

Abstractions in Chef

Directory structure



   |-recipes
   |-templates
   |-attributes
   |-vendor
   |---cookbooks
   | ...
                    

Cookbooks

are similar to Ruby gems

manage "stages" for provisioning

Recipes

are steps for provisioning

"Resources"

are "instruments"

e.g. git, gcc, ...

Chef-solo vs. Chef server

A question of scale and convenience

An Example

Practicing Ruby Cookbook

The Goals

  • Ruby 2.0
  • Rails / Unicorn
  • PostgreSQL

Demo

References

Thanks !

patrick mulder

@mulpat

Thinking on thinking

Available for projects!