Organisations must address people, process, and technology in order to be successful when adopting the cloud. To identify a companies current adoption stage, we recommend conducting a cloud maturity assessment. A cloud maturity assessment exercise will cover the people, process, and technology aspects to design a plan to advance the entire organisation up the maturity model as quickly as possible reducing risk and uncertainty.
As you plan your migration strategy, there are a few key scenarios that you will want to bear in mind. Unless you have unlimited time, resources, and money, it is likely that you will have to consider implementing one or more of the following options.
Your approach depends on your company’s size, application landscape and inventory. If you’re a small to medium sized business with only a few applications, then choosing one option may suit you best. If you are a large enterprise corporation with 1000’s of web applications, then you will most likely have to come up with an approach to each one of these that makes the most sense for each type of web application. It could be a lack of source files, documentation, or supportability, in this case many of your legacy applications would benefit from Lift and Shift or a pure container migration approach. It might also be helpful to consider having a multi-faceted strategy like the following.
Why consider the IaaS option? The main reason to migrate to the cloud, even at an initial IaaS level, is to achieve cost reductions. By using more managed infrastructure services, your organisation can lower its investment in hardware maintenance, server or VM provisioning and deployment, and infrastructure management. After you make the decision to move your apps to the cloud, the main reason why you might choose IaaS instead of more advanced options like PaaS is simply that the IaaS environment will be more familiar. Moving to an environment that’s similar to your current, on-premises environment offers a lower learning curve, which makes it the quickest path to the cloud.
However, taking the quickest path to the cloud doesn’t mean that you will gain the most benefit from having your applications running in the cloud. Any organisation will gain the most significant benefits from a cloud migration at the Cloud-Optimised and Cloud-Native maturity levels. Try to keep in mind that correctly configuring, securing, and maintaining VMs requires much more time and IT expertise compared to using PaaS services in Azure. If you are considering Azure Virtual Machines, make sure that you take into account the ongoing maintenance effort required to patch, update, and manage your Azure IaaS VM environment.
What is Cloud Optimized? A Cloud-Optimized application is an approach to building and managing applications that takes advantage of the cloud computing model, while using a combination of containers, Azure App services, managed cloud infrastructure, resilient application techniques, monitoring, continuous delivery, and DevOps, all without the need to re-architect and recode your existing applications. Your organisation can adopt these technologies and approaches gradually. You don’t have to embrace all of them, all at once. You can adopt them incrementally, depending on enterprise priorities and user needs.
Cloud-Native is a more advanced or mature state for large and mission-critical applications. Cloud-Native applications usually require architecture and design that are created from scratch instead of by modernising existing applications. The key difference between a Cloud-Native application and a Cloud-Optimised web app is the recommendation to use microservices architectures in a cloud-native approach.
What is a Microservice? The microservices architecture is becoming the preferred approach for distributed and large or complex applications that are based on multiple, independent subsystems in the form of autonomous services. In a microservices-based architecture, an application is built as a collection of services that can be independently developed, tested, versioned, deployed, and scaled.
Only specific scenarios and certain application types are suitable for microservice-based applications because of the complexity of a microservices architecture. These include large and complex applications that have multiple, evolving subsystems. In these cases, it’s worth investing in a more complex software architecture, for increased long-term agility and more efficient application maintenance. But for less complex scenarios, it might be better to continue with a monolithic application approach or simpler N-Tier approaches.
Learn how to fully assess your current maturity readiness at our upcoming webinar.