Accelerate Modernization of Legacy Applications Using Wipro CNAP and Amazon EKS
Editor’s Note: This post was updated in August 2023 to reflect current CNAP features.
By Hari Gautham Somasundaram, Product Manager – Wipro
By Senaka Ariyasinghe, Sr. Partner Solutions Architect – AWS
By Manoj Balaji Alaghappan, Sr. Technical Account Manager – AWS
Over the past decade, many organizations have embraced the cloud economy. Organizations are looking beyond mere economics and leveraging cloud-native capabilities to instill stability, scalability, and speed for their applications.
Cloud is now the de-facto environment for modern applications; hence, organizations are contemplating the best strategy for modernizing their legacy application workloads from on-premises systems to the cloud.
Budget and time constraints, along with shifting workplace dynamics and lack of skilled developers, prevent many companies from taking the leap in modernizing their legacy applications.
Wipro, an AWS Premier Consulting Partner and Managed Service Provider (MSP) with rich global experience, takes a step forward to address these challenges and deliver cloud transformation at scale with the Cloud Native Acceleration Platform (CNAP).
CNAP provides self-service and enhanced developer experience to help build both greenfield cloud-native applications and modernize legacy applications. CNAP also leverages extensive automation to transform application development, containerization, deployment, and management on Amazon Elastic Kubernetes Service (Amazon EKS) or self-managed Kubernetes (K8s) on the AWS Cloud or on-premises.
In this post, we explain what CNAP is and explore its architecture. We’ll also walk through how CNAP helps customers modernize their legacy .NET MVC application to .NET Core, along with other relevant business use cases.
What is CNAP?
The Cloud-Native Application Platform is an end-to-end application transformation platform which accelerates the cloud-native adaptation journey.
CNAP brings in capabilities like automatic infrastructure provisioning, greenfield application development, on-premises-to-AWS cloud migration, .NET modernization, Pivotal Cloud Foundry (PCF) to Amazon EKS migration, containerization, and automatic AWS CodePipeline creation and execution.
Recent addition to CNAP features include:
- CNAP can now migrate workloads deployed on Kubernetes cluster to Red Hat OpenShift Service on AWS (ROSA) in a complete automated passion.
- CNAP is enhanced to automatically create AWS build spec artifacts and generate AWS CodeBuild projects, which can be automatically executed in AWS CodePipelines to deploy workloads on Amazon EKS clusters.
Essentially a cloud-native application migration and modernization platform, CNAP empowers developers to control the entire application modernization lifecycle without having to rely too much on ops teams.
The platform is packed with features like automated code generation and code assessment tools, code convertors, pre-configured DevOps pipelines, automated deployment workflows, seamless monitoring of applications, and all of the power that K8s has to offer.
The solution offers containerization, using open source and managed versions of cloud-native build packs to help customers containerize apps at scale.
CNAP benefits include:
- Quick transformation: Implementation lead times reduced from 6-9 months to 3-4 weeks for production-grade K8s.
- Accelerated development: 30-40% reduction in efforts leveraging curated development frameworks and extensive automation.
- Reduced time to market: CNAP increases minimum viable product(MVP) release velocity with multiple accelerators.
CNAP consists of four distinct architecture layers: infrastructure, platform, technology, and orchestration.
Infrastructure layer: CNAP is built to deploy application workloads on both hybrid and multi-cloud scenarios.
Platform layer: A user can try deploying workloads on multiple K8s environments in real-time and choose the best service before buying yearly licenses. CNAP helps a developer to create and manage clusters in real-time on any of the managed Kubernetes service providers in the market including Amazon EKS.
Technology layer: CNAP is an orchestration of opinionated toolsets with multiple managed service providers, open source tools, and in-house modules built for specific use cases. The platform is compatible with a wide range of CNCF tools.
- Cluster on-demand: CNAP provides one-click provisioning and de-provisioning of EKS clusters.
- Bootstrap microservices: CNAP provides feature to scaffold microservices in Java and .NET based on user input.
- Pipeline as code: Built-in pipeline as code integrates with AWS-native CI/CD tooling to speed up application development.
Figure 1 – CNAP architecture layers.
Nextd, we’ll look at two use cases in CNAP:
- Modernizing a legacy .NET MVC application to .NET Core
- ROSA cluster creation and workload migration
Modernizing a Legacy .NET MVC Application to .NET Core
CNAP provides built-in accelerators for different types of modernization projects. Following is a short walkthrough on the steps needed to modernize a .NET application running on-premises and host it on Amazon EKS clusters.
Figure 2 – CNAP .NET app modernization workflow.
Step 1: Create Project
A developer starts by creating a project with the appropriate modernization type and selecting the technology in which the application code is written. To modernize a MVC .NET application, a project is created with LEGACYMVCDOTNET as the type.
Figure 3 – Create new modernization project on CNAP.
Step 2: BYO Legacy Code
In this step, the customer brings their own legacy code to modernize.
- CNAP accepts Git URL as an input to access the legacy MVC .NET code.
- CNAP onboards the application code on the existing cloud-native integrated development environment (IDE) for the developers to access the code.
Figure 4 – Create new source module to onboard legacy application code.
Step 3: Modernize Legacy Code
In this step, CNAP provides the capability to automatically or manually convert your legacy .NET MVC to .NET Core.
- Perform cloud-native assessment, which provides cloud suitability of application code through a scoring mechanism. It also provides a view on manual efforts required to be spent, and high-level recommendations on the modernization approach.
- Based on recommendations, developers can incorporate manual code enhancements using the native IDE.
- Trigger .NET code converter which converts MVC to .NET Core into to a target Git repository. Developers can continue to develop their application via the native IDE.
Step 4: Deploy Modernized Code
In this step, CNAP provides an automated deployment pipeline to deploy the modernized application on Amazon EKS.
- Automatically trigger deployment pipeline via Jenkins and run preconfigured unit tests (configurable).
- An application image is built using cloud-native build packs, which consumes the app source code as the single source of truth and pushes your container images to Amazon Elastic Container Registry (Amazon ECR) as part of your pipeline.
- Deploy your modernized application containers to Amazon EKS or an Amazon EKS Anywhere cluster configured by the user.
- Start monitoring the underlying infrastructure and application workloads from the CNAP user interface (UI).
Figure 5 – Create new target module to modernize the source module and initiate deployment.
ROSA Cluster Creation and Workload Migration
As part of a CNAP upgrade, a new feature has been incorporated by integrating with Red Hat OpenShift Service on AWS (ROSA). Now, users can create ROSA clusters on AWS infrastructure by the click of a button with basic information captured. As an extension to this feature, users can migrate workloads from on-premises to ROSA in a seamless way.
Step 1: Create ROSA Cluster
Developers create a ROSA cluster by going to the cluster dashboard and choosing Red Hat OpenShift as “Provider.” Nextd, fill in the relevant information like number of nodes and plan, and then click “Provision.” This executes a Terraform script and spins up a ROSA cluster in a configured AWS account and updates the cluster table.
Figure 6 – Create new cluster using CNAP.
Step 2: Create Project for ROSA Migration
Developers can go to “Projects” section and create a new project of type “EKS_to_Rosa_Migration.”
Figure 7 – Create new project in CNAP.
Step 3: Migrate Workloads to ROSA
Click on the “Edit” icon for a created ROSA migration project. Choose the source provider, and then choose the environment which will be your target ROSA cluster.
Select the workload in the Pod drop-down and click “Migrate.” This triggers the necessary scripts in the background, which backs up workloads on Amazon Simple Storage Service (Amazon S3) using Velero and deploys the workload on a ROSA cluster.
Figure 8 – Migration form on CNAP to input migration details.
What Other Use Cases Can CNAP Address?
We’ve covered how CNAP can be used to modernize legacy applications. In addition, CNAP can help other business use cases such as:
CNAP offers a development environment with extensive automation intended to reduce distractions for a developer due to pre/post development activities. The platform provides pre-built boilerplate templates to generate a microservice. The templates are customized to precisely address the needs of a particular development project.
The platform also provides access to cloud-native IDEs for any required manual interventions. Post development, the developer is provided with an automated deployment pipeline which containerizes the application source code and deploys it on the target cluster by a single trigger.
As part of a CNAP upgrade, Wipro has integrated with AWS-native CI/CD tooling. Users can upload code from AWS CodeCommit and create buildspec .yaml programmatically, which can be utilized in creating AWS CodePipelines and deploying application directly in Amazon EKS.
Containerization of Applications
The CNAP engineering team understands the importance of cloud-native build packs over traditional containerization methods such as Docker containers. The platform provides access to both managed and open source build packs for containerization.
Based on the preference of the end user, the automated deployment pipeline is built on the required service.
Cluster Analytics and FinOps
Analytics and FinOps play a critical role when we talk about multi-cloud cost management. CNAP is now FinOps and cluster analytics enabled, giving users a detailed view to cluster analytics and cost management across their multiple cloud accounts.
Now, users can have an aggregated view of all AWS resources in one place, AWS cost allocation, and create new alerts based on cloud consumption or number of errors in system logs. This feature also provides insights into AWS usage across accounts and provides suggestions on how to do cost savings by optimized usage of cluster like re-sizing the nodes, underutilized nodes visibility, managing unclaimed volumes, and more.
Many organizations are focused on building cloud-native applications and modernizing legacy workloads to increase business velocity and reduce costs. Kubernetes, with its underlying complexity, can make the cloud-native migration even tougher.
Wipro’s Cloud Native Acceleration Platform (CNAP) provides the ideal platform to start the modernization journey with built-in accelerators and open source tool integration to simplify the process and help organizations transform apps and deploy on Amazon EKS at scale.
To learn how CNAP can help modernize your legacy applications and deploy on Amazon EKS, contact Wipro at email@example.com.
Special thanks to contributing writers Sunil Doddmani Manjunath (Wipro), Alok Srivastava (Wipro), Anil Joseph (Wipro), Abhinivesh Jain (Wipro), and Jesus Rodriguez (AWS).
Wipro – AWS Partner Spotlight
Wipro is an AWS Premier Consulting Partner and MSP that harnesses the power of cognitive computing, hyper-automation, robotics, cloud, analytics, and emerging technologies to help clients adapt to the digital world.
*Already worked with Wipro? Rate the Partner
*To review an AWS Partner, you must be a customer that has worked with them directly on a project.