Microsoft Access to Azure Migration

Introduction

Admissions office of a higher education institution currently uses Microsoft Access for storing and retrieving data required for a yearly recruitment event that spans several weeks. This period is critical for the institution as the success of the recruitment drive determines whether the institution is able to meets its yearly targets. In order to make the drive a success, the information hosted in the database needs to be readily available to a number of customer service agents, who, then use this information to guide the students through enrolment process. Failure to retrieve relevant information in a timely manner not only reduces the number of conversions, but also affects the reputation of the institution.

Key Issues

The MS Access database hosted on a shared drive cannot easily service hundreds of customer service agents. Updating the database while it was open on other agents’ computers would cause data corruption and system crashes during critical times. Accessing the shared drive required VPN, which further added to network/connectivity problems.

Success Criteria

The institution need a robust, reliable, highly-scalable solution that can be accessed without any dependency on VPN, while maintaining secure access. The system should allow administrators to update key information and have the information reflected on all client systems immediately.

Recommendation

Azure SQL Database Backend

Our recommendation was to migrate the existing Microsoft Access DB into new Azure SQL instance. The advantage of using Azure SQL is its reliability and scalability. Since the application needs to have high performance for a specific time-period, we could easily scale up the Azure SQL when needed and scale it down when the load levels come down.

Azure App Service – .NET Core API

Business logic was encapsulated in a .NET Core API and deployed into an Azure App Service. We configured Redis to cache server data. The entire cache is cleared whenever application data are updated from the admin portal. This ensured that subsequent requests always return up-to-date information and never stale data. 

Angular.js & Azure Storage Account – Front end

For the frontend, our proposal was to create a light-weight JavaScript application using Angular.js. This allowed the UI to be completely independent from the backend and resulted in quicker delivery dates. Read-only portal for customer service agents and admin portal for backend users to update the data were built using Angular.js and deployed into an Azure Storage Account. Configuring Azure CDN allowed the application to have large scaling for instantaneous high loads during peak period.

 Outcome

The new architecture was immensely successful and allowed the customer service agents to work remotely during COVID-19 pandemic, while successfully delivering required services. Auto-scaling of Azure resources meant that there were no performance related issues during high-demand periods. Finally, the institution has been able to leverage the data across different components of the website to provide a seamless Clearing experience to the prospective students.

A Technical Evangelist with 16+ years of experience in designing large scale data-driven applications and managing development teams using varied technologies.