Major US-based DMV (Department Of Motor
Vehicles) Education Provider

What We Were Looking To Solve For The Client

  • icon-1
    Poor user experience
  • icon-1
    Tedious administration tools
  • icon-1
    Manually run processes
  • icon-1
    Sluggish performance
  • icon-1
    Delays in incorporating new features
  • icon-1
    Allow seamless integration with
    3rd party tools

Why Was This Important

  • Inability to scale due to a monolithic architecture not optimized for the Cloud
  • Inefficient operation that relied on processes run outside the application
  • Lack of security leading to non-compliance
  • Lack of visibility of critical time-sensitive data
  • Inability to generate reports

And when the legacy app in question is a Learning Management System (LMS) for an edtech business, it becomes vital to overcome these limitations.

Project Overview


The project involved the modernization of the client’s legacy LMS built on the Microsoft technology platform, into a cutting-edge application based on a Services-Oriented Architecture (SOA) using microservices. The app makes use of a blend of Kubernetes and Serverless architecture to deploy the microservices of the application optimally.

The application includes an admin portal, where managing server load in real time is not a major concern - therefore, deploying this part of the application using Kubernetes made the best sense in terms of flexibility and cost.

Technical and Business Expertise
Technical and Business Expertise

On the other hand, for the student-facing portion of the application, the load was likely to vary greatly – from a few thousand to hundreds of thousands of students accessing the application concurrently. Using Kubernetes in such a scenario would have required investing into a large number of Kubernetes pods to cater to the highest expected traffic – meaning this approach would be inefficient in terms of cost management and resource utilization.

Additionally, as the traffic levels fluctuate, server resources would also need to be scaled up or down in real-time to ensure optimization of performance and cost. With these considerations in mind, serverless architecture using Azure Functions was utilized to handle the student journey portion of the application.

The CloudNow

With the modernized LMS playing a pivotal role in the client’s business, right from the outset, our focus was on ensuring a holistic digital transformation through three areas of focus:

  • Business Transformation
  • Technology Transformation
  • Deployment Transformation

Reduction in operation cost by automating routine service requests

Daily Tickets Raised From An Average Of 12 Was Reduced To 4


Improved Scalability by 10X for launching high volume courses

10,000 Concurrent Users Has Become 100,000 Concurrent Users

Business Transformation

An important first step to ensure that the modernized LMS would deliver significant incremental value was to gain an in-depth understanding of the legacy application. By comparing the insights gained from this deep-dive into the old LMS against the business requirements documents through interviews with the client, we performed a gap analysis to define the contours of the new application.

This not only helped to document the business and operational requirements that the updated app would need to fulfill, but also enabled the elimination of some of the requirements that existed for the earlier system, because these processes could now be automated.

Technical and Business Expertise

"With Microservices approach, a number of integrations were made possible."

Technology Transformation

One important part of the modernization plan was to ensure optimization of both the student user journey and admin functionality by writing different styles of code for each.

While a serverless architecture using Azure Functions was adopted for the student journey to seamlessly and automatically handle scaling up and down of resources based on traffic, a microservices architecture based on Java was used for the admin portal to ensure optimal cost and flexibility.

Thanks to the microservices approach, a number of integrations were made possible - this meant that key functionalities that were already available in third-party applications could be utilized without needing to be completely redeveloped from scratch.

Some of the Major Integration Implemented Include:








The client’s legacy LMS was hosted on-premise. This meant that scaling up resources was time consuming and expensive, and scaling of resources in real-time was out of the question. With the available infrastructure, servicing 300-400,000 users per annum was proving to be extremely difficult, and during traffic spikes, the LMS faced significant performance issues.

In fact this concern over performance and scalability was one of the key drivers for the decision to modernize the application.

With the Microsoft Azure cloud-based infrastructure platform used for the new application, these concerns were completely addressed, with the new infra allowing the LMS to support at least 100,000 concurrent users.

"The new infra supports at least 100,000 concurrent users."

Operational Benefits


1Reduction In The Customer Service Team

The need for a dedicated in-house customer service team was almost completely eliminated by the modernized LMS. This was achieved through a detailed analysis of historical customer service requests, through which about 95% of such requests were eliminated. This meant that the customer service team was reduced from a team of 4 to a team of 1 and was merged with the help desk that serviced the application for internal and external stakeholders.

Technical and Business Expertise
Technical and Business Expertise

"The process of managing course configurations on the new LMS was simplified."

2Improved Efficiency For Administrative Functions

The new app was built as a Platform as a Service (PaaS). Therefore, any requirements from the client were handled by CloudNow’s support team, and the process was also made far more structured thanks to the layer of testing included as part of our standard process.

The process of managing course configurations on the new LMS was also simplified. In the old application, separate components of a course were created as independent assets that needed to be mapped to a particular state and course. This was eliminated by creating an intuitive course configuration wizard that handled everything in one cohesive workflow. This approach has also facilitated the ability to update the course without affecting other dependencies.

In the modernized app, on the other hand, creation of chapters, mapping to courses, and assignment of courses are all possible through an integrated interface, making changes also easy to implement.

3Simplified, DIY Approach To Operations

The modernized learning management system delivers a very intuitive user experience, making use of limited sub menus and simple navigation, making it possible for a user to easily locate and access the available functionalities.

As a result, the new app has eliminated the need for in-depth knowledge transfer or training for users. In turn, this has removed dependence on subject matter experts or specific individuals from the team to operate the application, saving time and money.

Technical and Business Expertise



Project Management & Collaboration Jira, Confluence

Database Azure Database for MySQL Server

Source Code Repository GitLab

User Interface React.js, Wordpress 5.7.2

Infrastructure Platform Microsoft Azure

API Layer Spring Boot Framework, Azure Functions

Architecture Microservices, Serverless

Static Code Analyzer SonarQube

Dynamic Code Analyzer Rapid7

Deployment Process CI/CD using Jenkins pipelines

Deployment Platform Azure Kubernetes with Ingress Load Balancer, Azure Functions App, Azure Cloud Storage (enabled static site), Azure API Management

All Case Studies