SlideShare a Scribd company logo
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

More Related Content

Recently uploaded

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 

Recently uploaded (20)

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 

Featured

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
 
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
marketingartwork
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
 
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
Neil Kimberley
 
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)
contently
 
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
Albert Qian
 
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)
 
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
Search Engine Journal
 
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
SpeakerHub
 
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
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
Tessa Mero
 
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
Lily Ray
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Christy Abraham Joy
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky
 
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
MindGenius
 
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...
RachelPearson36
 
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...
Applitools
 
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
GetSmarter
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
Alireza Esmikhani
 

Featured (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