About The Client
The client is an award-winning education technology company working on innovative platforms for online admissions, online assessments, onscreen evaluation systems, and remote proctoring technology. The client is also associated with many multinational companies, corporates, education institutes, and universities.
The Business Challenge
The client was looking out to move its existing legacy applications to cloud as it was running higher bills and outdated infrastructure. Started by moving the legacy database from on-premise to cloud, setting up continuous integration and deployment pipeline and CloudLease service for virtual machines created on the cloud. The plan was to auto scale the solution to increase customer requests on specific events or day for their customers.
The client was already using Azure for its infrastructure setup and had started moving applications to .Net Core for Linux deployments. Another requirement was to make the deployments on-demand. These were to be of multi-tenant SAS and dedicated deployment types.
With limited in-house knowledge on Azure DevOps and .Net Core technologies, they also required some guidance on to make solutions horizontally scalable.
How CloudHedge Helped?
As a first step, we analyzed the legacy database and checked for changes required to migrate the database to cloud. Meanwhile, the SQL Server database was successfully migrated, and all the required changes were informed to the team before testing the application. The team performed the changes and started testing the application by connecting them to the cloud database instance.
In the second phase, the team used Azure DevOps TFS in development for which the artifacts generated from the continuous integration cycle were used for the release on virtual machines provided by the client. To achieve this, the team trained the client’s staff about the best practices followed while writing cloud-native applications. These pipelines are now used to set-up a new environment and client deployments on Azure virtual machines.
In the third phase, we implemented AWS CloudLease service to create a scheduled auto start/shutdown on virtual machines in Azure. CloudLease service will use the client’s vault and schedule the week’s plan for hourly start and stop the machine from a specific resource group.
In the next phase, the team performed the setup of SSL certificates for all services used in the repository and used the SSL for each request from the user. On the other side, the client’s team had started testing on the deployed versions from each build artifact and found it useful to test after each commit.
CloudHedge’s team setup similar pipelines for UAT and Demo environments for the client and began working on the deployment of client-specific versions on demand.
As the platform solution was thoroughly tested and production-ready, the client was carefree with regards to UAT and demo environment after each successful commit.
- New developments are easily available for testers.
- The solution was made easy to deploy even without a highly skilled staff. The ease of deploying on various environments immediately proved a boon for any process automation like
- Elimination of the need for file copy and publish using FileZilla while deployments saved additional costs.
- The client could perform easy, fast and production-ready deployments and easily monitor the entire infrastructure.
- Simplified UI access to logs with minimal login for logs. In fact, the need to login to systems was almost eliminated except for a few critical issues.
- The solution was able to scale horizontally based on the requirements.
- The reduction in cost was immediately visible since virtual machines enable auto-start and shutdown using CloudLease service.
- Database migration which essentially takes anywhere between 2-3 weeks was significantly reduced by CloudHedge’s team in 2days by automating the process without a schema and data loss.
By Containerizing the application, the following benefits were derived:
- 1/4th reduction in the infrastructure costs with the introduction of containers and Kubernetes
Ability to spin up new environments (QA/Staging, etc.)
- Seamless integration with the existing CI/CD automation
- Ability to spin up new environments in minutes vs days in the earlier process
Maintenance and Upgrades
- Zero downtime and maintenance costs for platform upgrades and patching due to managed Kubernetes services from the cloud provider
Ability to autoscale application workloads
- Manual and vertical scaling which used to take days and downtime is now reduced to 0 downtime and autoscaled by detecting an increase in a load of the system
- Ability to distribute different services on containers instead of increasing number of VMs thereby reducing the infrastructure by 1/4th
Enhanced Monitoring and alerting systems
- Native integrations with cloud service provider monitoring and alerting systems