SlideShare a Scribd company logo
1 of 156
Download to read offline
Launching Ruby on Rails Applications
                        A CHECKLIST




Friday, July 24, 2009
Launching Ruby on Rails Applications
                                 A CHECKLIST




                        Thanks Mark!



Friday, July 24, 2009
Launching Ruby on Rails Applications
                        A CHECKLIST




Friday, July 24, 2009
Launching Ruby on Rails Applications
                        A CHECKLIST




Friday, July 24, 2009
Launching Ruby on Rails Applications
                        A CHECKLIST




Friday, July 24, 2009
Launching Ruby on Rails Applications
                         A CHECKLIST

                        From our team
                        at Planet Argon, direct to you




Friday, July 24, 2009
Launching Ruby on Rails Applications
                         A CHECKLIST

                        Best Practices
                        for prepping your launch pad




Friday, July 24, 2009
Launching Ruby on Rails Applications




Friday, July 24, 2009
Launching Ruby on Rails Applications




                        HOSTING




Friday, July 24, 2009
Launching Ruby on Rails Applications




                        SEARCH ENGINES
                           HOSTING




Friday, July 24, 2009
Launching Ruby on Rails Applications




                        DATA HARVESTING
                        SEARCH ENGINES
                           HOSTING




Friday, July 24, 2009
Launching Ruby on Rails Applications




                           FEEDBACK
                        DATA HARVESTING
                        SEARCH ENGINES
                            HOSTING




Friday, July 24, 2009
Launching Ruby on Rails Applications




                          EXCEPTIONS
                           FEEDBACK
                        DATA HARVESTING
                        SEARCH ENGINES
                            HOSTING




Friday, July 24, 2009
Launching Ruby on Rails Applications




                         PERFORMANCE
                          EXCEPTIONS
                           FEEDBACK
                        DATA HARVESTING
                        SEARCH ENGINES
                            HOSTING




Friday, July 24, 2009
Launching Ruby on Rails Applications



                            CLIENTS
                         PERFORMANCE
                          EXCEPTIONS
                           FEEDBACK
                        DATA HARVESTING
                        SEARCH ENGINES
                            HOSTING




Friday, July 24, 2009
Launching Ruby on Rails Applications



                                       CLIENTS
                                    PERFORMANCE
                                     EXCEPTIONS
                                      FEEDBACK
                                   DATA HARVESTING
                                   SEARCH ENGINES
                                       HOSTING



                        Have your cake and eat it too!
Friday, July 24, 2009
CHECK
                  YOUR LIST


                        Launching Ruby on Rails
                                   Applications
                                     Checklist


    Watch for it on my blog: http://robbyonrails.com
Friday, July 24, 2009
Friday, July 24, 2009
1200+ respondents


                        More information at http://rails-hosting.com
Friday, July 24, 2009
Before we begin...



Friday, July 24, 2009
Working on your first
                          Rails project?


Friday, July 24, 2009
Have you launched
                        at least one Rails app?


Friday, July 24, 2009
Have you launched
                        at least one Rails app?
                            2-5 Rails apps?


Friday, July 24, 2009
Have you launched
                        at least one Rails app?
                            2-5 Rails apps?
                             more than 5?

Friday, July 24, 2009
SURVEY
                        SAYS...

    Q. How many
       Ruby on Rails                    None
       applications                      4%     1
                                               10%
       have you
                                   5+
       deployed?                  38%




                                                 1-5
                                                 47%




Friday, July 24, 2009
Don’t wait until the last minute!




Friday, July 24, 2009
lots of topics
                          project management
                                                   interaction design
                                  development
                           hosting                  tracking errors
                                       visual design       planning
                        testing code
                                              user feedback
                          public relations        browser testing
                                client management         marketing
                    quality assurance          search engine optimization
                               data harvesting       teamwork
                                        brainstorming
                                                etc.
Friday, July 24, 2009
lots of topics
                          project management
                                                   interaction design
                                  development
                           hosting                  tracking errors
                                       visual design       planning
                        testing code
                                              user feedback
                          public relations        browser testing
                                client management         marketing
                    quality assurance          search engine optimization
                               data harvesting       teamwork
                                        brainstorming
                                                etc.
Friday, July 24, 2009
Launching Ruby on Rails Applications
                                        Hosting




Friday, July 24, 2009
Automate Deployments
Friday, July 24, 2009
CHECK
                  YOUR LIST



                               Create reusable
                               tasks to release
                              new versions of the
                                 application.


Friday, July 24, 2009
SURVEY
                        SAYS...

    Q. Do you use an
       automated
       deployment                  No
       tool?
                                  23%


                                        Yes
                                        77%




Friday, July 24, 2009
That means nearly
                        one in four are still...




Friday, July 24, 2009
That means nearly
                        one in four are still...
                           Manually uploading source
                             code via FTP or SFTP




Friday, July 24, 2009
That means nearly
                        one in four are still...
                           Manually uploading source
                             code via FTP or SFTP

                             SSHing into the server




Friday, July 24, 2009
That means nearly
                        one in four are still...
                           Manually uploading source
                             code via FTP or SFTP

                             SSHing into the server

                          Manually running migrations



Friday, July 24, 2009
That means nearly
                        one in four are still...
                           Manually uploading source
                             code via FTP or SFTP

                             SSHing into the server

                          Manually running migrations

                            Manually restarting their
                                 application
Friday, July 24, 2009
That means nearly
                        one in four are still...
                           Manually uploading source
                Don’t Repeat Yourself!
                             code via FTP or SFTP

                             SSHing into the server

                          Manually running migrations

                            Manually restarting their
                                 application
Friday, July 24, 2009
Minimize Human
    Error




Friday, July 24, 2009
Knowledgeable Team




Friday, July 24, 2009
Make time to test deployments
Friday, July 24, 2009
Know how to
                        ROLLBACK
                        when necessary




Friday, July 24, 2009
Testing gives your team confidence!




Friday, July 24, 2009
Hire a specialist
     who knows their stuff




Friday, July 24, 2009
CHECK
                  YOUR LIST




                              Make sure your team
                               knows how to test,
                                 deploy & rollback
                                 when necessary.


Friday, July 24, 2009
Setup a Staging Environment
Friday, July 24, 2009
Practice
                        in your production environment




Friday, July 24, 2009
Brand new Rails App
        Sign contract
        Setup git repository
        Generate new Rails app

         Deploy to staging!




Friday, July 24, 2009
TIP
                        FROM
                        ROBBY



                          Keep your application
                              deployable
                              at all times!
                                (Not just releasable)



Friday, July 24, 2009
Friday, July 24, 2009
Staging site to the rescue!
Friday, July 24, 2009
Test the water...




Friday, July 24, 2009
... before diving in!
Friday, July 24, 2009
Keep out the Peeping Toms
Friday, July 24, 2009
HTTP Basic Authentication




Friday, July 24, 2009
Friday, July 24, 2009
Test your scheduled tasks...
      in a real hosting environment
Friday, July 24, 2009
Create a deployment guide
Friday, July 24, 2009
TIP
                        FROM
                        ROBBY




                           Put configuration
                               files in Git



Friday, July 24, 2009
TIP
                        FROM
                        ROBBY




                         Have a backup strategy!




Friday, July 24, 2009
CHECK
                  YOUR LIST




                              Set up a staging
                              environment as soon as
                              the project is started.




Friday, July 24, 2009
Monitoring Your App
Friday, July 24, 2009
SURVEY
                        SAYS...

    Q. Do you use
       monit or god
       for server side
                                         Monit
       monitoring?                       26%



                                   No
                                  57%            God
                                                 13%

                                        Other
                                         4%




Friday, July 24, 2009
Use Server Monitoring Tools
  for...
                                        Mongrel

          memcached




                        backgroundDrb
                          delayed_job

Friday, July 24, 2009
CHECK
                  YOUR LIST




                              Setup monit or god.




Friday, July 24, 2009
“Have you tried turning it off
    and on again?”




Friday, July 24, 2009
SURVEY
                        SAYS...

    Q. Do you use any
       uptime
       monitoring                       Nagios
       tools in                          18%

       production?                           Pingdom

                                   No          10%



                                  60%       Other
                                            12%




Friday, July 24, 2009
Use Client Side Monitoring Tools




              do it yourself?

Friday, July 24, 2009
EXTRA
                        CREDIT!




Friday, July 24, 2009
EXTRA
               CREDIT!

   Use Cucumber
   to test in
   production




Friday, July 24, 2009
Be cool & confident...
                        use best practices



                        !Automate your deployments
                        !Setup a staging environment
                        !Server-side monitoring
                        !Client-side monitoring

Friday, July 24, 2009
Launching Ruby on Rails Applications
                                        Search Engines




Friday, July 24, 2009
<h1>Write Good Markup</h1>

        <ul>
         <li>Page Titles</li>
         <li>Permalinks</li>
         <li>Important Elements</li>
        </ul>

        <p>Hire a UI guru!</p>




Friday, July 24, 2009
Page titles are used in search results




Friday, July 24, 2009
URLs are part of the UI



                            Permalinks?



Friday, July 24, 2009
Use markup to create structure




                             Search bots like structure.
Friday, July 24, 2009
<h1>Get in Touch</h1>...
    <h2>Visit Us</h2>...




Friday, July 24, 2009
<img src=”studio.jpg”
         alt=”Planet Argon Studio” />




Friday, July 24, 2009
<a href=”/who-we-are”
         title=”Who We Are”>...</a>




Friday, July 24, 2009
I see possible
            issues with AJAX
              and Javascript




                                BOOM!
Friday, July 24, 2009
Search engines may not be able
                     to access some content
Friday, July 24, 2009
Degrade Gracefully




Friday, July 24, 2009
Create an XML Sitemap




Friday, July 24, 2009
Automate the generation
      of your sitemap




Friday, July 24, 2009
Notify these guys
            when you have an updated sitemap




Friday, July 24, 2009
Sign up for...
    Google Webmaster Tools




Friday, July 24, 2009
Launching Ruby on Rails Applications
                                        Data   Harvesting
                                               & Analytics




Friday, July 24, 2009
CHECK
                  YOUR LIST




                              Identify your Key
                              Performance Indicators
                              (KPIs)




Friday, July 24, 2009
What are some
                        example KPIs?


Friday, July 24, 2009
Example KPIs


                        •   Page views (per day / per visit)




Friday, July 24, 2009
Example KPIs


                        •   Page views (per day / per visit)
                        •   Newsletter subscriptions




Friday, July 24, 2009
Example KPIs

                        •   Page views (per day / per visit)
                        •   Newsletter subscriptions
                        •   Successful orders




Friday, July 24, 2009
Example KPIs

                        •   Page views (per day / per visit)
                        •   Newsletter subscriptions
                        •   Successful orders
                        •   Abandoned shopping carts




Friday, July 24, 2009
Example KPIs

                        •   Page views (per day / per visit)
                        •   Newsletter subscriptions
                        •   Successful orders
                        •   Abandoned shopping carts
                        •   Homepage bounce rate



Friday, July 24, 2009
Collect & Segment



Friday, July 24, 2009
Sign up for Google Analytics
    and make sure your Clients have access




Friday, July 24, 2009
Setup your primary
                         conversion goals
Friday, July 24, 2009
Usage testing
                    not the same as Usability testing




Friday, July 24, 2009
CrazyEgg
           Heatmaps and usage patterns




                         Crazyegg



Friday, July 24, 2009
Clicktale
           Screencasts of real visitors on your site




                             Clicktale



Friday, July 24, 2009
Look for patterns




Friday, July 24, 2009
Get rid of the guesswork




Friday, July 24, 2009
Test your ideas




Friday, July 24, 2009
Launching Ruby on Rails Applications
                                        Data Feedback
                                        User
                                        Data




                        Data Harvesting
Friday, July 24, 2009
Who is responsible for
                           responding to
                             feedback?




Friday, July 24, 2009
User Voice
       Customers vote on ideas




Friday, July 24, 2009
Tender
         Create a support center




Friday, July 24, 2009
zendesk
        Support tool for small companies




Friday, July 24, 2009
GetSatisfaction
         Make it easy for your users to send you feedback




Friday, July 24, 2009
Launching Ruby on Rails Applications
                                        Exceptions




Friday, July 24, 2009
SURVEY
                        SAYS...

    Q. Do you catch and
       track Application
       Exceptions in
       production?                 No
                                  31%
                                        Yes
                                        69%




Friday, July 24, 2009
exception_notification



   http://github.com/rails/exception_notification/tree/master
Friday, July 24, 2009
hoptoad




Friday, July 24, 2009
Exceptional




Friday, July 24, 2009
Friday, July 24, 2009
Default
                                  404




                        Default
                        500
Friday, July 24, 2009
Helpful 404 Page




Friday, July 24, 2009
Helpful 500 Page




Friday, July 24, 2009
Launching Ruby on Rails Applications
                                        Performance




Friday, July 24, 2009
Page load is king




Friday, July 24, 2009
YSlow




Friday, July 24, 2009
Google Page Speed




Friday, July 24, 2009
Benchmark against staging




Friday, July 24, 2009
SURVEY
                        SAYS...

    Q. Do you use any
       performance
       monitoring tools
       in production?
                                        Yes
                                        36%


                                   No
                                  64%


Friday, July 24, 2009
Scout




Friday, July 24, 2009
FiveRuns




Friday, July 24, 2009
New Relic




Friday, July 24, 2009
Is your source code efficient?




Friday, July 24, 2009
Are your database queries efficient?


                        are the database
                        queries efficient?


Friday, July 24, 2009
Are your database queries efficient?
                                      missing indexes?



                        are the database
                        queries efficient?


Friday, July 24, 2009
What are your slowest
                         controller actions?


Friday, July 24, 2009
What are your slowest
                         controller actions?
                          negatively impacting our KPIs?



Friday, July 24, 2009
TIP
                        FROM
                        ROBBY




                          Use data to drive your
                          optimization efforts




Friday, July 24, 2009
Stop guessing!




Friday, July 24, 2009
Launching Ruby on Rails Applications
                                        Clients   Holding
                                                  their hands




Friday, July 24, 2009
Be a coach
Friday, July 24, 2009
TIP
                        FROM
                        ROBBY



                           Make sure you are
                         managing your client’s
                         manage expectations
                             expectations



Friday, July 24, 2009
Launch is the starting line
Friday, July 24, 2009
On-going maintenance is
                          a necessity


Friday, July 24, 2009
Budget for a reliable
                          hosting solution


Friday, July 24, 2009
Be ready on Launch Day




Friday, July 24, 2009
Celebrate!
Friday, July 24, 2009
Share some champagne...




                        Celebrate!
Friday, July 24, 2009
...or Scotch. ;-)
Friday, July 24, 2009
Have a plan ready for
                          the road ahead




Friday, July 24, 2009
Analyze your KPIs
            Keep up on user feedback
            Push out bug fixes early and often




Friday, July 24, 2009
Launching Ruby on Rails Applications
                                           Summary



                        Let’s do a quick review




Friday, July 24, 2009
CHECK
                  YOUR LIST




                               Don’t postpone
                              preparation until
                                  the end



Friday, July 24, 2009
CHECK
                  YOUR LIST



                                 Keep your
                                application
                              deployable at all
                                   times


Friday, July 24, 2009
CHECK
                  YOUR LIST




                              Pace yourself




Friday, July 24, 2009
CHECK
                  YOUR LIST




                              Prepare for the
                                unexpected




Friday, July 24, 2009
CHECK
                  YOUR LIST




                              Solve the right
                                problems




Friday, July 24, 2009
CHECK
                  YOUR LIST




                                    Have fun!
                              Have Fun.



Friday, July 24, 2009
Thank you



Friday, July 24, 2009
Where’s Robby?

                        •   blog: http://robbyonrails.com
                        •   company: http://planetargon.com
                        •   twitter: @robbyrussell
                        •   email: robby@planetargon.com




Friday, July 24, 2009
PLANET ARGON
                           DESIGN // DEVELOPMENT // DEPLOYMENT




                        More information at http://planetargon.com
Friday, July 24, 2009

More Related Content

Similar to Launching Ruby on Rails projects: A checklist

What is Ruby on Rails?
What is Ruby on Rails?What is Ruby on Rails?
What is Ruby on Rails?Karmen Blake
 
Make your app idea a reality with Ruby On Rails
Make your app idea a reality with Ruby On RailsMake your app idea a reality with Ruby On Rails
Make your app idea a reality with Ruby On RailsNataly Tkachuk
 
Test Your JavaScript
Test Your JavaScriptTest Your JavaScript
Test Your JavaScriptmdubya
 
Most common mistakes in ruby on rails development (and how to avoid making them)
Most common mistakes in ruby on rails development (and how to avoid making them)Most common mistakes in ruby on rails development (and how to avoid making them)
Most common mistakes in ruby on rails development (and how to avoid making them)Katy Slemon
 
Practical Search in the Cloud - By Marc Krellenstein
Practical Search in the Cloud - By Marc KrellensteinPractical Search in the Cloud - By Marc Krellenstein
Practical Search in the Cloud - By Marc Krellensteinlucenerevolution
 

Similar to Launching Ruby on Rails projects: A checklist (7)

Cloud, agile
Cloud, agileCloud, agile
Cloud, agile
 
What is Ruby on Rails?
What is Ruby on Rails?What is Ruby on Rails?
What is Ruby on Rails?
 
Make your app idea a reality with Ruby On Rails
Make your app idea a reality with Ruby On RailsMake your app idea a reality with Ruby On Rails
Make your app idea a reality with Ruby On Rails
 
Test Your JavaScript
Test Your JavaScriptTest Your JavaScript
Test Your JavaScript
 
Most common mistakes in ruby on rails development (and how to avoid making them)
Most common mistakes in ruby on rails development (and how to avoid making them)Most common mistakes in ruby on rails development (and how to avoid making them)
Most common mistakes in ruby on rails development (and how to avoid making them)
 
Practical Search in the Cloud - By Marc Krellenstein
Practical Search in the Cloud - By Marc KrellensteinPractical Search in the Cloud - By Marc Krellenstein
Practical Search in the Cloud - By Marc Krellenstein
 
Romulus project presentation
Romulus project presentationRomulus project presentation
Romulus project presentation
 

Recently uploaded

Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 

Recently uploaded (20)

Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 

Launching Ruby on Rails projects: A checklist

  • 1. Launching Ruby on Rails Applications A CHECKLIST Friday, July 24, 2009
  • 2. Launching Ruby on Rails Applications A CHECKLIST Thanks Mark! Friday, July 24, 2009
  • 3. Launching Ruby on Rails Applications A CHECKLIST Friday, July 24, 2009
  • 4. Launching Ruby on Rails Applications A CHECKLIST Friday, July 24, 2009
  • 5. Launching Ruby on Rails Applications A CHECKLIST Friday, July 24, 2009
  • 6. Launching Ruby on Rails Applications A CHECKLIST From our team at Planet Argon, direct to you Friday, July 24, 2009
  • 7. Launching Ruby on Rails Applications A CHECKLIST Best Practices for prepping your launch pad Friday, July 24, 2009
  • 8. Launching Ruby on Rails Applications Friday, July 24, 2009
  • 9. Launching Ruby on Rails Applications HOSTING Friday, July 24, 2009
  • 10. Launching Ruby on Rails Applications SEARCH ENGINES HOSTING Friday, July 24, 2009
  • 11. Launching Ruby on Rails Applications DATA HARVESTING SEARCH ENGINES HOSTING Friday, July 24, 2009
  • 12. Launching Ruby on Rails Applications FEEDBACK DATA HARVESTING SEARCH ENGINES HOSTING Friday, July 24, 2009
  • 13. Launching Ruby on Rails Applications EXCEPTIONS FEEDBACK DATA HARVESTING SEARCH ENGINES HOSTING Friday, July 24, 2009
  • 14. Launching Ruby on Rails Applications PERFORMANCE EXCEPTIONS FEEDBACK DATA HARVESTING SEARCH ENGINES HOSTING Friday, July 24, 2009
  • 15. Launching Ruby on Rails Applications CLIENTS PERFORMANCE EXCEPTIONS FEEDBACK DATA HARVESTING SEARCH ENGINES HOSTING Friday, July 24, 2009
  • 16. Launching Ruby on Rails Applications CLIENTS PERFORMANCE EXCEPTIONS FEEDBACK DATA HARVESTING SEARCH ENGINES HOSTING Have your cake and eat it too! Friday, July 24, 2009
  • 17. CHECK YOUR LIST Launching Ruby on Rails Applications Checklist Watch for it on my blog: http://robbyonrails.com Friday, July 24, 2009
  • 19. 1200+ respondents More information at http://rails-hosting.com Friday, July 24, 2009
  • 20. Before we begin... Friday, July 24, 2009
  • 21. Working on your first Rails project? Friday, July 24, 2009
  • 22. Have you launched at least one Rails app? Friday, July 24, 2009
  • 23. Have you launched at least one Rails app? 2-5 Rails apps? Friday, July 24, 2009
  • 24. Have you launched at least one Rails app? 2-5 Rails apps? more than 5? Friday, July 24, 2009
  • 25. SURVEY SAYS... Q. How many Ruby on Rails None applications 4% 1 10% have you 5+ deployed? 38% 1-5 47% Friday, July 24, 2009
  • 26. Don’t wait until the last minute! Friday, July 24, 2009
  • 27. lots of topics project management interaction design development hosting tracking errors visual design planning testing code user feedback public relations browser testing client management marketing quality assurance search engine optimization data harvesting teamwork brainstorming etc. Friday, July 24, 2009
  • 28. lots of topics project management interaction design development hosting tracking errors visual design planning testing code user feedback public relations browser testing client management marketing quality assurance search engine optimization data harvesting teamwork brainstorming etc. Friday, July 24, 2009
  • 29. Launching Ruby on Rails Applications Hosting Friday, July 24, 2009
  • 31. CHECK YOUR LIST Create reusable tasks to release new versions of the application. Friday, July 24, 2009
  • 32. SURVEY SAYS... Q. Do you use an automated deployment No tool? 23% Yes 77% Friday, July 24, 2009
  • 33. That means nearly one in four are still... Friday, July 24, 2009
  • 34. That means nearly one in four are still... Manually uploading source code via FTP or SFTP Friday, July 24, 2009
  • 35. That means nearly one in four are still... Manually uploading source code via FTP or SFTP SSHing into the server Friday, July 24, 2009
  • 36. That means nearly one in four are still... Manually uploading source code via FTP or SFTP SSHing into the server Manually running migrations Friday, July 24, 2009
  • 37. That means nearly one in four are still... Manually uploading source code via FTP or SFTP SSHing into the server Manually running migrations Manually restarting their application Friday, July 24, 2009
  • 38. That means nearly one in four are still... Manually uploading source Don’t Repeat Yourself! code via FTP or SFTP SSHing into the server Manually running migrations Manually restarting their application Friday, July 24, 2009
  • 39. Minimize Human Error Friday, July 24, 2009
  • 41. Make time to test deployments Friday, July 24, 2009
  • 42. Know how to ROLLBACK when necessary Friday, July 24, 2009
  • 43. Testing gives your team confidence! Friday, July 24, 2009
  • 44. Hire a specialist who knows their stuff Friday, July 24, 2009
  • 45. CHECK YOUR LIST Make sure your team knows how to test, deploy & rollback when necessary. Friday, July 24, 2009
  • 46. Setup a Staging Environment Friday, July 24, 2009
  • 47. Practice in your production environment Friday, July 24, 2009
  • 48. Brand new Rails App Sign contract Setup git repository Generate new Rails app Deploy to staging! Friday, July 24, 2009
  • 49. TIP FROM ROBBY Keep your application deployable at all times! (Not just releasable) Friday, July 24, 2009
  • 51. Staging site to the rescue! Friday, July 24, 2009
  • 52. Test the water... Friday, July 24, 2009
  • 53. ... before diving in! Friday, July 24, 2009
  • 54. Keep out the Peeping Toms Friday, July 24, 2009
  • 57. Test your scheduled tasks... in a real hosting environment Friday, July 24, 2009
  • 58. Create a deployment guide Friday, July 24, 2009
  • 59. TIP FROM ROBBY Put configuration files in Git Friday, July 24, 2009
  • 60. TIP FROM ROBBY Have a backup strategy! Friday, July 24, 2009
  • 61. CHECK YOUR LIST Set up a staging environment as soon as the project is started. Friday, July 24, 2009
  • 63. SURVEY SAYS... Q. Do you use monit or god for server side Monit monitoring? 26% No 57% God 13% Other 4% Friday, July 24, 2009
  • 64. Use Server Monitoring Tools for... Mongrel memcached backgroundDrb delayed_job Friday, July 24, 2009
  • 65. CHECK YOUR LIST Setup monit or god. Friday, July 24, 2009
  • 66. “Have you tried turning it off and on again?” Friday, July 24, 2009
  • 67. SURVEY SAYS... Q. Do you use any uptime monitoring Nagios tools in 18% production? Pingdom No 10% 60% Other 12% Friday, July 24, 2009
  • 68. Use Client Side Monitoring Tools do it yourself? Friday, July 24, 2009
  • 69. EXTRA CREDIT! Friday, July 24, 2009
  • 70. EXTRA CREDIT! Use Cucumber to test in production Friday, July 24, 2009
  • 71. Be cool & confident... use best practices !Automate your deployments !Setup a staging environment !Server-side monitoring !Client-side monitoring Friday, July 24, 2009
  • 72. Launching Ruby on Rails Applications Search Engines Friday, July 24, 2009
  • 73. <h1>Write Good Markup</h1> <ul> <li>Page Titles</li> <li>Permalinks</li> <li>Important Elements</li> </ul> <p>Hire a UI guru!</p> Friday, July 24, 2009
  • 74. Page titles are used in search results Friday, July 24, 2009
  • 75. URLs are part of the UI Permalinks? Friday, July 24, 2009
  • 76. Use markup to create structure Search bots like structure. Friday, July 24, 2009
  • 77. <h1>Get in Touch</h1>... <h2>Visit Us</h2>... Friday, July 24, 2009
  • 78. <img src=”studio.jpg” alt=”Planet Argon Studio” /> Friday, July 24, 2009
  • 79. <a href=”/who-we-are” title=”Who We Are”>...</a> Friday, July 24, 2009
  • 80. I see possible issues with AJAX and Javascript BOOM! Friday, July 24, 2009
  • 81. Search engines may not be able to access some content Friday, July 24, 2009
  • 83. Create an XML Sitemap Friday, July 24, 2009
  • 84. Automate the generation of your sitemap Friday, July 24, 2009
  • 85. Notify these guys when you have an updated sitemap Friday, July 24, 2009
  • 86. Sign up for... Google Webmaster Tools Friday, July 24, 2009
  • 87. Launching Ruby on Rails Applications Data Harvesting & Analytics Friday, July 24, 2009
  • 88. CHECK YOUR LIST Identify your Key Performance Indicators (KPIs) Friday, July 24, 2009
  • 89. What are some example KPIs? Friday, July 24, 2009
  • 90. Example KPIs • Page views (per day / per visit) Friday, July 24, 2009
  • 91. Example KPIs • Page views (per day / per visit) • Newsletter subscriptions Friday, July 24, 2009
  • 92. Example KPIs • Page views (per day / per visit) • Newsletter subscriptions • Successful orders Friday, July 24, 2009
  • 93. Example KPIs • Page views (per day / per visit) • Newsletter subscriptions • Successful orders • Abandoned shopping carts Friday, July 24, 2009
  • 94. Example KPIs • Page views (per day / per visit) • Newsletter subscriptions • Successful orders • Abandoned shopping carts • Homepage bounce rate Friday, July 24, 2009
  • 95. Collect & Segment Friday, July 24, 2009
  • 96. Sign up for Google Analytics and make sure your Clients have access Friday, July 24, 2009
  • 97. Setup your primary conversion goals Friday, July 24, 2009
  • 98. Usage testing not the same as Usability testing Friday, July 24, 2009
  • 99. CrazyEgg Heatmaps and usage patterns Crazyegg Friday, July 24, 2009
  • 100. Clicktale Screencasts of real visitors on your site Clicktale Friday, July 24, 2009
  • 101. Look for patterns Friday, July 24, 2009
  • 102. Get rid of the guesswork Friday, July 24, 2009
  • 103. Test your ideas Friday, July 24, 2009
  • 104. Launching Ruby on Rails Applications Data Feedback User Data Data Harvesting Friday, July 24, 2009
  • 105. Who is responsible for responding to feedback? Friday, July 24, 2009
  • 106. User Voice Customers vote on ideas Friday, July 24, 2009
  • 107. Tender Create a support center Friday, July 24, 2009
  • 108. zendesk Support tool for small companies Friday, July 24, 2009
  • 109. GetSatisfaction Make it easy for your users to send you feedback Friday, July 24, 2009
  • 110. Launching Ruby on Rails Applications Exceptions Friday, July 24, 2009
  • 111. SURVEY SAYS... Q. Do you catch and track Application Exceptions in production? No 31% Yes 69% Friday, July 24, 2009
  • 112. exception_notification http://github.com/rails/exception_notification/tree/master Friday, July 24, 2009
  • 116. Default 404 Default 500 Friday, July 24, 2009
  • 117. Helpful 404 Page Friday, July 24, 2009
  • 118. Helpful 500 Page Friday, July 24, 2009
  • 119. Launching Ruby on Rails Applications Performance Friday, July 24, 2009
  • 120. Page load is king Friday, July 24, 2009
  • 122. Google Page Speed Friday, July 24, 2009
  • 124. SURVEY SAYS... Q. Do you use any performance monitoring tools in production? Yes 36% No 64% Friday, July 24, 2009
  • 128. Is your source code efficient? Friday, July 24, 2009
  • 129. Are your database queries efficient? are the database queries efficient? Friday, July 24, 2009
  • 130. Are your database queries efficient? missing indexes? are the database queries efficient? Friday, July 24, 2009
  • 131. What are your slowest controller actions? Friday, July 24, 2009
  • 132. What are your slowest controller actions? negatively impacting our KPIs? Friday, July 24, 2009
  • 133. TIP FROM ROBBY Use data to drive your optimization efforts Friday, July 24, 2009
  • 135. Launching Ruby on Rails Applications Clients Holding their hands Friday, July 24, 2009
  • 136. Be a coach Friday, July 24, 2009
  • 137. TIP FROM ROBBY Make sure you are managing your client’s manage expectations expectations Friday, July 24, 2009
  • 138. Launch is the starting line Friday, July 24, 2009
  • 139. On-going maintenance is a necessity Friday, July 24, 2009
  • 140. Budget for a reliable hosting solution Friday, July 24, 2009
  • 141. Be ready on Launch Day Friday, July 24, 2009
  • 143. Share some champagne... Celebrate! Friday, July 24, 2009
  • 144. ...or Scotch. ;-) Friday, July 24, 2009
  • 145. Have a plan ready for the road ahead Friday, July 24, 2009
  • 146. Analyze your KPIs Keep up on user feedback Push out bug fixes early and often Friday, July 24, 2009
  • 147. Launching Ruby on Rails Applications Summary Let’s do a quick review Friday, July 24, 2009
  • 148. CHECK YOUR LIST Don’t postpone preparation until the end Friday, July 24, 2009
  • 149. CHECK YOUR LIST Keep your application deployable at all times Friday, July 24, 2009
  • 150. CHECK YOUR LIST Pace yourself Friday, July 24, 2009
  • 151. CHECK YOUR LIST Prepare for the unexpected Friday, July 24, 2009
  • 152. CHECK YOUR LIST Solve the right problems Friday, July 24, 2009
  • 153. CHECK YOUR LIST Have fun! Have Fun. Friday, July 24, 2009
  • 155. Where’s Robby? • blog: http://robbyonrails.com • company: http://planetargon.com • twitter: @robbyrussell • email: robby@planetargon.com Friday, July 24, 2009
  • 156. PLANET ARGON DESIGN // DEVELOPMENT // DEPLOYMENT More information at http://planetargon.com Friday, July 24, 2009