Launching Ruby on Rails projects: A checklist

Post on 19-Oct-2014

27023 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Summary 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

Transcript

Launching Ruby on Rails ApplicationsA CHECKLIST

Friday, July 24, 2009

Launching Ruby on Rails ApplicationsA CHECKLIST

Thanks Mark!

Friday, July 24, 2009

Launching Ruby on Rails ApplicationsA CHECKLIST

Friday, July 24, 2009

Launching Ruby on Rails ApplicationsA CHECKLIST

Friday, July 24, 2009

Launching Ruby on Rails ApplicationsA CHECKLIST

Friday, July 24, 2009

Launching Ruby on Rails ApplicationsA CHECKLIST

From our teamat Planet Argon, direct to you

Friday, July 24, 2009

Launching Ruby on Rails ApplicationsA CHECKLIST

Launching Ruby on Rails Applications

Best Practicesfor prepping your launch pad

Friday, July 24, 2009

Launching Ruby on Rails ApplicationsLaunching Ruby on Rails Applications

Friday, July 24, 2009

HOSTING

Launching Ruby on Rails ApplicationsLaunching Ruby on Rails Applications

Friday, July 24, 2009

HOSTING

SEARCH ENGINES

Launching Ruby on Rails ApplicationsLaunching Ruby on Rails Applications

Friday, July 24, 2009

HOSTING

SEARCH ENGINES

DATA HARVESTING

Launching Ruby on Rails ApplicationsLaunching Ruby on Rails Applications

Friday, July 24, 2009

HOSTING

SEARCH ENGINES

DATA HARVESTING

FEEDBACK

Launching Ruby on Rails ApplicationsLaunching Ruby on Rails Applications

Friday, July 24, 2009

HOSTING

SEARCH ENGINES

DATA HARVESTING

FEEDBACK

EXCEPTIONS

Launching Ruby on Rails ApplicationsLaunching Ruby on Rails Applications

Friday, July 24, 2009

HOSTING

SEARCH ENGINES

DATA HARVESTING

FEEDBACK

EXCEPTIONS

PERFORMANCE

Launching Ruby on Rails ApplicationsLaunching Ruby on Rails Applications

Friday, July 24, 2009

HOSTING

SEARCH ENGINES

DATA HARVESTING

FEEDBACK

EXCEPTIONS

PERFORMANCE

CLIENTS

Launching Ruby on Rails ApplicationsLaunching Ruby on Rails Applications

Friday, July 24, 2009

HOSTING

SEARCH ENGINES

DATA HARVESTING

FEEDBACK

EXCEPTIONS

PERFORMANCE

CLIENTS

Have your cake and eat it too!

Launching Ruby on Rails ApplicationsLaunching Ruby on Rails Applications

Friday, July 24, 2009

Launching Ruby on Rails Applications

Checklist

CHECKYOUR LIST

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

How many Ruby on Rails applications have you deployed?

SURVEY SAYS...

5+38%

1-5 47%

110%

None4%

Q.

Friday, July 24, 2009

Don’t wait until the last minute!

Friday, July 24, 2009

lots of topics

hosting

data harvesting

marketing

visual design

development

project managementinteraction design

quality assurance

client management

tracking errors

user feedbackpublic relations

teamwork

browser testing

testing code

search engine optimization

planning

brainstormingetc.

Friday, July 24, 2009

lots of topics

hosting

data harvesting

marketing

visual design

development

project managementinteraction design

quality assurance

client management

tracking errors

user feedbackpublic relations

teamwork

browser testing

testing code

search engine optimization

planning

brainstormingetc.

Friday, July 24, 2009

Launching Ruby on Rails ApplicationsHosting

Friday, July 24, 2009

Automate DeploymentsFriday, July 24, 2009

CHECKYOUR LIST

Create reusable tasks to release

new versions of the application.

Friday, July 24, 2009

Do you use an automated deployment tool?

SURVEY SAYS...

No23%

Yes77%

Q.

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

Manually uploading source code via FTP or SFTP

SSHing into the server

That means nearly one in four are still...

Friday, July 24, 2009

Manually uploading source code via FTP or SFTP

SSHing into the server

Manually running migrations

That means nearly one in four are still...

Friday, July 24, 2009

Manually uploading source code via FTP or SFTP

SSHing into the server

Manually running migrations

Manually restarting their application

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

SSHing into the server

Manually running migrations

Manually restarting their application

Don’t Repeat Yourself!

Friday, July 24, 2009

Minimize Human Error

Friday, July 24, 2009

Knowledgeable Team

Friday, July 24, 2009

Make time to test deploymentsFriday, 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

CHECKYOUR LIST

Make sure your team knows how to test,

deploy & rollback when necessary.

Friday, July 24, 2009

Setup a Staging EnvironmentFriday, July 24, 2009

Practicein your production environment

Friday, July 24, 2009

Brand new Rails App

Deploy to staging!

Sign contractSetup git repositoryGenerate new Rails app

Friday, July 24, 2009

TIPFROMROBBY

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 TomsFriday, 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 guideFriday, July 24, 2009

TIPFROMROBBY

Put configuration files in Git

Friday, July 24, 2009

TIPFROMROBBY

Have a backup strategy!

Friday, July 24, 2009

CHECKYOUR LIST

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

Friday, July 24, 2009

Monitoring Your AppFriday, July 24, 2009

Do you use monit or god for server side monitoring?

SURVEY SAYS...

No57%

Other4%

God13%

Monit26%

Q.

Friday, July 24, 2009

Mongrel

memcached

backgroundDrb

Use Server Monitoring Tools for...

delayed_job

Friday, July 24, 2009

CHECKYOUR LIST

Setup monit or god.

Friday, July 24, 2009

“Have you tried turning it off and on again?”

Friday, July 24, 2009

Do you use any uptime monitoring tools in production?

SURVEY SAYS...

No60%

Other12%

Pingdom10%

Nagios18%

Q.

Friday, July 24, 2009

Use Client Side Monitoring Tools

do it yourself?

Friday, July 24, 2009

EXTRACREDIT!

Friday, July 24, 2009

Use Cucumber to test in production

EXTRACREDIT!

Friday, July 24, 2009

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

Be cool & confident... use best practices

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

Permalinks?

URLs are part of the UI

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

Google Webmaster Tools

Sign up for...

Friday, July 24, 2009

Launching Ruby on Rails Applications

Data Harvesting & Analytics

Friday, July 24, 2009

CHECKYOUR 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 Analyticsand make sure your Clients have access

Friday, July 24, 2009

Setup your primary conversion goals

Friday, July 24, 2009

Usage testingnot the same as Usability testing

Friday, July 24, 2009

Crazyegg

CrazyEggHeatmaps and usage patterns

Friday, July 24, 2009

Clicktale

ClicktaleScreencasts of real visitors on your site

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

Data Harvesting

DataDataLaunching Ruby on Rails Applications

User Feedback

Friday, July 24, 2009

Who is responsible for responding to

feedback?

Friday, July 24, 2009

User VoiceCustomers vote on ideas

Friday, July 24, 2009

TenderCreate a support center

Friday, July 24, 2009

zendeskSupport tool for small companies

Friday, July 24, 2009

GetSatisfactionMake it easy for your users to send you feedback

Friday, July 24, 2009

Launching Ruby on Rails Applications

Exceptions

Friday, July 24, 2009

Do you catch and track Application Exceptions in production?

SURVEY SAYS...

No31%

Yes69%

Q.

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

500Friday, 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

Do you use any performance monitoring tools in production?

SURVEY SAYS...

No64%

Yes36%

Q.

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 the database queries efficient?

Are your database queries efficient?

Friday, July 24, 2009

are the database queries efficient?

Are your database queries efficient?missing indexes?

Friday, July 24, 2009

What are your slowest controller actions?

Friday, July 24, 2009

negatively impacting our KPIs?

What are your slowest controller actions?

Friday, July 24, 2009

TIPFROMROBBY

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 coachFriday, July 24, 2009

manage expectations

TIPFROMROBBY

Make sure you are managing your client’s

expectations

Friday, July 24, 2009

Launch is the starting lineFriday, 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

Celebrate!

Share some champagne...

Friday, July 24, 2009

...or Scotch. ;-)Friday, July 24, 2009

Have a plan ready forthe road ahead

Friday, July 24, 2009

Analyze your KPIsKeep up on user feedbackPush 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

CHECKYOUR LIST

Don’t postpone preparation until

the end

Friday, July 24, 2009

CHECKYOUR LIST

Keep your application

deployable at all times

Friday, July 24, 2009

CHECKYOUR LIST

Pace yourself

Friday, July 24, 2009

CHECKYOUR LIST

Prepare for the unexpected

Friday, July 24, 2009

CHECKYOUR LIST

Solve the right problems

Friday, July 24, 2009

Have Fun.

CHECKYOUR LIST

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 ARGONDESIGN // DEVELOPMENT // DEPLOYMENT

More information at http://planetargon.com

Friday, July 24, 2009

top related