Migrating to the Cloud
One of the most revolutionary trends in the IT industry in recent years is migrating to cloud-based services. With the advancements of cloud service providers, it’s’ never been safer to migrate your company’s processes and on-premise workloads to the cloud.
While the migration process is easy, it’s not necessarily straightforward. This is why moving to the cloud must be a strategic decision. With careful planning, training, backup, benchmarking, and pre-defined expectations of performance and service levels, the cloud migration process is best completed in phases.
While migrating our legacy Proarc enterprise application to the cloud, Gartner’s migration strategies helped us define our approach for migration.
- Rehost
- Retire
- Rearchitect
- Rebuild
- Replace
Important considerations for Cloud Migration
Cloud migration goals depend on each company’s business priorities. However, we consider that the following basic principles are critical for any company looking to migrate its applications to the cloud.
- Security – It is important to remember that implementing security aspects of your application is your company’s responsibility and not the responsibility of your cloud provider. This means, adopting to industry standards and choosing the right platform tools is vital. There are many such tools, including Open-ID Connect, Virtual Networks, and WAF etc., which can be adopted while your feature teams focus on delivering product features. For example, for Identity Management to adopt Open-ID Connect standards and aggregate, all service under a single endpoint must use a Gateway. Having a Gateway helps in managing security at a single point.
- Reliability – Uninterrupted availability of our service to customers must be one of our primary goals. Any service that is available for the cloud should have the reliability criteria met. Each service at a basic level should have support for redundancy and be fault-tolerant. There should never be a situation where you have a single point of failure for any of the application services.
- Performance & Scalability – Cloud services should dynamically scale based on the usage limits and thresholds set. With dynamic scaling, all the product’s features should be intact & transparent to the end-users. For example, caching and messaging architecture should be able to scale and fit into the scalability expectations.
- Operations – Cloud migration doesn’t stop just by making the product “cloud compatible”. One of your core goals should be to have a fully automated cloud management and operation service. It should take care of efficient product deployment, monitoring & alert systems, and automated backup & recovery in case of disaster.
- Cost-Effective – Being cost-conscious is one of the most challenging aspects of cloud migration. There is a tendency to undervalue the expenses incurred by the entire process. With this in mind, make sure to consider the costs of migrating workloads as well as the tools and services involved in the transition.
Once we have the architectural aspects ready, the team should be equipped enough to start the product migration and build its cloud operations.
The first step is to decide on the cloud provider. The strategy can be
- Single Cloud Provider
- Multi-Cloud provider
- Hybrid Cloud
Finding a cloud provider strategy is purely a business decision based on various factors, which we will save for another insight.
Five stages of implementation to support “The 5 R’s of Cloud Migration”
Once the strategy is planned and the teams are clear on the roadmap, it’s time to start implementing the migration with the support of the Five R’s.
Implementation stages can be classified into the following five stage:
- Gap Analysis – As the first step, find the architectural and design gaps to meet your cloud goals. You can lift the legacy application as it is using IaaS and start identifying the missing application features and other gaps to meet your goals.
- Experimentations – The identified gap analysis list needs to be prioritized and evaluated to estimate the work. Our advice is to do quick and dirty spikes to learn & fail fast. Get quick feedback to better estimate the efforts and discuss the outcome with the stakeholders.
- Migration – Once the experiments are done for the basic needs and you have the estimates for the actual deliveries, your team can start to churn the code. The number of changes required might be huge and the team should have the necessary safety net to validate the code changes and get the feedback as fast as possible. Some of the best practices are to have fully automated tests (mostly integration and necessary unit tests) and fully automated CI/CD to get immediate feedback on the code changes.
- Transformation – During the cloud transformation, consider adopting more azure services than simple lift and shift. Simple lift and shifts could be more expensive than on-premise approaches, even in a shorter time horizon of 3-5 years. Easily adopted Azure services are:
- Azure AD & B2C – Authentication & supporting collaborating organization on a single authentication service.
- Azure SQL – Data storage.\
- Azure Storage – Cloud file storage solution.
- Azure Application Insights – Analytics, Application Logging, Monitoring & alerts.
- Azure Relay – Seamless connection between cloud & on-premises services.
- Optimizing – Don’t wait for everything to be perfect before releasing your first version. Release it as soon as the basic criteria of cloud migrations are met. This helps us understand the platform better. Optimizing and improvement should never stop, irrespective of the stage you are in.
These five stages of implementation will help you in your Plan-Do-Check-Act process in the cloud journey.
Concluding note:
Migrating applications to the cloud is always a strategic business decision and requires proper understanding of the cloud ecosystem. Cloud providers continue introducing new features and cost models keep changing. Your cloud migration strategy depends on the state at which the Application to be hosted is in and the business that it caters to. To leverage the benefits given by the chosen cloud provider, experimentation and applications to be hosted are vital throughout the cloud journey.
Author: Prakash Somasundaram
As a Lead Software Architect in Proarc R&D, Prakash has been instrumental in modernizing and migrating Proarc to cloud.