A blog entry adds more insight to Jeremy Wright’s Web 2.0 Companies Need to Scale. As an IT administrator, I worry about the availability of Internet applications that run on the servers that I maintain. Perfection is something that I strive for personally, and I continually think about robust methods that will bring the availability of Web applications closer to 100%.
Although it would be ideal to deploy a high availability configuration, the cost of providing HA might be greater than what can be afforded by small companies. The benefit for small companies is most likely less than what would be gained from larger companies. The move to increase availability should be made after some analyses in a similar fashion that other business decisions should be made. A minimal analysis includes the costs incurred by adopting the move, the costs resulting from outages due to delaying the move, and the amount of change in the expected downtime of a service after the move is committed. Deploying high availability is an investment like any other. The potential gains from these investments should be evaluated before an investment is made.
The idea of waiting to deploy HA until the cost of deployment is less than the loss resulting for service outages is acceptable, but I disagree with the suggestion to wait for high availability to become an issue before giving it consideration. Unless it is cheaper to reimplement an application, scalability is something that must be considered early in the software development process. Although a highly available infrastructure might not be available at the same time that an application is deployed, the application should be engineered for easy introduction into a high availability configuration. Availability is a concern for all successful Internet applications. Developers, with their highly optimistic nature, should plan on their applications becoming successful.