The IT infrastructure in the Connectedness industry involves more than 70% of the servers using Windows Operating System (OS), according to Statista report.
Most of the workloads used in these Windows servers are .NET-based legacy applications, which need modernization to become more flexible, scalable, and cost-effective. But there are some critical challenges faced by the CIOs and technology decision-makers striving to modernize these .NET-based legacy apps. The challenges include:
- .NET versions before Windows Server 2016 do not support containerization
- Migrating .NET apps entirely to the cloud is expensive
- Lack of clear migration strategies for .NET apps leads to a lot of re-engineering efforts
- Re-writing all the .NET apps for the latest Windows version is a time-consuming process
To overcome these challenges, service providers must adopt a well-defined modernization strategy, which includes containerization of the .NET apps and sharing workloads across hybrid cloud environments. Containerization enables service providers to scale their .NET applications as and when required, without any size and memory limitations.
Key transformation levers to successfully containerize and modernize .NET-based legacy applications
The containerization process starts with the .NET apps already running in the enterprise. It helps create an immediate impact by saving on re-coding time, reducing costs, and limiting operations risk.

Fig: Key transformation levers
Service providers must study their business case in-depth and choose the right approach as they embark on their containerization strategy. This article details the right transformation levers crucial for the successful containerization and modernization of .NET-based legacy applications.
1) Systematic approach to assess if a .NET-based legacy app can be containerized
Migrating .NET apps without checking their compatibility will lead to app scalability issues in the future. The flowchart below helps to prevent whether a.NET-based legacy app is ready for containerization.
Recommendations
- Rewrite the apps which are stateful to leverage persistent volumes. A stateless app depends on third-party storage because it doesn’t store any state in memory or disk
- Check if the .NET app is compatible with Kestrel, an open-source web server used to host the apps on any platform
- Use the ‘.NET Portability Analyzer’ tool to scan through the source codes and determine if APIs are missing or libraries to be ported on specified targeted .NET platforms
- Perform risk assessment and move the .NET app into a separate database if the app is stateless
2) Platform to containerize and deploy .NET-based legacy applications on-premises
Recommendations
- Use Jenkins, an open-source automation server, to automate the building, testing, and deploying of applications in the CI/CD environment
- Use Google Kubernetes Engine (GKE) to deploy, orchestrate, and manage the Docker images in the Kubernetes pods
- Leverage a container management tool, such as ProGet, to store and manage the different versions of Docker images
- Use SonarQube, an open-source platform, to test the quality of codes developed in the CI/CD environment
3) Platform to containerize and deploy .NET-based legacy apps across a hybrid cloud environment
Recommendations
- Use Anthos to manage GKE clusters and workloads running on virtual machines across hybrid environments
- Leverage Anthos Service Mesh to manage traffic between services while monitoring, troubleshooting, and improving application performance
- Use Prometheus, an open-source monitoring tool, to monitor the Kubernetes cluster in both on-prem and cloud
- Use Elasticsearch tool for analytics and operational intelligence use cases

Fig: Reference architecture to containerize .NET-based legacy apps across a hybrid environment
4) A secure app delivery platform with CI/CD to achieve fully automated zero-touch pipelines
The automated, zero-touch pipeline is highly secure. DevSecOps ensures security at the starting point of the development process. It enables the identification of vulnerabilities early and strengthens security throughout the application lifecycle.

Fig: Reference architecture for fully automated-zero touch pipelines
Recommendations
- Use Argo CD, a controller tool, to continuously monitor all running applications and compare their live state to the desired state
- Adopt trunk-based development practice to merge minor, frequent updates to the main branch, thereby increasing the software delivery efficiency
- Use the ‘MSBuild’ plugin to build .NET and Visual Studio projects
- Leverage the NPM (Node Package Manager) tool to manage multiple versions of code and code dependencies
5) Multi-cluster observability platform to achieve a single source of truth for monitoring .NET apps
Recommendations
- Enable monitoring with Prometheus, Grafana, and AlertManager stack, to deliver cluster-level metrics and machine-level metrics
- Use Grafana, a data visualization and analytics tool, to build dashboards and graphs for log and metrics data
- Deploy AlertManager to handle alerts generated by Prometheus and route them to integrations like email notifications
By embracing these transformation levers, service providers can successfully containerize and modernize their .NET-based legacy applications. They can achieve a 2.5X reduction in feature delivery time, a 3X improvement in the release frequency of applications, and a 40% improvement in application performance.
I thank my colleagues Sivasubramanian Veerabahu (Senior Technical Architect) and Rohit Karthikeyan (Manager- Strategic Insights) for contributing to building this article.
AuthorRoshan Mehaboob Senior Solutions Director – Prodapt Solutions Roshan, in his nearly 2 decades in IT, has had the experience of working across Delivery, Operations, Pre-Sales & Solution development across On-Prem, Hybrid, and Cloud. He is passionate about dealing with complex problems, understanding customer needs, and delivering solutions with clear outcomes. Roshan is a Senior Solutions Director at Prodapt, a two-decade-old consulting & managed services provider with a singular focus on the connectedness industry. Prodapt’s customers range from telecom operators, digital/multi-service providers (D/MSPs), technology, and digital platform companies in the business of connectedness. Prodapt works with global leaders including AT&T, Verizon, Lumen, Adtran, Vodafone, Liberty Global, Rogers, Deutsche Telekom, Google, Amazon, and Microsoft among many others.
Read Next: Why the appropriate software is critical for modern business success