Joint blog post by Nirmal Singh Tomar, Principal Consultant at Infosys, Mandar Shete, Principal – Cloud Practice at Infosys and Ashok Sundaram, Principal Solutions Architect at Amazon Web Services (AWS)
Many enterprises have Windows workloads that need to be transformed to become more flexible, scalable, and cost-effective. They typically choose to migrate these applications to the cloud due to its flexibility, robustness, ease of deployment & management, and scalability. Migrating and modernizing applications on AWS enables businesses to cut costs, improve efficiency, and become nimbler, while maximizing their existing investments.
If enterprises focus only on a ‘Lift & Shift’ approach to migrate their Windows workload to the cloud, and choose computing comparable to on-premises servers, they frequently end up with inefficient resource provisioning in the cloud, resulting in a sub-optimal TCO.
This blog provides an overview of common approaches and migration patterns, and selection criteria that can help organizations modernize and migrate their Windows workloads to the AWS cloud in an optimal manner.
Strategies for Migrating Windows Workloads to AWS
There can be various disposition strategies for transforming a traditional legacy architecture to a cloud-based architecture, including Re-host, Re-platform, Re-locate, Re-purchase, refactor, retire, and retain. Generally, enterprises select three strategies for Windows workload migration – rehosting, replatforming, and refactoring. The diagram below depicts the gradual stages and paths that enterprises may take to move their existing Windows workloads to the AWS cloud.
The best migration strategy for enterprises depends on various factors like type of application, data center sunset, license portability, and time to migrate. Using a “one size fits all” approach like moving all applications to Platform-as-a-Service (PaaS) or designing a cloud-native application architecture for all applications using Container-as-a-Service (CaaS) may not always be optimal. Usually, we recommended a multi-path migration approach to migrate Windows workloads to the cloud.
The quickest and easiest way to migrate applications is through “re-hosting” or “lifting-and-shifting”. By rehosting, enterprises can move their Windows workloads to the cloud without any code changes. The primary purpose of this strategy is to reduce the server management burden from on-premises resources, so that they can focus more on building/optimize applications.
- Amazon EC2: Suitable when you want complete control over the underlying Windows server, storage, and operating system.
- Self-managed Windows containers on Amazon EC2: If your workload is container-ready, you can select a self-managed, container orchestration platform running on EC2 to host Docker Windows containers. And it will also allow you to have full control and access over the underlying server. It is important to note that the Windows container images are bigger than the Linux container images.
- Self-managed databases on Amazon EC2: Suitable when you want complete administrative control and flexibility over Microsoft SQL Server relational database.
In this path, you optimize workloads by upgrading their components (such as the operating system, storage, or database) without changing its architecture and with minimum code or configuration changes. The primary purpose is to take advantage of cloud features like scalability, elasticity, better management, and resilience without significantly changing applications.
- AWS Elastic Beanstalk: Elastic Beanstalk reduces management complexity for applications, making it an excellent solution if you are new to AWS or need to launch a web application as rapidly as feasible.
- Windows Containers Using Amazon ECS or Amazon EKS: ECS or EKS can be used when your workload is container ready and you want to offload management of underlying infrastructure to AWS. EKS brings an industry-standard, Kubernetes platform with the associated tooling, ecosystem, flexibility and should be the platform of choice if multi-cloud or hybrid-cloud deployment is involved. On the other hand, ECS offers more in-depth integration with AWS services and can be chosen if you are looking to work solely in the AWS cloud. AWS Fargate can also be an option with ECS/EKS as serverless compute backend. At present only ECS supports running Window containers on Fargate. With EKS, you will have to deploy Windows containers on self-managed nodes.
- Amazon RDS: Amazon RDS for SQL Server can be used when you want to host a full-featured SQL Server relational database while outsourcing database maintenance.
The primary purpose of this strategy is to optimize applications when there are compelling business reasons to make significant changes such as adding features, increasing performance, or enabling scalability that are difficult to achieve without significantly re-architecting the application. For example, you can save costs by porting .NET applications to .NET Core / .NET 5 and running them on Linux containers.
- Linux Containers Using Amazon ECS or Amazon EKS: For modernizing long-running applications, you can refactor .NET standard applications to .NET core microservices and containerize them to Linux containers on ECS/EKS, with EC2 or Fargate option for hosting.
- AWS Lambda: You can select the serverless path using Lambda for short-lived tasks that can be triggered, based on an event or a scheduler. Lambda provides two options for.NET 5 workloads: .NET 5 Lambda functions that use Lambda container image and .NET 5 runtimes that use a custom runtime with Lambda.
- Amazon Aurora: While modernizing applications, migrating from a commercial database like SQL Server or Oracle to Aurora can help you save database licensing costs. You can also use Babelfish, which enables Aurora PostgreSQL to understand commands from applications written for Microsoft SQL Server, to reduce the application changes needed.
- New-age Databases: While modernizing applications, enterprise can consider new age purpose built databases such as Amazon DynamoDB, Amazon DocumentDB, Amazon ElastiCache and many more, which provides high performance, scalability and agility for various use cases.
Infosys & AWS Services for Windows Workload Migration:
Infosys and AWS have a wide range of services for different migration strategies. Here we will talk about some key ones.
Infosys Modernization Suite: Infosys Modernization Suite, part of Infosys Cobalt, simplifies and accelerates application migration and modernization to the cloud, including Windows workloads. It covers all phases like assessment, application code remediation, cloud native development, environment provisioning and deployment. It complements the AWS services mentioned below and enables enterprises to start their projects in a matter of minutes, with up to 40% reduced effort. Key features include:
- Cloud assessment and disposition for applications
- Automated environment provisioning using infrastructure-as-code (IaaS / PaaS / Kubernetes)
- App containerization and deployment
- Modernization of monolithic applications to microservices (including mainframe)
- Accelerated cloud native development including microservices, APIs and batches
- Accelerated adoption of serverless architecture
- Proprietary database migration to open source or cloud managed RDBMS or NoSQL
AWS services used with various migration patterns:
- AWS Application Migration Service: Migrates applications/databases from physical infrastructure/VMware vSphere, Microsoft Hyper-V to supported versions of Windows.
- AWS App2Container: Reduces manual effort required to containerize applications using automated discovery, dependency extraction, docker image creation, and creation of ECS/EKS task/pod definitions for deployment.
- Windows to Linux replatforming assistant for Microsoft SQL Server Databases: Automates the steps needed to migrate databases from Windows OS to Linux via backup and restore.
- In-place upgrades using AWS Systems Manager: Automated upgrades instances running for Windows Server 2008 R2, Windows Server 2012 R2, Windows Server 2016, and SQL Server 2008 R2 with Service Pack 3.
- AWS Microservice Extractor for .NET: A new service introduced at re:Invent 2021 that can help enterprises in extracting efficient microservices from complex ASP and .NET monolithic applications to improve agility, uptime, and scalability.
- AWS Migration Hub Refactor Spaces: Another new service introduced at re:Invent 2021 which can help enterprises combine existing applications and microservices into a single application. It also allows different approaches for architecture and technology, team alignment, and the process between parts.
- Porting Assistant for .NET: Modernizing from .NET to .NET Core can be time consuming, as applications can require remediation by moving to alternative supported packages or APIs. Porting Assistant for .NET helps in estimating the effort and application changes required.
- AWS Schema Conversion Tool (SCT): Migrating from a commercial engine like SQL Server to an open source engine like PostgreSQL or MySQL can be time consuming due to manual effort required for conversion of the database schema. SCT makes heterogeneous database migrations easy by automatically converting most database objects to a format compatible with the target database.
- AWS Database Migration Service (DMS): Supports data migration between both homogeneous (e.g. SQL Server on-premises to Amazon RDS for SQL Server) and heterogeneous (e.g. SQL Server to Aurora PostgreSQL) databases. It includes both one-time migration and continuous replication to keep the source and target databases in sync.
Enterprises have growing expectations for functionality, performance, mobile access, ongoing data expansion, cost reduction and a high user experience. This necessitates new methods of providing Windows workloads, such as hosting them on the public cloud. Earlier, cloud migrators were driven largely by IT cost savings through lifting and shifting their workload to the cloud. However, today enterprises are realizing that modernizing their Windows workloads faster on AWS can provide them more value via efficiency, performance, and agility at a lower cost. Infosys and AWS work closely with global enterprises at every stage of workload migration journey. With our proven tools, methodologies, and expertise, we ensure an accelerated and hassle-free migration to the cloud.