Most people think of cloud migration as a lift-and-shift operation simply moving applications that are running in a company’s data center into the cloud, but real cloud success requires much more than lift-and-shift.
By my experience here are the five levels of cloud maturity:
1 Experimenting: What is the cloud?
This first step is the tentative step into the cloud relies on safe technologies, it can be apply in simple ways to applications and parts of applications that are typically less mission critical. The level 1 involves using the cloud for a single, simple piece of an application to test how cloud services work. Often, the first service used is a storage solution because it’s easy to store some things in the cloud or it can involve some cognitive services, for example computer vision or speech recognition to address new business scenarios. This level usually starts as a one-off experiment, where one or more teams conduct stand-alone tests. No cloud policies are created at this point to monitor the experiements from pricing and operations point of view.
2 Securing the cloud: Can we trust the cloud?
In this steps a Company starting to think to the policies on how the cloud can be used within Company. The precise nature of these guidelines, from formal policies to ad-hoc “company culture” understandings, don’t matter that much. What’s important is that the entire company is involved and all stakeholders have input. This is also where application visibility and monitoring strategies should be conceived. The goal is to answer such questions as:
- How do we monitor basic applications as they move to the cloud?
- How do we manage the applications as they move to the cloud?
- How do we monitor the applications pricing as they move to the cloud?
Companies that don’t get past this point most likely won’t be fully successful in the cloud
At this stage of cloud maturity comes when an organization begins to replace on-premise servers and other backend resources. These are still simple lift-and-shift applications but the Company starts to understand how the cloud works from an entire application standpoint. Oftentimes an organization will take the same virtual machines it was running on-premises and lift and shift them to the cloud. The target environment is typically a public cloud provider such as Amazon AWS, Microsoft Azure, or Google Cloud.
This is the point at which the organization begins to enjoy actual advantages as lowered costs, increased flexibility, etc. from using the cloud. The monitoring and pricing strategies become a central component in making sure an application migration is successful.
4 Refactored Apps with PaaS
At this stage the organization realizes that some of its lifted-and-shifted applications are good from pricing and flexible point of view but it understand too that if you have database on VM in the cloud you still have to manage that database. AWS, Microsoft Azure and Google offers managed databases, so the organizations can take advantage of managed services in the cloud. To do that it needs to refactor its apps. The main cloud providers generally include application platform-as-a-service (PaaS) technologies or cloud native services. The typical PaaS technologies include Pivotal Cloud Foundry, Red Hat OpenShift, AWS Elastic Beanstalk, Azure PaaS, and Google App Engine. In a traditional data center apps environment, the IT organization is responsible for deploying, managing, and scaling the application code. By comparison, these modern platforms automate tasks and abstract out a lot of complexities; applications become elastic, dynamically consuming computing resources to meet varying workloads. The modern approach frees the IT organization from maintaining something that has no intellectual property benefit to its business, allowing it to focus on business problems as opposed to infrastructure issues.
At this stage is where organizations begin to see signs of the cloud’s true potential. This is also where companies can dabble in container technology, and start to run apps in modern architectures. Refactored apps are often the same code from monolithic apps, only broken down into more manageable components. These smaller components can now scale automatically using PaaS but their code was not originally architected for truly modular, stateless deployments that would make them linearly scalable.
5 Cloud becomes a practice
New applications default to running in the cloud, the organization due to its leadership realizes that their target IT end state will be a cloud-based delivery of IT services be those applications or servers or storage or application stacks for developers. Cloud native ways of developing applications become the de facto standard. Cloud native applications need to be architected, designed, developed, packaged, delivered, and managed based on a deep understanding of the frameworks of cloud computing.
My raccomandation for the cloud journey:
Drive the business case with economics and business value realization models in mind.
Consider a range of hybrid cloud architectures keeping the above maturity levels in mind.
Multi-cloud management is a challenge cloud admins will need to deal with and something management needs to account for in the entire business case: economics, value realization, headcount planning, chargeback etc.
Leveraging successful blueprints and patterns around industry adoption, how leaders in your industry using the cloud for specific use cases