Virtualization Meets SaaS by Mark Stone
Previous: Software as a Service
We have a problem in the first place about under-utilization of computers because we use them unevenly. My work computer spends a lot of time using desktop applications between 9 and 5, but is otherwise idle. My home computer spends a lot of time accessing FaceBook and other social media sites between 6 and 10, but is idle between 9 and 5. Businesses and organizations face their own versions of this problem. The heaviest day of use for the IRS website is April 15th. The busiest time of year for the UPS website is from Thanksgiving to Christmas. The Dominoe's Pizza website has a big spike on Superbowl Sunday.
As an organization, if you own all the computers needed to handle these workloads, you have a problem. You can size your computer purchase for the average workload, and then be hopelessly swamped during peak demand. Or you can size your computer purchase for the peak demand, and have most of your computers idle most of the time. Neither of these is an attractive solution.
One of the first large companies to feel the acute pain of this dilemma was Amazon. As a major retailer, Amazon sees a steep rise in business leading up to Christmas, and smaller spikes in business around other significant gift-giving holidays like Valentine's Day or Graduation Day. The Amazon site is also complex and computing resource intensive. They have a large inventory database to maintain, 100s of thousands of customer accounts to maintain, complex search queries to run, and financial transactions that must be handled promptly and securely. All of this has to be coupled to a physical packing and delivery system. So adding more computers to handle more computing work is, in the conventional sense, no easy task given the scale and complexity of the Amazon workload.
What Amazon and the rest of us could benefit from is the ability to add or remove computing power on demand. This is precisely what virtualization offers, and is especially well suited for large SaaS systems like Amazon's.
Amazon began tackling these problems in the early 2000s, and today runs all of their SaaS infrastructure off of a completely virtualized computing platform. Even virtualization doesn't solve one fundamental problem, however: Amazon still has to have enough total computing horse power, virtualized or not, for peak demand. And so much of the time much of that computing power is idle.
To address this problem, Amazon developed something now known as Amazon Web Services. The reasoning goes something like this: other business besides Amazon's have a similar need to deliver online services, and would, if they could afford it, build something similar to the SaaS platform that Amazon has created. They might not need all of it, but whether its data storage, inventory search, online credit card transactions and shopping carts, or some other Amazon tool, many other companies have similar needs. Since Amazon has already paid the sunk cost for an enormous computing system with a lot of network bandwidth, why not lease customized instances of those tools to other businesses that need them?
This approach benefits Amazon by enabling them to make money leasing otherwise idle computing power. This approach benefits other businesses by enabling them to piggy-back on the Amazon infrastructure for substantially less than it would cost them to re-create that infrastructure themselves.
Given that many organizations have the elastic demand problem that Amazon has, and given that not all organizations have peak demand for the same services at the same time, one of the most intriguing aspects of Amazon's AWS is the Elastic Compute Cloud, or EC2. With EC2, anyone can sign up and lease a number of virtual computer instances from Amazon, and run their applications on this virtual environment. When usage increases, more instances can be added on demand, and when usage drops, unused instances can be released. The "tenant" pays only for what they use, as they use it.
Next: Welcome to the Cloud