Cloud application management is itself a delightfully imprecise term, applying to anything that deploys and manages...
things in the cloud. Add this inherent imprecision to the fact that cloud users, planners and architects are coming at it from many different directions with varying CAM tools, and you have the formula for anarchy. A good cloud planner needs to understand the three diverse dimensions of CAM:
- How different CAM approaches are converging,
- What they’re converging on and
- How to align a business’s cloud plans with the right CAM toolkit.
The primary challenge in CAM is that companies have approached the cloud in different ways, prioritizing different issues. These have created different visions of CAM. While the differences may seem subtle, they’re significant enough to derail a cloud project if the wrong approach and tools are selected.
The most enduring cloud model is that of a hybrid cloud, which augments and extends enterprise IT, and perhaps even enterprise clouds. Because the focus of this model is the core business applications, CAM has to support the application lifecycle management (ALM) practices already in place. Its tools would likely evolve from the starting point of ALM. ALM tools focus on development, deployment and redeployment. The primary ALM processes deal with applications, not platforms. Deployment, which is the phase where CAM comes into play, is often handled in ALM by plugins, or modules that manage the specific platform options, including the cloud.
The top ALM toolkits come from major vendors such as HP, IBM, Microsoft and Oracle. Open-source tools like Tuleap also provide the five critical ALM elements: ALM workflow structuring, software quality management, testing, deployment management and performance monitoring. All of the major packages will also allow you to deploy to the cloud via a set of CAM APIs, but just what cloud options are supported and how flexible the mechanism for change may be can vary significantly. By starting your consideration of CAM tools with a review of ALM plans, you can determine whether ALM tool commitments or ALM needs will dictate CAM options down the line.
Taking a DevOps-centric approach
DevOps tools have exploded in popularity as virtualization and private cloud technology has evolved. If the company’s cloud interest manifests in a transition from virtualization to the private cloud, then CAM may help make DevOps tools work for the cloud.
A DevOps-centric approach to CAM is focused on deployment itself. There are a host of commercial and open-source DevOps tools, including the most famous open-source products, Chef, Puppet, and Juju. All of these can be adapted to deploy components in the cloud. Users report that it may still be necessary to repackage application components for different cloud stacks though, and this introduces an application version-control issue that isn’t addressed by DevOps itself. Adding versioning and repository software tools to DevOps can fix this problem, but it creeps in the direction of a complete ALM solution without all the benefits. And remember that some ALM tools, particularly open-source products, will rely on DevOps for the deployment phase.
Finally, for companies building a pure public cloud strategy, including software companies that host their software on IaaS and sell it as SaaS, CAM may develop from the cloud management APIs offered by cloud providers. These companies’ interest in CAM lies in how it might support portability among cloud providers. It could also support a gradual "in-housing" of applications that were started in the cloud and kept there until a critical mass of activity was reached.
For many cloud users -- or prospective cloud users -- the problem with an ALM-driven approach is that it tends to be development-centric, which means that companies deploying packaged software find many of the steps marginally useful, at best. Even DevOps tools that have been designed to support the development-to-operations evolution of applications may be hard for some cloud-centric businesses to adopt, unless their software providers offer the DevOps frameworks for their applications as part of the software release. Arguably, this is where CAM and Cloud Application Management Platform tools come in.
The focus of pure CAM is to package application components for deployment in the cloud. At the top end, this can include building the machine images and configuration files. At the bottom, it can be exercising of cloud platform management APIs. So far, CAM tools fit the model of Amazon’s AWS Management Portal for vCenter, which extends Amazon’s public cloud management services to support deployment of machine images into a VMware virtualization environment.
As of yet, there is no clear convergence on an approach to CAM. In fact, the international standards group OASIS has a project to define a management protocol -- Cloud Application Management for Platforms (CAMP), from which the acronym for the space emerged -- that could create a single path to deployment for all public and private clouds, when and if it’s fully adopted.
For more on CAM, check out A RESTFUL approach to cloud app management