Amazon and Cloud Computing
Analysis: Amazon, as an online retailer, may seem like an unlikely company to get into cloud computing, a sector that's attracting the likes of IBM, Oracle, Google and others. However, Amazon saw a way of taking an internal technology and making it available to everyone. This is a look at Amazon's EC2 platform and what it means to developers.In the past couple of years, we've been hearing the term "cloud computing" a great deal. However, from my experience working with people across various industries, many are still unsure what exactly the term means.
Recently, Amazon entered the space with its own version of cloud computing. In this article, I'll show exactly what Amazon is up to.
But First: Why Amazon?
Amazon isn't the most likely company to get into the cloud computing business. It would seem that would be left to vendors such as IBM and Oracle.
Here's how Amazon fell into this world. When a person visits the Amazon Web site and is logged in, he'll see a storefront that has been customized for him. These recommendations aren't somehow stored in cookies and figured out by the user's browser; they are determined on the fly completely by the Amazon servers.
For a Web developer, figuring out such recommendations would be easy: When the user logs in, the latest purchases are looked up and a database query for similar items is done and they are shown on the page. Except there's a huge problem: Can you realistically do such calculations from a few lines of code for millions of users simultaneously without taking minutes or hours?
Most Web servers, while certainly powerful, simply aren't equipped for this kind of power. As such, the engineers at Amazon were forced to come up with some new ways of handling so many database transactions and software calculations so quickly. Their solution was to use a form of distributed computing where there are multiple computers, each devoted to simple tasks, all communicating and working together.
As a software developer, many times I've been in a situation where I've had to explain to people that while lots of people can crank out some code, doing it right often requires teams of people, possibly even an entire company. That's why, for example, you'll find highly specialized software companies providing software to a very specific industry. Why can't businesses just build their own software? They're not in the business of doing so. Realistically, the most cost-efficient solution is often to just buy the software from a company dedicated to building such software.
There are exceptions to this rule. Sometimes the software a company needs simply doesn't exist. Look at Amazon. Its primary business is selling books and, more recently, department store items. But to keep up with the sheer size of its customer base, Amazon needed both hardware and software that could handle its operations. Unfortunately, in Amazon's earliest days, such systems simply didn't exist. Amazon engineers had no choice but to build it themselves.
They were forced to build a massive, distributed system that could handle its retail operation. When it was finished, they realized that they had something big on their hands that could potentially be used by many other people. The result was AWS (Amazon Web Services), launched in 2002.