Majority of customers start with a pure Lift & Shift – moving VMs to Azure which is defined above as Cloud Infrastructure Ready. Almost any application out there is ready for this step. The biggest issue is that customers often think that this is how cloud migration looks like which is the worst and most expensive mistake in cloud adoption.
Cloud DevOps Ready steps are mainly focused on changes towards better automation, better overview of events and some VM replacements. It’s good place to automate deployment of resources in templates and start to think about CI/CD pipelines. Simplifying and defining infrastructure as code will bring easier changes processing without manual work hence better scalability. Further scalability can be achieved by going from VMs to containers which will either allow to share some underlying resources or use very modern approach such as Azure Container Instances.
Databases are usually most expensive, therefore moving towards platform offerings is in place or at least towards SQL Managed Instances if platform can’t be in a picture yet due to legacy compatibility issues.
The last step is to make everything fully Cloud Optimized – Full PaaS. Think about not reinventing a wheel but about how to replace certain integrations with serverless Azure Functions and Logic Apps. How to push as most parts of your application towards individual components so it would be easier to deploy it, troubleshoot it and more importantly – bill it based on execution, per second utilization and not paying for idle states. Pay only for what we use.
The entire topic is way more attention required than this short article, but it should give higher level overview where to start and what to look for. Feel free to reach out for help as well!