When it comes to managing VMs and applications on the public cloud, IT is pretty much at the mercy of whatever tool the cloud service provides. And here, Amazon has set a high bar for the competition.
Amazon Web Services' CloudFormation, released in February, provides a one-stop shop for creating and managing sets of AWS resources used by virtualized applications. Furthermore, these sets can be saved as application templates that describe all AWS resources, dependencies between them, and runtime parameters used by the application. Amazon calls this collection the "application stack." Like HP with Cloud Maps, Amazon has built a starter library of configurations for common applications like WordPress (blog), Drupal (content management), and Joomla (content management).
CloudFormation currently supports most AWS resources, including its EC2 virtual servers; storage from both elastic block store (EBS) and simple storage (S3); load balancers and IP addresses; relational database services; and queue services. For Java apps, Amazon's Elastic Beanstalk further simplifies the deployment process by automatically provisioning server capacity, load balancing, and resource-capacity scaling using the full panoply of AWS compute, storage, and network services; it figures out what the application needs by parsing the application archive file and monitoring its use.
Rackspace's recent acquisition of Cloudkick is a sign that it too sees the need for improved management tools, even though that product is largely a VM management and monitoring tool, not one for cloud application packaging.
Finally, make sure you keep an eye on a new class of cloud management services, such as those from ScaleXtreme and RightScale. While initially focused on cross-platform and cross-cloud virtual server management, these online services hold the promise of evolving into full-fledged application administration products.
ScaleXtreme already supports the ability to script application installations, such that a full LAMP stack can be deployed on its target environments, including AWS, Rackspace, and VMware.
Likewise, RightScale offers the ability to create application deployment templates that describe the configuration of and connections among multiple virtual servers.
These templates start with a base machine image that typically includes just the guest operating system; it's customized using a set of scripts, which can execute at boot or runtime. Scripts can be used to install or configure applications, network parameters, or storage volumes. With either product, since the scripts are independent of the base OS, applications can be patched and reconfigured without generating a new system image. That's where ScaleXtreme's Mulchandani gets his concept of dynamic VM assembly.
The difficulties faced by developers and systems admins in deploying apps to the cloud are reminiscent of those we encountered transitioning from mainframes to the client-server era. In that conversion, developers were dealing with two very different environments: the Wintel PC and the Unix workstation. Unix provided a standard hardware and software platform that enabled "write once, run anywhere" simplicity. Wintel PCs meant a hodgepodge of incompatible instruction sets, Unix variants, and memory byte orders--anyone else remember the big-endian, little-endian madness?
Madness is a fair description of today's virtualization and cloud landscape. Developers and IT have to address not only application and infrastructure requirements, but also how these are packaged for deployment on different platforms and services. There are plenty of vendors looking to address these problems, and many of their approaches are conceptually similar to those pioneered for mainframe-to-Unix application distribution decades ago. That's actually a good thing since it means the conceptual framework isn't new. We've solved similar problems and are largely just adapting well-worn concepts to the cloud era.
Still, given the diversity of efforts and cloud-based endpoints, we're not likely to have a clean, widely applicable fix soon. The best near-term strategy is to factor application deployment and management into your thinking when evaluating systems, hypervisor management software, and public cloud services, and investigate the growing array of cloud management point products.
Kurt Marko is a 15-year IT industry veteran.