Advertisement
Advertisement

More Related Content

Advertisement

Drink your deployment maladies away with moonshine

  1. Drink your Deployment Maladies away with Moonshine Subtitle Josh Nichols technicalpickles.com Monday, March 15, 2010
  2. Title text Subtitle Josh Nichols technicalpickles.com Monday, March 15, 2010
  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. 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. Three hurdles to deployment Josh Nichols technicalpickles.com Monday, March 15, 2010
  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. Josh Nichols technicalpickles.com Monday, March 15, 2010
  8. zomg implementation Josh Nichols technicalpickles.com Monday, March 15, 2010
  9. How about that drink? Josh Nichols technicalpickles.com Monday, March 15, 2010
  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. Opinionated stack Josh Nichols technicalpickles.com Monday, March 15, 2010
  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. 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. The code behind the moonshine Josh Nichols technicalpickles.com Monday, March 15, 2010
  15. Apply moonshine to your application Josh Nichols technicalpickles.com Monday, March 15, 2010
  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. Install it script/plugin install git@github.com:railsmachine/moonshine.git Josh Nichols technicalpickles.com Monday, March 15, 2010
  18. Generate it script/generate moonshine Josh Nichols technicalpickles.com Monday, March 15, 2010
  19. Customize it app/manifests/application_manifest.rb config/moonshine.yml Josh Nichols technicalpickles.com Monday, March 15, 2010
  20. Deploy it cap deploy:setup deploy Josh Nichols technicalpickles.com Monday, March 15, 2010
  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. Installing packages Josh Nichols technicalpickles.com Monday, March 15, 2010
  23. Installing gems Josh Nichols technicalpickles.com Monday, March 15, 2010
  24. Installing gems (better) Josh Nichols technicalpickles.com Monday, March 15, 2010
  25. Cron jobs Josh Nichols technicalpickles.com Monday, March 15, 2010
  26. Creating files Josh Nichols technicalpickles.com Monday, March 15, 2010
  27. Overwritting moonshine defaults Josh Nichols technicalpickles.com Monday, March 15, 2010
  28. Moonshine plugins Like Rails plugins, but for moonshine Josh Nichols technicalpickles.com Monday, March 15, 2010
  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. 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. Question Interlude Josh Nichols technicalpickles.com Monday, March 15, 2010
  32. The future!? Josh Nichols technicalpickles.com Monday, March 15, 2010
  33. End. Josh Nichols technicalpickles.com Monday, March 15, 2010
Advertisement