As the fog slowly lifts with respect to defining cloud computing, enterprises must now decide where the value proposition lies within the platform. For most large enterprises, the IT department typically offers services internally to various departments. These services are mostly at the infrastructure level such as maintaining existing servers or provisioning new servers. Some enterprises allow developers to build out their own platform while more organized enterprises keep tight control over the platform, only allowing developers to work within a tightly pre-defined environment. While this is definitely the preferable way to reign in developers, it still isn't the most optimal way to develop in house applications.
Deploying a platform as a service to developers, who in turn develop software to be deployed as a service to internal departments, is the best way for a large enterprise to leverage cloud computing. This takes two levels within the cloud computing pyramid and uses one to bolster and deliver the second. The IT department will ultimately be responsible for the three layers beneath platform as a service, but more robust management tools are making that easier as time goes along. Ultimately, automation and orchestration will become the panacea for IT services delivery within the enterprise.
Automation will allow for the infrastructure to scale up and down dynamically without system administrators having to manage the process. This is true elasticity within the enterprise. The next level, orchestration and life cycle management, is the magic dust that makes this whole technology worth its weight in gold.
Imagine taking the workload manager within an application and making it aware of the cloud it resides in. It now knows that there are more resources available within the cloud, and that these resources can be tapped on demand via additional virtual instances. As a major workload hits the application, the work queue starts to back up. The workload manager sees this and begins to spin off another virtual instance down at the virtual infrastructure level. This instance comes on line, and half of the workload is now routed to that instance. Now another surge of work hits the work queue and again the queue begins to back up. The process repeats, and another virtual instance is spun up and comes online. Now the workload manager can route work to three instances.
This process happens several more times, and now we have ten virtual instances with the workload manager load balancing across all instances. As time goes on, the workload begins to reduce and one instance is no longer needed. The workload manager signals the virtual infrastructure level of this and one instance is destroyed. THe workload decreases some more, and now another instance is no longer needed. Once again, it is destroyed at the indication of the workload manager. This process continues several more times until just one instance remains.
The elastic nature of the cloud allows for the rapid creation and destruction of virtual instances. The software which has been developed to run on this platform is intelligent enough to analyze workload and direct the underlying virtual infrastructure. The ability to rapidly provision and destroy identical virtual instances is automation. The ability to make this automation happen dynamically based on workload is orchestration. So where does the true value lie in cloud computing?
That is a heavily loaded question because there is value in almost every aspect of cloud computing, depending on the size and complexity of your enterprise. If I had to pick one thing, however, and say that it provides the true value for large enterprises, I would say that it is orchestration. Orchestration truly makes applications dynamically elastic.
So what should you take away from this article?
I would say that as the various virtualization and cloud vendors jockey to out do one another with frivolous features, you and your IT staff take a close look at automation, orchestration and life cycle management capabilities in their respective products. Ensure that your developers can hook into a solid API that allows for true orchestration. The process should also be fairly invisible to the developers. They should not have to understand deeply technical concepts for them to spawn and kill virtual instances as the application needs them.
Ideally the platform should also be fairly robust when it comes to provisioning hardware. Once you have established a solid architecture with templates for the virtual instances and baselines for all hardware in the cloud, addition of physical nodes should not me much more complicated than racking and cabling the hardware. The hardware should then be able to PXE boot itself, authenticate, and start auto provisioning itself into the cloud. The idea is less hands on management and more intelligent automation.