|By Pradeep Prabhu||
|December 16, 2013 09:30 AM EST||
Agility means being able to change direction rapidly in response to a change in market conditions. As business increasingly moves to online and mobile interfaces, the agility of enterprise applications becomes a critical success factor. With the advent of the cloud, making applications agile means moving them away from the on-premise data center. Cloud-based applications are not automatically agile, however. The "lift and shift" approach to porting applications from on-premise data centers to cloud infrastructure can actually impede agility.
To make cloud-based applications agile, there has to be a commitment to platforms, tools, processes and people. Enterprise applications were created to serve business needs. As a result, business managers tend define agility in the following terms: How quickly one can get feedback from the end customer or customer-facing systems; how quickly one can decipher the feedback; how quickly one can decide what to do about it and implement the plan. To make this work, IT managers are moving applications to the cloud.
Barriers to cloud application agility include incompatible platforms, image management and a lack of automation. Various Platform-as-a-Service (PaaS) and Infrastructure-as-a-Service (IaaS) platforms have different specifications regarding VMs that they host. It is usually impossible to move a VM image from an on-premise server to an IaaS instance without modification. If development activities persist on-premise while deployment to IaaS requires continual updating of VM images, the process will slow down and agility will suffer.
There is no magic bullet that will make cloud applications more agile. Rather, levels of maturity in different disciplines will affect an organization's ability to make agile moves with cloud-based applications. One approach is to view cloud application agility along two basic axes: DevOps, which is the merging of software development and IT operations, and cloud management.
The goal of DevOps is to combine automation with collaboration, orchestration and management. Cloud management complements DevOps in making cloud applications agile. Infrastructure managers should ideally be able to migrate applications quickly and easily between on-premise instances and multiple cloud IaaS providers. Application deployments and updates need to be continuous, a capability that is rooted in both cloud management and DevOps. The DevOps process can provide continuous delivery of code, but the cloud platform - whatever it is - needs to be configured and tooled to enable continuous updating.
If you were to build an index of the cloud application, it would measure the sophistication of each of the six agility factors. A possible index might look like the one shown in the figure. For each agility factor, an organization will be at a given level of sophistication. For instance, for DevOps orchestration and management, a company might be at "0," with a completely manual orchestration process. However, that same company might have build and test automation, putting it at a higher level in that category. The index is a tool that IT managers and developers can use to assess the agility of their cloud applications and plan for steps that will increase their agility.