Migrating Your Applications to the Cloud: Best Practices and Considerations
“Managing physical server and network infrastructure got to be too complex, and when you’re trying to aggregate data across multiple servers, it gets even more complex,” said Geotab’s Mike Branch in this case study.
The complexity associated with on-premise infrastructure is just one of the many reasons businesses migrate their applications to the cloud. After all, the cloud delivers flexibility and scalability that can be difficult to match in-house when faced with a limited budget and already strained in-house skills. For many, potential cost savings are a primary driver.
But as with all things cloud, there is a right way of doing things and a way that’ll likely end up costing you more time and money (at the very least). While the migration of applications to the cloud is often unique to the application and the on-premise environment in which it runs, there are a few best-practice tips to keep in mind when migration is on the cards.
Assess Your Application Portfolio
An application portfolio contains all the applications within an organisation. It should also contain information about the business value and purpose of the application, technical details such as resource usage and dependencies, as well as relationships with other applications and systems.
With an application portfolio as a starting point, it’s necessary to create a complete picture of your organisation’s application landscape within the context of a migration to the cloud. This includes identifying stakeholders and application owners along with their requirements.
Another way of building your organisation’s application portfolio is by using automated discovery tools. These are software applications that scan your on-premise infrastructure to identify applications and associated relevant information such as dependencies, configurations, and utilisation. Automated discovery tooling is best used to complement an existing application portfolio.
Once you have a complete list of all your applications, they can be prioritised. How you prioritise these applications will depend on your organisation’s requirements, but should include metrics like business value, migration difficulty, dependencies, risks, and costs.
Choose the Right Cloud Platform
Choosing the right cloud platform requires a fair amount of research since the key objective is to find a service provider that meets your needs without breaking the bank. But, with that said, you may not be limited to a single service provider.
Hybrid cloud deployments have become popular in recent years for the simple fact that it allows organisations to create an ‘ideal’ cloud infrastructure where the features of a hosting provider are matched with the requirements of an application. You may, for example, decide that you want to host your website on an inexpensive public cloud server at host A, but run your database and backup systems from within a private cloud at host B.
Whatever cloud deployment model you choose, there are a few key points to keep in mind when choosing a cloud platform for your applications:
Pricing: Pricing should be calculated based on resource requirements from your application portfolio. Compute requirements, storage, and bandwidth are the usual variables that should be taken into account. If a host offers different payment models, each of these should be weighed against what your budget allows.
Features and services: Migrating applications to the cloud requires a closer inspection of the technical features offered by a service provider since you’re moving to the cloud with a working application and existing data sets. Compatibility is therefore a key requirement. Here, too, a well-crafted application portfolio will be of use since it will tell you what to look for in terms of functionality, performance, scalability, and reliability.
Security: “Security is more important than ever” is by now a trite cliche, but it remains true. It is for this reason that most hosts nowadays offer very secure cloud infrastructure. The challenge is finding the right fit in terms of encryption, auditing, authorisation, authentication, compliance, and other non-standard security features for your applications and data.
Support: Given that you’ll likely be running business-critical applications in the cloud, you need something a bit more solid than “always-on” support. It’s important to look for SLA-bound guarantees, dedicated account management and support teams, documentation, tutorials, forums, blogs, and other resources that can be of assistance when you run into challenges.
Choose a Cloud Migration Strategy
A cloud migration strategy helps keep things organised. It defines how you’ll move your applications and data to the cloud, and can help cut costs and ensure overall efficiency. Of course, the more complicated your application landscape, the more complex your migration strategy.
Complex migration strategies often require a nuanced approach, and can include various steps:
Define your goals: Naturally, the ultimate goal is to migrate your applications to the cloud. But in a complex environment, it is necessary to ensure that your objectives are realised. This can be done with key performance indicators (KPIs) to measure migration outcomes.
Choose a migration strategy: Not all your applications are created equal, which means a one-size-fits-all migration may not work. The “six R’s” as they are commonly known refer to various types of migration strategies. The idea is to match an application with one of the migration strategies. Some applications may involve more than one migration strategy.
Rehosting (lift-and-shift): In very simple terms, this means copying your application to your new host without making any changes.
Replatforming (lift-tinker-and-shift): Similar to Rehosting above, except that a few minor tweaks are made to the application to improve some aspects of the application in its new cloud environment.
Repurchase (drop-and-shop): When you opt for repurchasing, you’re essentially discarding your on-premise application and investing in a cloud-based alternative. The plus of the drop-and-shop method is that application maintenance is usually someone else’s responsibility. The downside is often the migration and / or integration of existing datasets in the new application.
Refactoring (re-architecting): Or simply ‘recreating’. With refactoring an application is redeveloped from the ground up for compatibility with a cloud environment. This can be a time-consuming process, but it often delivers better results since applications can be built to support specific objectives and future growth.
Retiring: As the name suggests, applications that are no longer needed are retired. You’re essentially trimming the excess from your application portfolio which can reduce migration costs and complexity.
Retaining: Not all applications need to run in the cloud. Retaining is a term used for an application that will continue running on-prem due to a technical, legal, or business reason.
Perform Thorough Testing
You may have all your i‘s dotted and your t’s crossed. But will your applications perform as expected in the cloud? There’s only one surefire way to find out: test them.
Among the first steps of an application’s cloud-readiness testing is an assessment of the application’s architecture and dependencies, as well as its performance, security, and compliance requirements.
When these criteria are met, testing can begin to assess common issues such as data loss, compatibility issues, potential vulnerabilities, and performance degradation. If necessary, use tools to automate testing and reporting.
It’ll also be worthwhile to compare the user experience of the application in the cloud versus the application hosted on-premises. Users are the most valuable application testers, so feel free to include them wherever possible in the testing process.
Monitor your migrated applications
Your applications are in the cloud, and everything’s running smoothly. But now’s not the time to rest on your laurels. On the contrary, setting up monitoring protocols will go a long way to help identify potential issues, and also to justify the move to the cloud. Common metrics to keep an eye on include:
Resource utilisation: CPU, memory, disk, network, and bandwidth – how are they utilised compared to on-premise usage? If your application portfolio was detailed enough, you should be able to easily compare results between the two. The result can be compared against performance goals and user experience metrics.
Application performance: Given the resource usage above, how are your applications performing? Many organisations will take metrics like response time, error rate, availability, and latency into consideration when assessing application performance. The result of your analysis can reveal service quality and SLA compliance – are service providers living up to their promises?
Security and compliance: Vulnerability scans, compliance reports, audit trails, and access logs are important to protect data and ensure regulatory compliance. They also offer diagnostic value that can reveal potential security issues. Finding a host that carries most of this weight can make the job of your internal teams a lot easier.
Business goals: Importantly, how are the applications performing against expected business goals? Are users satisfied with the performance of your applications? Are you getting the conversions you expected while maintaining anticipated retention levels?
Develop a Disaster Recovery Plan
The cloud is known as a zero-point-of-failure solution. But that only refers to the hardware running your applications. Disaster recovery must be an essential part of your move to the cloud and can not only provide protection against data loss during the migration but also protect against the unforeseen well after all your applications have been migrated to the cloud.
Disaster recovery is a broad topic, but at the very least you should define the RTO (Recovery Time Objective) and RPO (Recovery Point Objective) for each application. Bonus points if this is included in your hosting SLA, but chances are your host will likely only offer broad values rather than application-specific RTOs and RPOs.
Depending on your organisation’s infrastructure, it could also be useful to keep certain on-premises services online to act as an automatic failover in the event of cloud application failures. This can help minimise data loss and disruptions.
While those few pointers barely scratch the surface of a comprehensive disaster recovery plan, they should emphasise that the plan itself and the mechanisms to carry it out should be in place and tested before the actual migration begins.
Application migration is a big step
It can also be an expensive and highly complex step, which is why partnering with a managed services provider can significantly lighten the burden on your teams and your budget. At Storm, we work directly with our clients through the entire process to ensure the smooth migration of their applications to the cloud. Once applications have been migrated, we can monitor the performance of each individual application, and provide disaster-proof disaster recovery solutions that’ll keep you up and running.
Contact us today to discuss your application migration.
Speak with a Storm Expert
Please leave us your details and we'll be in touch shortly
A Trusted Partner