App Modernization from On-Premise to Microsoft Azure for a Leading K-12 Education Software Provider

App Modernization from On-Premise to Microsoft Azure for a Leading K-12 Education Software Provider
April 29, 2021 Eshan Sarpotdar

About the Client

Founded in 1959, the client is a leading K-12 education software provider across multiple curriculums to the Kingdom of Saudi Arabia (KSA) and United Arab Emirates (UAE) with an unparalleled track record. 


The Business Challenge

The client wanted to enhance its offering and explore cloud as an option instead of its outdated and expensive on-premise infrastructure. Since the client’s applications are scaling, they are facing numerous challenges related to availability, rolling out fixes, and updates to their end-users. In addition, the current infrastructure is nested on a legacy platform affecting agility and scalability during surges, and that’s a big loss to the overall experience and business. 

The client also stated that it would be an added advantage if modernization (priority – multi-tenancy) for its applications was performed without making any changes in the application code. The client has multiple School and Class management applications which are .Net 4.8 monolith ASP .Net MVC based apps with MS SQL Server.

Post evaluation, CloudHedge suggested containerization of the .Net application to Microsoft Azure to drive efficiency, high-code deployments, and scale at demands to deliver exceptional business success and experience to its users.


How CloudHedge Helped? 

Based on the current scenario and the requirements from the client, CloudHedge proposed the execution of this project in a phased manner. CloudHedge identified the best possible approach to containerize the School and Class Management applications without the need to change the application source code. 

Phase 1

  • CloudHedge’s engineering team designed and implemented the target environment in Microsoft Azure and Azure Kubernetes Services (AKS) in such a way that it will be able to support the containerized application with the desired functionality. The environment will also support scalability without the need to change the application source code and development process. 
  • To accelerate the containerization process, the team implemented CloudHedge’s Application Modernization platform (Discover and Transform) to capture the Phoenix app from the Windows Instance and convert it into an independent Docker container. 
  • The team then configured the AKS cluster with optimum size (CPU/Memory) of the Phoenix Container (smallest unit possible) further ensuring no-load – least container, high load – max containers type of a setup. 
  • To tackle surges/traffic, the team configured Azure Load Balancers on the backend Phoenix container instances.

Phase 2

  • The team designed and implemented Continuous Integration by containerizing the existing application’s source code to Azure DevOps. 
  • The team focussed on building a pipeline to build container images based on new application releases. The team also designed the pipeline to deploy and update applications to the target AKS environment. 
  • To accelerate the process, the team used CloudHedge’s Cruize to define all customer environments (connection strings and other passwords will be added to Cruize env variables). The container images will read the environment variables and replace the values in the container instance on Kubernetes
  • To streamline updates, roll out, roll back and monitor the environments, the team used CloudHedge Cruize effortlessly.

Phase 3

  • Databases were containerized to Azure PaaS infrastructure and further integrated with the applications deployed in Azure cloud. 

Benefits

  • CloudHedge achieved the primary objective of the client to modernize the application without the need to change/alter the source code. Additionally, the solution was deployed through automation, eliminating the need for highly skilled administrators and supervision.
  • Zero downtime and maintenance costs for platform upgrades and patching due to managed Kubernetes services. 
  • CloudHedge discovered, containerized, and deployed the entire application within a few days instead of the client’s timeline of 4 months. The overall project delivery timeline was almost reduced by 70%. 
  • Ability to distribute different services on containers instead of increasing the number of VMs thereby reducing the infrastructure costs by 55%. 
  • Containers spin up new environments in minutes vs days in the earlier process.