Here's what I'm going to talk to you about. ● Why you should automate your web infrastructure. ● What is Chef? ● How to use Chef to set-up a python/Django project.
Why you should automate your web infrastructure. ● All of your configuration information is in one place (and that place isn't someone's head) ● You can spin up perfectly configured servers instantly! ● You can change things in one place and have them propagate through your entire system ● You can create dev and test environments that are exact replicas of production.
Chef Server ● central storage for all your chef configuraions ● stores all your git repo stuff as structured data in json ● uses couchDB for storage and querying ● Hosted Chef free for up to 5 nodes - then you should host it yourself Chef Server
Roles ● A nice way of abstracting what a node does and what should be installed on it. I.e. a webserver role vs. a database role ● run_list of installations ● Can talk about other machines in your infrastructure by their role; open up firewalls to front-end servers ● You can query roles
● You really, really, really, really should use something for server configuration ● Getting started with your Django server ○ https://github.com/heddle317/django-chef-application To sum it all up...
Other tools like Chef ● Heroku ○ "Like having two full-time dev ops people on your team." ● Puppet ○ http://bitfieldconsulting.com/puppet-vs-chef ● Salt ○ this one is in python, but it's new
Links to particularly interesting articles I found while making this presentation ● http://version2beta.com/articles/dev- environments-with-vagrant-chef-and-git/ ● http://devopsanywhere.blogspot. com/2011/10/puppet-vs-chef-fight.html ● http://en.wikipedia. org/wiki/Comparison_of_open_source_confi guration_management_software