SlideShare une entreprise Scribd logo
1  sur  33
Drink your Deployment
   Maladies away with Moonshine
                         Subtitle




 Josh Nichols                       technicalpickles.com
Monday, March 15, 2010
Title text
                           Subtitle




 Josh Nichols                         technicalpickles.com
Monday, March 15, 2010
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
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
Three hurdles to deployment




 Josh Nichols                                technicalpickles.com
Monday, March 15, 2010
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
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 Machine
                           • Open source
                           • Built on Capistrano and Puppet




 Josh Nichols                                       technicalpickles.com
Monday, March 15, 2010
Opinionated stack




 Josh Nichols                           technicalpickles.com
Monday, March 15, 2010
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
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
The code behind the moonshine




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


 Josh Nichols                 technicalpickles.com
Monday, March 15, 2010
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
Install it
                         script/plugin install
                         git@github.com:railsmachine/moonshine.git




 Josh Nichols                                           technicalpickles.com
Monday, March 15, 2010
Generate it
                         script/generate moonshine




 Josh Nichols                                   technicalpickles.com
Monday, March 15, 2010
Customize it
                  app/manifests/application_manifest.rb
                  config/moonshine.yml




 Josh Nichols                                        technicalpickles.com
Monday, March 15, 2010
Deploy it
                         cap deploy:setup deploy




 Josh Nichols                                  technicalpickles.com
Monday, March 15, 2010
Beyond the first deploy

                  • Installing packages
                  • Installing gems
                  • cron jobs
                  • Creating files
                  • Overwritting moonshine defaults




 Josh Nichols                                         technicalpickles.com
Monday, March 15, 2010
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                                         technicalpickles.com
Monday, March 15, 2010
$ 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
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
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

Contenu connexe

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

En vedette

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

En vedette (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

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