Successfully reported this slideshow.

Drink your deployment maladies away with moonshine

4

Share

1 of 33
1 of 33

Drink your deployment maladies away with moonshine

4

Share

Managing and deploying a Rails application can be enough drive anyone to drink.

There is an entire world of knowledge and skills to master. There are eleventy different decisions to fathom and make. And even when you have learned those skills and made those decisions, there are many tedious and error-prone steps to perform just to get a server in working condition.

But it does not have to be this way. Moonshine, an open source marriage of Capistrano and Puppet, allows you to forget your deployment troubles. Moonshine encapsulates knowledge for building and managing servers, has opinions about the decisions you need to make, and automates the pain and tedium of manual configuration away. In short, you can enjoy a drink at your leisure, instead of being driven to it.

This presentation will inform users of all levels about the complexities of deployment along with solutions that work.

Managing and deploying a Rails application can be enough drive anyone to drink.

There is an entire world of knowledge and skills to master. There are eleventy different decisions to fathom and make. And even when you have learned those skills and made those decisions, there are many tedious and error-prone steps to perform just to get a server in working condition.

But it does not have to be this way. Moonshine, an open source marriage of Capistrano and Puppet, allows you to forget your deployment troubles. Moonshine encapsulates knowledge for building and managing servers, has opinions about the decisions you need to make, and automates the pain and tedium of manual configuration away. In short, you can enjoy a drink at your leisure, instead of being driven to it.

This presentation will inform users of all levels about the complexities of deployment along with solutions that work.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Drink your deployment maladies away with moonshine

  1. 1. Drink your Deployment Maladies away with Moonshine Subtitle Josh Nichols technicalpickles.com Monday, March 15, 2010
  2. 2. Title text Subtitle Josh Nichols technicalpickles.com Monday, March 15, 2010
  3. 3. What is deploying? • Put code on server • Run it • ... • PROFIT? ... if it was as easy as this sounds, I wouldn’t be here today Josh Nichols technicalpickles.com Monday, March 15, 2010
  4. 4. Obligatory outline • Hurdles to Deploying • Enter the Moonshine • Applying Moonshine to your application • Moonshine Plugins • The future!? Josh Nichols technicalpickles.com Monday, March 15, 2010
  5. 5. Three hurdles to deployment Josh Nichols technicalpickles.com Monday, March 15, 2010
  6. 6. OMG CHOICES • apache, nginx, lighttpd • fastcgi, webrick, mongrel, thin, unicorn, passenger • sqlite, mysql, postgresql, oracle, myssql • mongodb, riak • debian, slackware, gentoo, fedora, redhat enterprise linux, centos, ubuntu • monit, god • scout, newrelic • self hosted, colocated, slicehost, linode, amazon ec2, rackspace, engineyard, rails machine • iptables, shorewall • redis, memcached, tokyo cabinet • ferrit, solr, sphinx • are you still reading this? Josh Nichols technicalpickles.com Monday, March 15, 2010
  7. 7. Josh Nichols technicalpickles.com Monday, March 15, 2010
  8. 8. zomg implementation Josh Nichols technicalpickles.com Monday, March 15, 2010
  9. 9. How about that drink? Josh Nichols technicalpickles.com Monday, March 15, 2010
  10. 10. Enter the Moonshine • Released ~ 1 year ago • Developed by Rails Machine • Open source • Built on Capistrano and Puppet Josh Nichols technicalpickles.com Monday, March 15, 2010
  11. 11. Opinionated stack Josh Nichols technicalpickles.com Monday, March 15, 2010
  12. 12. Code == knowledge • Moonshine comes with default configuration that work out of the box • Additional Server configuration lives inside your source tree Josh Nichols technicalpickles.com Monday, March 15, 2010
  13. 13. Automated like whoa • cap deploy:setup # => prepare for moonshine • cap deploy # => first deploy • cap deploy # => second deploy with code updates • cap deploy # => deploy after adding sphinx • cap deploy:setup deploy # => to start over on a new server Josh Nichols technicalpickles.com Monday, March 15, 2010
  14. 14. The code behind the moonshine Josh Nichols technicalpickles.com Monday, March 15, 2010
  15. 15. Apply moonshine to your application Josh Nichols technicalpickles.com Monday, March 15, 2010
  16. 16. First, a server • Running Ubuntu 8.10 • A user named ‘rails’ • Can ssh passwordlessly • Can sudo • A domain name Josh Nichols technicalpickles.com Monday, March 15, 2010
  17. 17. Install it script/plugin install git@github.com:railsmachine/moonshine.git Josh Nichols technicalpickles.com Monday, March 15, 2010
  18. 18. Generate it script/generate moonshine Josh Nichols technicalpickles.com Monday, March 15, 2010
  19. 19. Customize it app/manifests/application_manifest.rb config/moonshine.yml Josh Nichols technicalpickles.com Monday, March 15, 2010
  20. 20. Deploy it cap deploy:setup deploy Josh Nichols technicalpickles.com Monday, March 15, 2010
  21. 21. Beyond the first deploy • Installing packages • Installing gems • cron jobs • Creating files • Overwritting moonshine defaults Josh Nichols technicalpickles.com Monday, March 15, 2010
  22. 22. Installing packages Josh Nichols technicalpickles.com Monday, March 15, 2010
  23. 23. Installing gems Josh Nichols technicalpickles.com Monday, March 15, 2010
  24. 24. Installing gems (better) Josh Nichols technicalpickles.com Monday, March 15, 2010
  25. 25. Cron jobs Josh Nichols technicalpickles.com Monday, March 15, 2010
  26. 26. Creating files Josh Nichols technicalpickles.com Monday, March 15, 2010
  27. 27. Overwritting moonshine defaults Josh Nichols technicalpickles.com Monday, March 15, 2010
  28. 28. Moonshine plugins Like Rails plugins, but for moonshine Josh Nichols technicalpickles.com Monday, March 15, 2010
  29. 29. $ script/generate moonshine_plugin bostonrb create vendor/plugins/moonshine_bostonrb create vendor/plugins/moonshine_bostonrb/README.rdoc create vendor/plugins/moonshine_bostonrb/moonshine create vendor/plugins/moonshine_bostonrb/moonshine/init.rb create vendor/plugins/moonshine_bostonrb/lib create vendor/plugins/moonshine_bostonrb/lib/bostonrb.rb create vendor/plugins/moonshine_bostonrb/spec create vendor/plugins/moonshine_bostonrb/spec/bostonrb_spec.rb create vendor/plugins/moonshine_bostonrb/spec/spec_helper.rb Josh Nichols technicalpickles.com Monday, March 15, 2010
  30. 30. Some existing plugins • moonshine_god • moonshine_sphinx • moonshine_resque • moonshine_mongodb • moonshine_scout • moonshine_wordpress • moonshine_iptables Josh Nichols technicalpickles.com Monday, March 15, 2010
  31. 31. Question Interlude Josh Nichols technicalpickles.com Monday, March 15, 2010
  32. 32. The future!? Josh Nichols technicalpickles.com Monday, March 15, 2010
  33. 33. End. Josh Nichols technicalpickles.com Monday, March 15, 2010

×