Cloud migration isn’t easy. Most enterprises are burdened with a lot of legacy and technical debt. Think of transitioning to the cloud as moving to a new home with a king-size bed and a grand piano in tow—not to mention deeply entrenched technology that needs extracting, like a jacuzzi or TV frame mounted in the wall.
With app migration. You need to figure out how to move all those belongings and make sure they fit
Similar questions can apply to technology when you select a cloud provider. Answering those questions requires an application-centric strategy to maximise what the cloud offers. Simply acquiring resources from a cloud provider is far from realising the promise of full application migration to the cloud. Enterprises must first undergo a digital transformation where they modernise their applications and application services.
Evolution of application deployment
To create an application-centric cloud migration strategy, we must first understand the evolution of app deployment methods from bare metal environments, to virtualisation, to containers. The moving analogy applies.
- Bare metal - These deployments are deeply embedded in an infrastructure and difficult to move. Think of the jacuzzi tub – great to have but locked in place. Bare metal application deployments cannot migrate to the cloud without a significant modernisation effort.
- Virtual machines - These run on servers. They’re movable with some effort. They symbolise items like a bed and piano. Virtualisation solves the inflexibility of bare metal environments by breaking up individual servers into many smaller virtual machines. This helps to improve efficiency, delivering more value from the infrastructure on which VMs run.
Currently, virtual machines are the primary deployment method for cloud-based environments. Data centre-based virtualised application migration to cloud can be achieved with a modest modernisation effort.
- Containers - These are the lightest and most portable of deployments. They are the boxes you can carry by hand to your new home. Containers were developed to take the resource distribution offered by virtualisation to the next level. Rather than creating endless unique copies of an operating system, multiple containers can be run under a single OS. Each container is designed to run a application or microservice and already carries the necessary parts of the application and its dependencies.
This lightweight approach means far more container-based apps can run on a single machine than would be possible with virtualisation. Yet this vast capacity comes with increased complexity.
Evolution of application architectures
Beyond deployment, the applications themselves have also changed over time. At first, most applications were architected as monolithic entities. Then service oriented architecture (SOA) was developed. Today, many organisations are beginning to employ microservices architectures for their applications.
Monolithic architecture, Service oriented architecture (SOA) and Microservices Architecture all have their benefits and drawbacks. Marching towards the cloud requires modernisation efforts unless, you plan to leave your applications behind. In the moving analogy, you need to decide what is going to be left behind (perhaps your old refrigerator). In the context of cloud migration it’s critical that you don’t blindly adopt the latest technology without thinking through the application modernisation process.
The ‘Six Rs’ of application modernisation
In 2011, Gartner first outlined the ‘Five Rs’ of application migration to cloud. These Rs represented application modernisation strategies. Technology and processes have advanced since then and, today there are six application modernisation strategies.
- Rehost — Sometimes known as ‘lift-and-shift’. Simply take the existing application and application architecture as-is and do the bare minimum to get the application to run in a cloud environment. It won’t take advantage of cloud features like elasticity, but it can run in the cloud. Think of it as placing your grand piano in the garage of the new home. May not be the final destination, but it’ll do for now.
- Refactor / Re-architect — This requires significant changes to the code and architecture of the application so it can take advantage of the cloud environment. It is the most expensive, but can provide the most beneficial to enterprises seeking performance and scale.
- Rebuild — Starts with a clean slate. Old code is discarded and replaced with new code. Design the application as you need it to run in the cloud, and carry nothing over from the original application. Similar to refactoring or re-architecting an application, rebuilding is an expensive option but will deliver more value in the cloud.
- Retain —Some applications provide a lot of value in an existing environment. The costs to rehost, refactor or rebuild are high and the return is small. These should be retained. In other words, leave them where they are. Maybe you don’t take your jacuzzi tub with you.
- Replace — Completely discards the current application in favour of using a Software-as-a-Service (SaaS) solution. Enterprises can save a lot of money when they don’t have to build, deploy and scale applications in-house. Instead of packing that vacuum, mop and broom, simply hire a cleaning service.
- Retire — You may realise that some applications provide little value in your existing environment and wouldn’t provide much value in the new home. Retire them.
The best way to determine which strategy makes the most sense for each of your applications requires you to determine the target state of each application. Ask the following questions:
- What is the purpose of the application?
- Which environment is best suited for the application?
- What resources (people, budget, tools) are available for modernizing the application?
- Is the return of the modernisation effort worth the investment?
Considering these questions should help to identify which application modernisation strategies are realistic and feasible. Be sure to think about more than just the immediate bottom line: the chosen strategy should also consider how it will affect your customers, future earnings and flexibility.
The cloud is a draw that offers many wonderful opportunities, as is a shiny new house. Before embarking on a major digital transformation, be sure the grand piano fits. An application-centric approach to network services can be your on-ramp to the cloud.