Monitor and Measure Everything

 
 
By Ezra Zygmuntowicz  |  Posted 2009-06-29 Print this article Print
 
 
 
 
 
 
 


No. 4: Monitor and measure everything

Monitor and measure everything and I do mean everything: servers, resource usage, behavior of applications, response times on pages-anything and everything relevant. As you are monitoring, collect as many metrics as you can. That way, if problems arise, you're armed with information, performance trends and context. This is where monitoring tools designed to spot performance problems really come in handy.

Without monitoring and logging, you lack visibility into the system. If a problem does arise and you don't have relevant metrics to fall back on, you are faced with investigating everything it could possibly be-sounds pretty inefficient, huh?

No. 5: Make your staging environment a faithful replica of your production environment

Many developers develop and test their applications locally and then jump the gun by deploying straight to production. They then face problems, because the actual production environment acts differently from their laptop.
 
The closer your staging and quality assurance environments are to your deployment environment, the better. The staging environment doesn't have to be as big, but it should at least be running the same versions of all the software. Ideally, tests should also be run with a copy of the production data set to mimic the conditions of deployment. The big benefit here is catching errors during staging before the application is pushed to production; it will save you time, energy and stress later on.

Ruby on Rails gets you to your endpoint faster and gives you time to think about how you can scale your application. But it won't do the job for you. By keeping these five points in mind, your application will scale while your management headaches shrink.

Ezra Zygmuntowicz is a co-founder and developer at Engine Yard. Ezra has been active in the Ruby community for over four years and has contributed to many open-source projects, including Rails, Merb, Rack and Rubinius. Ezra is also co-author of Deploying Rails Applications: A Step-by-Step Guide (published by The Pragmatic Programmers). He speaks at Ruby, Rails and cloud computing-related events throughout the United States. He can be reached at ez@engineyard.com.



 
 
 
 
Ezra Zygmuntowicz is a co-founder and developer at Engine Yard. Ezra has been active in the Ruby community for over four years and has contributed to many open-source projects, including Rails, Merb, Rack and Rubinius. Ezra is also co-author of Deploying Rails Applications: A Step-by-Step Guide (published by The Pragmatic Programmers). He speaks at Ruby, Rails and cloud computing-related events throughout the United States. He can be reached at ez@engineyard.com.
 
 
 
 
 
 
 

Submit a Comment

Loading Comments...
 
Manage your Newsletters: Login   Register My Newsletters























 
 
 
 
 
 
 
 
 
 
 
Rocket Fuel