Launching Ruby on Rails projects: A checklist - Presentation Transcript
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
A collection of best practices and lessons learned for launching your next Rails application.
Details
The big product launch is approaching for your shiny new application and you’re scrambling to fix last minute bugs and work out the kinks. Deep down, you have this suspicious feeling that you’re forgetting something important. Whether it’s your first or your twentieth time that you’ve launched an application, it’s almost guaranteed that there are things that will get overlooked.
In this talk, Robby Russell, a partner and the Chief Evangelist at Planet Argon will walk the audience through his team’s Project Launch checklist, which has evolved through several years of designing, developing, and deploying web applications. Robby will share his experiences and outline a collection of best practices such as; keeping your project releasable at all times, managing staging and production environments, bootstrapping your application for SEO and analytics/conversion tracking, preparing for the unexpected, and most importantly… making sure your clients are ready for the bumpy ride.
Robby’s goal is to share from the hard lessons that his team has experienced over the years and provide you with some ideas to walk away with you. As you’ll learn, it’s never too early to start preparing an application for the big launch.
This topic will be presented by Robby Russell less
1 comments
Comments 1 - 1 of 1 previous next Post a comment