Application migration to the cloud: Selecting the right apps
Migrating applications to the cloud depends on many parameters. This tip helps you prioritize and carry out application migration correctly and effectively.
An efficient cloud will only sustain its value if your applications can share and scale in an elastic and reliable manner. It’s essential to employ a staggered approach and prioritize applications to be moved to the cloud to reduce the risks associated with cloud application migration. It is necessary to understand the general parameters to consider for application migration when you desire to move to the cloud. This tip will help you better understand the various factors to assess for effective application migration.
1) Identify the type of application
It is essential to recognize the type of application chosen for migration. If the application is mission critical, then it should have the lowest priority for cloud migration because of the uncertainty of the new infrastructure.
Check if there are any legal requirements of co-location of applications and data in a particular place. In case your cloud encompasses multiple geographical locations, you may have to consider legal stipulations as well as capabilities of the selected cloud platform, before application migration.
2) Consider usage patterns
Usage patterns in terms of predictability, unpredictability and consistency should be considered. This will help identify the amount of hardware volatility needed during application migration to the cloud.
A predictable peak is exemplified by most financial applications, which invariably have a specified period during which they perform a bulk of their processing. On the other hand, in the retail sector for instance, promotions or sale cycles may or may not deliver as expected, resulting in unpredictable peaks. Then again, human resource management applications usually have fairly consistent usage. Each application category should thus be measured in terms of usage patterns, to determine hardware and infrastructure requirements prior to application migration.
For instance, if the usage pattern is unpredictable with peak loads causing SLA misses (for example, in retail), such an application should have a higher priority to be moved to the cloud. This will ensure that your organization is would be equipped to handle SLA misses.
3) Determine if the application needs internal or external user support
Applications that have external users will have lower priority of migration to the cloud than those with internal users. External user support implies exposing the private cloud over the demilitarized zone (DMZ) and to the outside world as well. In such a situation, additional security measures are required in the private cloud.
4) Consider the application architecture and design
Check whether the application architecture and design promote parallelism of operations. Make sure that applications have multithreaded execution capabilities, wherein they can be divided into smaller tasks and jobs such that each of them can run independently on their own on definite sets of machines. This will help application migration and efficient utilization of the private cloud.
Distribution of tasks will ensure easy division of the application across multiple virtual machines (VMs) on your private cloud after application migration. This helps achieve higher scalability and performance and guarantees reliability of applications at the request level.
5) Determine whether the application is SOA based
An SOA-based application has several benefits that make it fit for cloud application migration. Service oriented architecture will generally lean toward having a clearly defined interface and clearly defined encapsulated functionalities, which will be easy to transfer to the private cloud.
6) Evaluate the application’s statefulness
It is important to ascertain whether the application keeps a lot of information stored within it during its operation. For example, if a request is made and temporary data is stored within the application, any failure in the hardware or in the cloud network would mean that the request is lost.
Therefore, it might be preferable to move stateful applications to a more persistent type of storage, wherein the state can be externalized and stored. On the other hand, stateless applications are more suitable for application migration to the cloud.
7) Check if the application depends on third-party software/components
Consider the latency and bandwidth constraints in communicating with components/services that cannot be migrated to the cloud, before application migration. If the application is dependent on third-party software, there could be issues with licensing, as policies might be different. There may also be compatibility issues that need to be checked before application migration to the cloud.
About the author: Yusuf Rangwala is a technical architect with Syntel’s cloud labs. He has extensive experience in architecting enterprise applications on the Microsoft .Net platform. As part of the Syntel cloud consulting team, Rangwala provides consulting on migration to Windows Azure and BPOS platforms.
(As told to Mitchelle R Jansen.)