5 Key Things to Know Before Migrating Applications to the Cloud
We all know that migrating applications to the cloud doesn’t happen overnight. There’s a lot of planning to develop a strategy that will result in successful execution. Here are five things to know before migrating applications to the cloud. Neglecting to consider any of them can have a negative impact on your overall cloud migration planning and execution.
1. Know Your Options
You have multiple options for migrating applications to the cloud-and each method has its pros and cons. These 5 different options for migrating your applications are often called the 5 Rs of Migration. They are:
- Rehost: Rehosting your applications involves deploying them in a different hardware environment and changing the infrastructure. Since this option doesn’t require you to change the architecture, it’s a fast way to migrate-but you may miss out on cloud benefits such as scalability.
- Refactor: Refactoring means running your applications on a cloud provider’s infrastructure. This method allows you to reuse resources you have already invested in, but it also brings disadvantages such as missing capabilities, increased risk, and framework lock-in.
- Revise: Revising your applications involves modifying or extending your code base for your workload. While this option allows you to get the most out of a cloud provider’s infrastructure, you’ll also face potentially significant IT costs to develop a new code base. In many cases, this option is the most time-consuming.
- Rebuild: Rebuilding your application is what happens when you discard code for an existing application and re-build a new one. The biggest advantage of rebuilding an application is that you’re able to access new features that can improve productivity, but you also face the disadvantage of vendor lock-in.
- Replace: Replacing your workflows involves discarding existing applications or sets of applications altogether and using commercial software delivered as a service instead. The biggest advantage is that it helps you avoid IT development costs but it also results in inconsistent data semantics, data access issues, and vendor lock-in.
2. Predict How Your Applications Will Perform in the Cloud
Unfortunately, too many companies skip this step-and many others rely on their best guess or an inaccurate approximation based on incomplete data. To understand how your applications will perform in the cloud, you need to know their current performance profile and how that translates into the performance of the application’s compute and storage resources on a given instance.
This step is actually quite hard to do (which is why many companies struggle here) without a combination of performance, usage, and predictive analytics. For instance, at Cloudamize, we help customers analyze their current performance profile and, based on that analysis, project the performance of each workload’s compute and storage resources on any given instance in multiple "what if" scenarios. Only by beginning with this performance analysis can you experience the best migration for your applications.
Companies migrating to the cloud without these analytics can spend 48% more on their annual cloud costs as a result of moving to an instance that is not optimal and many times over-provisioned.
3. Know How Much Your Applications Will Cost in the Cloud
Prior to migration, it's essential to know how much your application will cost to run in the cloud. This will ensure you don’t go over your migration budget and that your financial planning is accurate. The cloud options you take advantage of (such as autoscaling or reserved instance pricing) can reduce the costs associated with each workload, and conducting a thorough analysis before you migrate is the only way to understand your costs ahead of time. Significantly, calculating your costs in advance can also help you identify workloads that would actually cost more (such as some legacy enterprise hardware) in the cloud than if they remained on premises. Determining the cost of an application in the cloud requires the same steps and analysis as calculating the overall TCO of a cloud deployment.
4. Identify Dependencies
Successful application migration planning and execution requires a detailed understanding of how all of your applications and servers are communicating. To map application dependencies, you first need to discover all machines and applications in your infrastructure. Many companies conduct this discovery using their CMDB. This, however, is not the best method since it’s not only very time-consuming, but it’s also rarely kept up-to-date. And if you miss applications and machines, you’ll miss dependencies. Not to mention your CMDB will likely not include Shadow IT. If your applications are talking to hidden machines, they must be incorporated into your migration plan. Typically, companies have 15% or more Shadow IT and without identifying these, you’ll not only have breakage issues, but also security issues.
Discovery and dependency mapping cannot be completed 100% accurately without automation tools. Automation tools that leverage agents can see all commands and web server requests, allowing them to automatically identify every application in your infrastructure. Agents collect detailed application dependencies, including the other applications and servers each application is communicating to, how often they communicate, and whether the communication is bi-directional or unidirectional. This guides your migration process, including which applications you will decide to migrate and the best order in which to move and pilot them.
Without identifying all of your applications and their dependencies, you will inevitably group applications incorrectly, which will triple migration cycles, increase the number of applications that break during migration, and compound de-bugging issues once in the cloud. The data that agents provide significantly reduce migration time by avoiding massive trial and error.
5. Understand Firewall Rules
Understand the firewall rules for each application in order to configure your security groups in the cloud. Firewall rules let you know which applications are talking on which ports and which ports you need to open for inbound/outbound application connectivity to work. You also need a detailed understanding of TCP and UDP ports so you can build firewall rules for subnets.
Migrating your applications to the cloud is inevitably complex. Some applications will be able to migrate as-is while others will need to be rebuilt. Some will be able to take advantage of cost-saving features such as autoscaling while others will be more cost-effective to keep on-premises. Dependent applications that you miss can cause your entire migration to stop in the event of an application connection break. Fortunately, you can simplify the process of migration (and reduce the likelihood of encountering issues) with the right analysis and considerations.