Drink your Deployment
   Maladies away with Moonshine
                         Subtitle




 Josh Nichols                 ...
Title text
                           Subtitle




 Josh Nichols                         technicalpickles.com
Monday, Marc...
What is deploying?

                  • Put code on server
                  • Run it
                  • ...
            ...
Obligatory outline

                  • Hurdles to Deploying
                  • Enter the Moonshine
                  • A...
Three hurdles to deployment




 Josh Nichols                                technicalpickles.com
Monday, March 15, 2010
OMG CHOICES
     • apache, nginx, lighttpd

     • fastcgi, webrick, mongrel, thin, unicorn, passenger

     • sqlite, mys...
Josh Nichols            technicalpickles.com
Monday, March 15, 2010
zomg implementation




 Josh Nichols                            technicalpickles.com
Monday, March 15, 2010
How about that drink?



 Josh Nichols                           technicalpickles.com
Monday, March 15, 2010
Enter the Moonshine

                           • Released ~ 1 year ago
                           • Developed by Rails Ma...
Opinionated stack




 Josh Nichols                           technicalpickles.com
Monday, March 15, 2010
Code == knowledge

                  • Moonshine comes with default configuration that work
                         out of...
Automated like whoa



                  • cap deploy:setup # => prepare for moonshine
                  • cap deploy     ...
The code behind the moonshine




 Josh Nichols                            technicalpickles.com
Monday, March 15, 2010
Apply moonshine to
                  your application


 Josh Nichols                 technicalpickles.com
Monday, March 1...
First, a server

                  • Running Ubuntu 8.10
                  • A user named ‘rails’
                   • Can...
Install it
                         script/plugin install
                         git@github.com:railsmachine/moonshine.g...
Generate it
                         script/generate moonshine




 Josh Nichols                                   technic...
Customize it
                  app/manifests/application_manifest.rb
                  config/moonshine.yml




 Josh Nicho...
Deploy it
                         cap deploy:setup deploy




 Josh Nichols                                  technicalpic...
Beyond the first deploy

                  • Installing packages
                  • Installing gems
                  • cr...
Installing packages




 Josh Nichols                             technicalpickles.com
Monday, March 15, 2010
Installing gems




 Josh Nichols                              technicalpickles.com
Monday, March 15, 2010
Installing gems (better)




 Josh Nichols                                technicalpickles.com
Monday, March 15, 2010
Cron jobs




 Josh Nichols                        technicalpickles.com
Monday, March 15, 2010
Creating files




 Josh Nichols                            technicalpickles.com
Monday, March 15, 2010
Overwritting moonshine defaults




 Josh Nichols                            technicalpickles.com
Monday, March 15, 2010
Moonshine plugins
                         Like Rails plugins, but for moonshine




 Josh Nichols                        ...
$ script/generate moonshine_plugin bostonrb
          create         vendor/plugins/moonshine_bostonrb
          create   ...
Some existing plugins

                  • moonshine_god
                  • moonshine_sphinx
                  • moonshin...
Question Interlude


 Josh Nichols                     technicalpickles.com
Monday, March 15, 2010
The future!?


 Josh Nichols                      technicalpickles.com
Monday, March 15, 2010
End.


 Josh Nichols                   technicalpickles.com
Monday, March 15, 2010
Upcoming SlideShare
Loading in …5
×

Drink your deployment maladies away with moonshine

1,664 views

Published on

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.

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,664
On SlideShare
0
From Embeds
0
Number of Embeds
25
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

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

×