PaaS on Software Defined Data Center = Elastic Cloud Vision
Platform-as-a-Service (PaaS) is rapidly garnering attention as a means for rapidly building and deploying scalable and elastic applications. However, there are still many misconceptions regarding what are the characteristics that comprise PaaS and, therefore, how is an application designed for a specific PaaS managed and operated in production. The viewpoint of a “magic container” layered on an elastic virtual machine platform in which you drop your application and expect that the infrastructure will provide all the non-functional requirements, such as scalability, high availability, disaster recovery, without the application needing any specialized knowledge of these features or participating in them seems like a recipe for disaster.
The platform is not just the application container and the software services it exposes to the application. Indeed, the platform comprises the infrastructure layer and needs to expose certain operational attributes to the application so that the application can respond accordingly. Moreover, as we move away from thinking deploying applications to deploying services, it becomes readily apparent that there needs to be a way to inform the infrastructure about certain operational requirements in order for us to deploy the service in an automated fashion.
When we layer PaaS on top of a Software Defined Data Center (SDDC), we gain a significant advantage in agility with regard to allowing the environment to conform to the needs of the service without the need for human intervention. The SDDC is a programmable means of manipulating and configuring a pool of resources—storage, compute, memory and bandwidth—to meet the needs of a particular service. For example, Software Defined Networking (SDN) allows users incredible power over the control plane within switches and routers facilitating the enablement of network services without requiring that they be bound to a particular network interface. Hence, the platform itself can now carry with it the complete recipe for deployment and operation regardless of the underlying physical topology.
This is huge! The service can now be provisioned to operate in any environment that supports SDDC interfaces without significant human intervention. Today’s PaaS environment represent scalability by the ability to increase the number of nodes or instances available based on demand, but the PaaS can only do so much when “land locked” by a particular hardware architecture or resource pool. By enabling the PaaS to control assets, such as the network, directly, we can migrate the service to resources better able to meet the current demand. Moreover, it can do so without requiring the service environment to change its identity, so that the service can continue to operate throughout the migration.
Imagine the ability for an application monitor to recognize that disk I/O is constraining application performance and automatically migrating the workload to a resource pool that uses different storage architectures, such as Solid State Disk (SSD) or even different disk alignment techniques that provide faster retrieval. Now, imagine that all of these resource pools are organized in a tiered fashion, such that the cost of moving between tiers is known and can incorporated into a Total Cost of Ownership (TCO) for running that particular service or workload at a particular demand level. The results are greater quality of service for the consumers of that application, better capacity management, built in justifications for capital expenditures and better understanding of the costs associated with operating a particular service at a particular demand level. In short, IT being delivered as a service capable of tuning based on acceptable tradeoffs decided by the business.
We are still quite a ways away from the vision proposed in the last paragraph, but it’s also not the type of vision that the enterprise can wake up one day and buy in a box. This vision will need to be developed over time and there are many skills that today’s IT organizations are going to need to acquire in order to make this vision a reality for their organization. For example, a simple first important step is to define the service catalogs and service tiers for various service offerings, such as storage, network, compute, messaging, etc. Users can also start to develop the business models that underlie chargeback/showback around currently deployed services as a means of starting to understand what it costs to operate the services using the current architectures.