Cloud is a technology that is already part of most IT environments today, which means that migrating a distributed environment or application to a cloud environment isn’t like turning it off and moving it to cloud. We need to consider some issues from an application point of view. Let me go over some of these key points that you need to think about when migrating to cloud.
When we speak about cloud, we usually reference the application as a workload. Depending on the type of workload, the migration effort will be lower or higher than others.
Workloads for development and testing, collaboration and web services will require less work since cloud technologies are in a more mature status. On the other hand, workloads that are highly customized or require extensive manual intervention may be more difficult to move. So the key is to identify which of the workloads it is most beneficial (lower pain and higher gain) to migrate to cloud.
Luis Aguilar Mateo in his blog post gives a good explanation about workload migration to cloud.
What should we consider when analyzing a workload? I would say the following:
- Standardization—the application must be deployed in a standard way using standard images since this reduces the effort for development.
- Hardcoded dependencies—the application must avoid having hardcoded configurations, since this may inhibit or complicate cloud adoption as it will require specific reconfigurations or prerequisites.
- Maintainability—the application must be deployed in a way that is easy to maintain. Fixes or patches at the OS and application levels must be deployed without requiring manual intervention.
- Manageability—the application must be easy to manage from an operation and administrative point of view.
Another good point when you’re deciding about the benefits of migrating an application to cloud is to consider developing a brand new application instead. Greg Sherman in this video gives a good explanation about the two options.
Finally, keep in mind that this isn’t simply migrating an application to cloud but also leveraging the application’s capabilities such as elasticity, multitenancy and broad network access. Being able to get the most out of cloud capabilities can increase the application’s benefits.
Do you have any experience migrating applications to cloud? Leave a comment below.