Part of the Cloud Strategy Unboxed series, this blog looks at migrating applications into a new scalable and automated cloud environment. As part of this process, applications must be assessed for optimization and modernization. A decision can then be made if, when and how to move each application to the cloud based on its value, criticality and total cost of ownership.
When migrating applications into a new scalable and automated cloud environment, it is crucial to have a well-defined migration strategy in place. Amazon Web Services (AWS) provides the R-strategy framework to help organizations with large-scale application migrations to the cloud. It provides guidance on optimising and modernising applications before migrating them to the cloud, which can result in lower costs, increased efficiency, and better performance.
The R-strategy approach consists of three phases: Ready, Reinvent, and Relocate.
- The Ready phase focuses on assessing the current state of applications and infrastructure, identifying the ones suitable for cloud migration, and defining the business case for the migration.
- The Reinvent phase involves modernising the applications to take full advantage of the cloud environment by redesigning the architecture, refactoring code, and adopting new technologies like serverless computing.
- The Relocate phase is the actual migration of the applications to the cloud environment, which involves moving the application and data from the on-premises infrastructure to the cloud infrastructure.
R-strategy is based on best practices and real-world experience, making it a reliable and effective way to migrate applications to the cloud. It provides a set of options for organizations to choose from when deciding on the best approach to migrate their applications to the cloud. Part of the strategy is determining for each application what type of migration is most suitable. This can include the following options, also known as the Six R’s.
Also known as “lift and shift,” this option involves moving the application to the cloud without changing the underlying code. This approach is best suited for applications with minimal dependencies and easily moved without modification. However, it will struggle to reap the benefits in the cloud, such as reduced cost, and is typically reserved for low-value applications.
Also known as “lift, tinker, and shift,” this option involves making some modifications to the application’s architecture to take advantage of the cloud environment’s scalability and performance benefits. This approach is best suited for applications that can justify a budget for some optimization but not a full rebuild.
This option involves migrating to a new application already built and hosted in the cloud. This approach is best suited for outdated third-party applications with a new version offered by the vendor or by a vendor with a competing solution of similar capability.
This option involves making significant changes to the application’s architecture and code to take full advantage of cloud-native services. This approach is best suited for applications that require significant modernization to operate effectively in the cloud.
This option involves decommissioning applications that are no longer needed or incompatible with the cloud environment.
This option is reserved for applications that may not be suitable for migration to the cloud for reasons such as compliance, security, or latency. In these cases, the decision would be to retain the application in its current on-premises environment and continue to manage it accordingly. It is important to note that the retain option should be considered a temporary measure and revisited periodically to reassess the feasibility of migrating the application to the cloud.
When choosing the best migration option, organizations should consider factors such as the application’s criticality, complexity, and total cost of ownership. The organization’s overall cloud strategy should also be considered to ensure that the chosen migration approach aligns with the business’s long-term goals. Platform, controls, and blueprints
Having a well-defined platform, controls, and blueprints in place can ensure that applications are migrated in a standardized and controlled manner. This can help to reduce the risk of migration errors and ensure that applications are optimized for the cloud environment.
Once the migration approach has been selected, the next step is to ensure that applications migrating into the cloud platform follow the established approach and rules. Preapproved blueprints are provided for common architectures, and applications should ideally be adapted to use them. Where not possible due to the uniqueness of the application, there may be an opportunity to create a new common blueprint. Alternatively, application teams can use the preapproved service modules to create their architectures or augment the existing blueprints.
For application teams that prefer not to follow the new approach, organizations can consider letting them remain on-premises or in the legacy cloud approach. However, such exceptions should be time-boxed, requiring a deadline for migration, and teams must be made aware that improved benefits, such as higher availability, can only be achieved by moving to the new way of working.
Modernising applications is an essential part of any cloud migration project. There are several options for modernising applications, each with advantages and disadvantages. Choosing the right modernization approach depends on several factors, including the application’s complexity, criticality, and business value.
We covered replatform in the R-Strategy. This involves making minimal changes to the application to take advantage of cloud services. This can include migrating to managed services, such as Amazon Relational Database Service (RDS) or Amazon Aurora.
Within the refactor/rearchitect/rebuild approach, there are a few options for modernization.
For example, containerising the application to run on cloud services such as Amazon Elastic Kubernetes Service (EKS) or Amazon Elastic Container Service (ECS). Containers provide a consistent and scalable way of running applications in the cloud. There can be parts of applications reusable when moving to containers, but there will still be considerable effort to rebuild the application.
Another modern architecture option is Serverless, which involves building applications to run on services such as AWS Lambda. Serverless architectures can be highly scalable and can offer significant cost savings. However, the challenge is that they require a very different approach to architecting and building applications, typically requiring training and support for teams new to it.
In some cases, different architectures may be combined for a single application. However, this should be done with caution as it adds complexity, and older architectures may undermine the benefits of modern architectures. Another consideration is Hybrid architecture, which combines on-premises and cloud resources within a single application. This can be a good option for applications that cannot be fully migrated to the cloud.
Applications do not necessarily need to be modernized right away. They can be moved to the cloud first (rehost/replatform) and later modernized (replatform/refactor). This allows for applications to move to the cloud faster. However, there will be an interim period with unoptimized costs and other inefficiencies. There is also a risk of that interim period becoming indefinite, as modernization efforts are delayed due to budget constraints or shifting priorities.
Total Cost of Ownership (TCO)
While cloud migration provides a significant opportunity to modernize applications and improve scalability, it is important to consider the total cost of ownership (TCO) before deciding on a particular approach or architecture. A TCO compares the cost of owning and operating an application in the cloud to owning and operating it on-premises and between different types of architecture.
When considering TCO, it is essential to account for both the one-time and recurring costs. One-time costs include refactoring applications, hiring consultants, and training staff. Recurring costs include ongoing expenses, such as cloud infrastructure, storage, and maintenance.
Different migration options have varying TCO implications. For example, lift and shift migration is typically the least expensive option in the short term, requiring minimal application changes. However, it may not be the most cost-effective option in the long term, as it does not take advantage of cloud-native capabilities, such as fully managed services and autoscaling, which can significantly reduce infrastructure and operational costs.
On the other hand, rebuilding an application before moving it to the cloud can be more expensive in the short term, as creating the new infrastructure and code requires more time and effort. However, it can be more cost-effective in the long term, as it takes full advantage of cloud-native capabilities, reducing the need for expensive infrastructure and maintenance.
It is also important to consider ongoing optimization and cost management to ensure that TCO remains low over time. This includes ongoing monitoring of application usage, rightsizing of resources, and optimization of application architecture.
CSP migration programs
As part of the TCO, there are CSP migration programs that can be considered to reduce the cost. These programs offer credits to offset cloud operating costs or cash to cover a portion of the migration costs billed by a vendor partner. A good FinOps strategy will support or even have policies related to CSP funding programs.
AWS MAP (Migration Acceleration Program) helps businesses migrate to the AWS cloud efficiently and cost-effectively. The program can also cover the cost of establishing common foundations such as deployment pipelines, cloud controls, and reusable blueprints. AWS MAP offers several funding benefits to help businesses cover the cost of migration, with the funding benefits divided into three phases: Assess, Mobilize, and Migrate & Modernize.
AWS also has a more recent modernization program. A challenge with MAP funding is that it is based on the ARR (annual recurring revenue). This means that it rewards lift-and-shift migrations more as those will have a higher cloud spend compared to optimized or even modernized applications. The modernization program is intended to support and drive more modernization of applications to modern architectures, helping organizations save considerably on their cloud spend.
The Azure Migration and Modernization Program (AMMP) is another program offered by Microsoft Azure to help customers migrate their applications, data, and infrastructure to Azure. The program provides tools, resources, and services that help customers plan, prepare, and execute their cloud migration while minimising risk and maximising ROI. AMMP consists of three phases: Assess, Migrate and Optimize. Each with cost savings, technical support, optimization tools, accelerated migration, and training opportunities.
Google Cloud’s Rapid Assessment and Migration Program (RAMP) is designed to help organizations quickly and easily migrate their workloads to GCP. RAMP allows organizations to leverage Google’s cloud expertize and tools to accelerate migration. RAMP is divided into three phases, each with its own set of objectives, tasks and funding.
Organizations must meet certain eligibility requirements to qualify for these programs, including having a minimum annual spend commitment.
Each program has different benefits, and they are flexible and scalable, allowing organizations to migrate their workloads at their own pace. The programs also offer technical resources, best practices, and funding to support businesses throughout the migration. This helps organizations reduce migration risk while optimising costs and achieving cloud benefits. However, to participate in these programs, organizations must meet certain eligibility requirements, such as having a minimum annual spend commitment and completing the necessary process, documentation, and reports throughout the migration.
When considering cloud migration, it’s essential to take a holistic approach that considers all the necessary steps, including assessing your current applications, choosing the right cloud platform, modernising your applications, and understanding the TCO. By following the right strategy and using the right tools and technologies, businesses can successfully migrate their applications to the cloud, improving scalability, security, and agility while reducing costs and complexity. With the right mindset, commitment, and support, organizations can transform their application landscape and reap the full benefits of the cloud.
Don't miss out on unlocking the full power of the cloud.for a personalized consultation or to learn more.