AWS Global Infrastructure: If what Amazon is doing with AWS represents a Revolution, as I described in the previous section, how is the company bringing it about? In other words, how is it delivering this amazing service? Throughout this book, I go into the specifics of how the service operates, but for now, I Outline the general approach that Amazon has taken in building AWS.
First and foremost, Amazon has approached the job in a unique fashion, befitting a company that changed the face of retail. Amazon specializes in a low-margin approach to business, and it carries that perspective into AWS. Unlike almost every other player in the cloud computing market, Amazon has focused on creating a low-margin, highly efficient offering, and that offering starts with the way Amazon has built out its infrastructure.
Amazon’s Software Infrastructure Strategy
Because of Amazon’s low-margin, highly scaled requirements, you’d probably expect it to have a unique approach to the cloud computing software infrastructure running on top of its hardware environment, right? You’d be correct Amazon has created a unique, highly specialized software environment in order to provide its cloud computing services.
I stress the word unique because, at first glance, people often find AWS different and confusing – it is unlike any other computing environment they’ve previously encountered. After users understand how AWS operates, however, they generally find that its design makes sense and that it’s appropriate for what it delivers and, more important, for how people use the service.
Though Amazon has an unusual approach to its hardware environment, it’s in the software infrastructure is that its uniqueness truly stands out. Let me give you a quick overview of its features. The Software infrastructure is
Based on virtualization: Virtualization–a technology that abstracts software components from dependence on their underlying hardware– lies at the heart of AWS. Being able to create virtual machines, start them, terminate them, and restart them quickly makes the AWS service possible.
As you might expect, Amazon has approached virtualization in a unique fashion.
Naturally, it wanted a low-cost way to use virtualization, so it chose the open-source Xen Hypervisor as its software foundation. Then it made significant changes to the “vanilla” Xen product so that it could fulfill the requirements of AWS. The result is that Amazon leverages virtualization, but the virtualization solution it came up with is extended in ways that support vast scale and a plethora of services built stop it.
Operated as a service: I know what you’re going to say: “Of course it’s operated as a service–that’s why it’s called Amazon Web Services!” That’s true, but Amazon had to create a tremendous software infrastructure in order to be able to offer its computing capability as a service.
For example, Amazon had to create a way for users to operate their AWS resources from a distance and with no requirement for local hands-on interaction. And it had to segregate a user’s resources from everyone else’s resources in a way that ensures security because no one wants other users to be able to see, access, or change his resources. Amazon had to provide a set of interfaces–an Application Programming Interface (API)–to allow users to manage every aspect of AWS.
Designed for flexibility: Amazon designed AWS to address users like itself users that need rich computing services available at a moment’s notice to support their application needs and constantly changing business conditions.
In other words, just as Amazon can’t predict what its computing requirements will be in a year or two, neither can the market for which Amazon built AWS.In that situation, it makes sense to implement a few constraints on the service.
Consequently, rather than offer a tightly integrated set of services that provides only a few ways to use them, Amazon provides a highly granular set of services that can be “mixed and matched” by the user to create an application that meets its exact needs.
By designing the service in a highly flexible fashion, Amazon enables its customers to be creative, thereby supporting innovation. Throughout the book, I’ll offer examples of some of the interesting things companies are doing with AWS. Not only are the computing services themselves highly flexible, but the conditions of use of AWS are also flexible as well. You need nothing more to get started than an e-mail address and a credit card.
Highly resilient: If you took the message from earlier in the chapter about the inherent unreliability of hardware to heart, you now recognize that there is no way to implement resiliency via hardware. The obvious alternative is with software, and that is the path Amazon has chosen. Amazon makes AWS highly resilient by implementing resource redundancy essentially using multiple copies of a resource to ensure that failure of a single resource does not cause the service to fail.
For example, if you were to store just one copy of each of your objects within its S3 service, that object may sometimes be unavailable because the disk drive on which it resides has broken down. Instead, AWS keeps multiple copies of an object, ensuring that even if one or two! -objects become unavailable because of hardware failure, users can still access the object, thereby improving S3 reliability and durability.
In summary, Amazon has implemented a rich software infrastructure to allow users access to large quantities of computing resources at rock- bottom prices.