“e Pluribus Unum,” which translates to “from many, one,” is a familiar phrase written on U.S. coins. For service providers planning cloud computing services, the motto and challenge is exactly the opposite: How can they produce many services out of one infrastructure, or “e Unum Pluribus”?
Most service providers have neither the option nor the desire to pick out a single model of cloud service and focus investment on it alone. Leveraging their infrastructure and operations to produce superior economies of scale is critical, and from a sales perspective, it will be easier to exploit the cloud quickly when enabling multiple cloud services rather than having only one.
Technically, cloud computing is a resource-pool strategy. A set of servers and storage devices located in one or more data centers form a pool of resources that are allocated to service customers on an as-needed basis. The larger the resource pool, the greater the efficiency and lower the unit cost of computing and storage. A lower cost base then permits network operators to offer computing and Storage as a Service at prices compelling to the buyer and at margins profitable to the seller.
The value of generality at the cloud service level is clear: More services equal more sales, which equal more resource-pool efficiency and higher profits. But the question is how to achieve the multiservice goal with a practical set of cloud computing tools.
Analyzing the components that enable multiple cloud services
The strongest starting point to answer the question of how to achieve multiple cloud services using one set of cloud computing tools is to consider how the cloud computing service in question—Infrastructure as a Service (Iaas), Platform as a Service (PaaS) or Software as a Service (SaaS)—would appear to a buyer and what the cloud resource interface needs to resemble. The goal of a universal infrastructure would be to offer all of those service appearances and interfaces at comparable efficiency and with full management capability. Where the requirements compromise the ability to use one infrastructure, operators need to weigh the cost and benefits of that offering. Here’s a closer look at the requirements of the three cloud services.
Infrastructure as a Service. IaaS services would logically appear to the buyer as a virtual machine host that is essentially an extension of the buyer’s own data center virtual resource pool. Running an application on a virtual host means creating a machine image that includes the application and its operating system software and middleware, and then loading it on the selected cloud server.
Since the application image and operating software is provided by the user, the cloud provider has limited options for managing the internal behavior of the application. The virtual machine host can be managed but not the machine image software. Still, this application is what made Amazon’s EC2 famous, and operators almost universally expect to support it. A virtualized set of servers and a director function are required to assign free virtual machines to the best available server resource.
Platform as a Service. PaaS services can be viewed as an IaaS framework that hasdefined one or more middleware “services” that are available to the applications within the cloud. Therefore, these applications are not included in the machine image provided by the user. The most common platform service is Database as a Service, followed closely by management services.
To the user, the value in consuming a platform service versus having a completely customer-provided machine image of the application is that the platform service is cloud-aware and can be managed and optimized for a cloud-hosted execution. Cloud databases are almost mandatory for applications that will involve data exchange among application components. Otherwise, these components would have to develop an internal mechanism for data sharing that could be relied upon to work efficiently within a cloud, where resource-to-application assignment is nearly invisible to the user. Cloud management tools, including tools to manage application performance, allow both users and the cloud provider to merge application performance issues with virtual machine resource performance, giving a better management picture.
As applications begin to consume platform services, the IaaS framework is likely to take on the appearance of a data center optimized for service-oriented architecture (SOA). The idea of the user providing a “machine image” is replaced by the idea of the user providing an application to catalog—an application that will be represented in an SOA directory (UDDI) and instantiated on demand, using the provider’s virtual machines. This represents PaaS services as effectively an SOA overlay on IaaS infrastructure, a model that seems explicitly adopted by Microsoft with Azure and by IBM with its Cloud Service Provider Platform.
Platform services are represented as SOA services and accessed as any internal software service would be accessed. This also facilitates the integration of PaaS cloud services with enterprise software; any SOA tool can provide the binding required.
Software as a Service. Moving up the stack to SaaS, we again find that the next level of cloud services can begin as an extension of the last. The SOA abstraction of a “service”can be applied both to application components and to entire applications. In the former case, a SaaS offering would be associated with a SOA-compatible interface (including Simple Object Access Protocol, SOAP), and could be registered as a service in a SOA directory for access as described with a PaaS cloud service. In this case, an enterprise might be consuming a cloud SaaS component within an application otherwise hosted in-house.
If the entire application were to be represented as a service, then the SaaS offering could be made through a traditional URL or RESTful interface and be accessed by a browser. This would be the type of SaaS service that well-known Salesforce.com provides. Operators could provide these types of services directly (using open source software, licensed software or software they develop), or they could offer wholesale PaaS or IaaS support to third parties that would then offer SaaS services.\
Building more complex cloud services on the components of the others
Cloud services at the higher levels, which include SaaS and PaaS, displace more user support and license costs and, therefore, justify higher prices. If operators can use the same infrastructure to offer these services as they use for the more general IaaS services, they can increase their profits and provide cloud services more easily integrated with enterprise IT. That can be particularly valuable in addressing the data center backup and application overflow opportunities that enterprises value most highly for cloudsourcing.