Amazon’s Web Services (AWS) is not the only way to build scalable Cloud Infrastructures. There are two emerging methodologies for constructing Infrastructure-as-a-Service (IaaS) AKA “Cloud Infrastructure Services”. The first is what we call “cloudcenters”, which are essentially datacenters in the sky. The second is what we call an “Infrastructure Web Service”. GoGrid was one of the pioneers for cloudcenters, while AWS largely created the second model.
Understanding IaaS means looking closely at these two approaches. Clearly the notion of cloudcenters embodied by AWS competitors such as ourselves, FlexiScale, ElasticHosts, AppNexus, and others is important. My colleague, Michael Sheehan, will go into more depth on how we think this distinction modifies his earlier Cloud Pyramid (right) in a follow-on blog posting to this one.
Infrastructure Cloud Models
Understanding these two approaches is important because it directly affects your selection of a Cloud Infrastructure provider. These two models highlight a difference in core infrastructure and in target markets. Cloudcenters provide a direct equivalent to traditional datacenters and hence are usually more desirable for IT staff, systems operators, and other datacenter savvy folks. Infrastructure Web Services on the other hand are more analogous to Service-Oriented-Architectures (SOA), require significant programming skills, and are much more comfortable for software developers.
Infrastructure Web Services
I’m going to assume for this article that you are somewhat familiar with Amazon Web Services (AWS), but I’ll briefly re-cap. AWS provides a number of different ‘Web Services’ that can be consumed individually or put together to support different kinds of applications, usually a batch processing or web application of some kind. These services include:
- Object-based file storage via Simple Storage Service (S3)
- Servers on demand via Elastic Compute Cloud (EC2)
- Block storage on demand via Elastic Block Storage (a part of EC2)
- Distributed database functionality via SimpleDB (SDB)
- Content distribution and edge-caching via CloudFront
- Messaging & queuing via Simple Queuing Service (SQS)
- Payment processing via Flexible Payment Services (FPS)
- Billing & re-packaging of the above services via Amazon Dev Pay
This is a robust ecosystem of services from which you can use any or all in order to build your application, getting the traditional benefits of Cloud Computing such as self-service, pay-as-you-go, and massive scalability.
Unfortunately, every service above is based on an Amazon standard, not an industry standard. S3 is not accessible via CIFS or NFS. EC2 provides Xen hosting, but image management and storage is completely custom. SQS does not use any standard queuing or messaging protocols such as JMS or STOMP. SimpleDB now has an ‘SQL-like’ interface, but is essentially a 100% ground up creation of Amazon.
A major advantage of using the Amazon approach however is that greenfield applications developed from scratch have a very powerful set of vetted, scalable services, that can be used to build that application. This means avoiding the intrinsic and extrinsic costs associated with deploying a separate queuing or database system.
The alternative, of course, is to use the same tools, paradigms and standards that you deploy in an industry standard Enterprise datacenter today.
What’s a Cloudcenter?
Cloudcenters are that solution. They provide the same kinds of tools that all datacenter and server operators are already accustomed to, but with all the traditional advantages of cloud (i.e. self-service, pay-as-you-go, and scalability). Instead of creating completely new paradigms, cloudcenters are a methodology by which you, the customer, can have a virtual datacenter hosted ‘in the sky’. Each virtual datacenter, a ‘grid’ in GoGrid terminology, is hosted in isolation from other customers, in a cloudcenter as shown in the diagram below:
Your grid is akin to a traditional datacenter whereby you have all of the regular components you expect such as hardware firewalls, hardware load balancers, network storage (NAS or SAN ), virtualized servers, dedicated networks (VLANs), and the option for physical servers for workloads that should not be virtualized.
Logically, a grid looks like:
As you can see, this looks very much like a traditional datacenter infrastructure.
Traditional Datacenters and The Cloud
Just briefly I want to highlight what is in a ‘traditional’ datacenter. These are all built in the same way. The following diagram highlights the typical components in a datacenter and their relative dependencies on each other. (This diagram isn’t perfect, it’s simply meant as a talking point.)
Cloud Infrastructure providers are in the business of providing you the equivalent functionality in the cloud using their scale for cost-effective service delivery. They must also package this functionality to provide you a high level of control as it’s no longer your datacenter. Control comes through a user interface (GUI), programming hooks (API), transparency (SAS70 audits), and performance and reliability guarantees (SLAs).
Cloudcenters focus on making your Cloud Infrastructure look very much like infrastructure you already have or are already familiar with, while Infrastructure Web Services ask you to embrace a new paradigm.
Besides the obvious advantage of ‘looking like’ your current datacenter, cloudcenters allow for strategies like using the Cloud for off-site disaster recovery. It will be much easier to model a copy of your current datacenter to a cloudcenter than it would be to model a copy onto a Infrastructure Web Service. There are many other advantages to the cloudcenter approach such as:
- Servers meant to be reliable not ‘unreliable-by-design’ on commodity hardware
- Cloudbridging will be much easier between dedicated VLANs on each side using IPSEC VPNs
- Cloudcenters will look more and more like each other over time, while there will probably never be another AWS
- Datacenter software tools will ‘just work’ with datacenter & cloudcenter standards
- User Interface for controlling the entire datacenter including firewalls and loadbalancers, not just servers
- Let your cloudcenter provide core infrastructure services like DNS, DHCP, NTP, and image management
Ultimately it’s great that there is so much choice when selecting a Cloud Infrastructure provider. Both Amazon and GoGrid provide compelling solutions. We believe that GoGrid, the very first public cloudcenter, is the Cloud of choice for sysadmins, operators, and Enterprise IT staff who need infrastructure that looks just their current datacenter infrastructure.
In the future we’ll blog in much more detail contrasting and comparing these two approaches to building Cloud Infrastructure services.
- To be released in 1Q09 [↩]
- Scheduled for 2009 [↩]
- The ability to transparently connect you internal datacenter to your external virtual datacenter or cloudcenter [↩]
- Imagine VMware VirtualCenter++ [↩]