
Containerization of Dotnet Application
Client: International Consulting Company
When: 2021
Project Goals
The project aimed to migrate an ASP.net application from a single multi-tenant Windows server to a more scalable and isolated Kubernetes environment, with the primary objective of improving system manageability and tenant separation.
Project Deliverables
- Upgrading the application to .NET 6
- Containerizing the frontend and backend applications
- Implementing an automated deployment pipeline using Azure DevOps
- Configuring image storage and deployment in AWS ECR and Kubernetes
Challenges Encountered
Our team faced several technical challenges, including:
- Ensuring application compatibility with Linux containers
- Refactoring environment-specific configuration - Previously there was one build per environment, but that makes it impossible to test the exact artifact we are deploying.
- Addressing file system and logging dependencies that prevented fully immutable containers
Project Outcomes
We successfully migrated the application to Kubernetes, creating a more flexible and scalable infrastructure. The containerization process required minimal code changes and resulted in a deployable system that could be consistently used across different environments.
Key Takeaways
The project demonstrated the importance of:
- Flexible application design that supports environment-agnostic deployments
- Continuous collaboration between development and DevOps teams leading to greatly improved product quality and release processes