Learners India is an innovative Digital School from Riveron. By allowing teachers to monitor students during online classes, lessons can be tailored to children in real-time. This personalization creates an ‘Ultimate Learning Experience’ for children to learn at their own pace.
Their e-learning platform offers a multitude of mathematical concepts, real world applications, synchronized 3D modelled videos and games, simplified self-study materials, analytical tests and interaction with experts. Learners India gives every child an excellent platform with all the information they need to succeed.
Challenge
They did not have a version controlled source code repository system, rollbacks were time consuming and manual. Learners India’s limited manual monitoring system prevented them from proactively addressing and troubleshooting issues.
They did not have a repeatable pattern for building infrastructure. They were deploying applications manually causing delays and downtime. No staging environment meant teams were deploying new versions of applications directly onto the production environment, which caused production outages.
Their existing infrastructure setup had a single point of failure. It was not scalable – so in periods of high traffic they had frequent production outages.
Because Learners India had limited capability in their team to maintain a database management system, they had to rely on database administrators outside their team. The database they had wasn’t highly available.
Learners India approached Builder.ai to work with them to improve the technical hygiene and their release frequency and processes.
Solution
Our team of DevOps experts worked with Learners India to review the current landscape of their application, infrastructure and teams. Then we created a roadmap for the customer to adopt DevOps practices to address their challenges.
We helped restructure their existing infrastructure on AWS with the best practices like High Availability and IaaC. We also helped reduce the operational overhead and dependency on external teams by moving to managed services on AWS for databases and implementing automated CI/CD pipeline for deployment.
Solution architecture
Our team restructured their setup, in line with dev-ops best practices:
- Set up a CI/CD pipeline using Builder Code Platform.
Refactored their monolith setup into a 3 tier architecture model - Web Tier, App Tier & Database Tier. - Configured VPC with Multi-AZ Architecture allowing for network isolation and High Availability [Public & Private Subnet].
- NAT Gateway now configured in Each AZ.
- Database-RDS Instances now configured in the Multi-AZ Environment avoiding operational overhead of self-managed DB.
- Enabled Auto Scaling across the tiers to allow the infrastructure to be elastic and meet the demand.
- CDN has been enabled using Cloud front. Static Content saved in S3 Bucket.
- AWS CloudTrail, CloudWatch, Config services have been enabled for better visibility and tracking.
- AWS SNS have been configured for alert notification on Cloud watch alarms.
- AWS KMS has been configured for encryption.
- AWS Cloud Formation has been used for Infrastructure as a Code.
Now Learners India are using Builder Code Platform on AWS for their source code repository system.
Developers maintain version control of their source code. They follow the DevOps CI/CD model for current setup.
Here’s how it works:
- Developers work on features and fixes on branches.
- When they push an update onto a branch, tests are run automatically.
- Once the engineer is satisfied their work is ready to be deployed, they create a Merge Request (MR).
- This MR is reviewed by another engineer, who gives feedback or accepts the change.
- Accepted changes are merged into the master release – tests are run again and a version number is created.
- Now the release is automatically deployed onto a staging environment.
- Additional testing happens (may also include user acceptance testing - where software is tested by its intended users to make sure they’re happy with how it’s working).
- When it’s ready to go live, the version is flagged for a production release.
- This final step triggers the deployment of the release into production.
Results
What benefits did Learners India enjoy after we restructured their setup in AWS Cloud?
- Their setup is now scalable enough to handle any sudden increase of workloads – resulting in a better user experience for their students.
- New setup is H/A enabled so even if one AZ fails, they’ll still have access to it. This will reduce production downtime.
- The entire infrastructure is now defined in code using cloud formation, which lets Learners India quickly set up staging environments for RCA and testing.
- CloudWatch logs, metrics and alarms now provide better observability into their overall application.
- Customers get notified when alerts are raised.
- Their code is now version controlled. So if they need to do a rollback, they can – reducing outage of the production system.
- Before deploying to production, they test their code in a staging environment – this helps error correction in the staging environment.
- Using RDS database instances means their team no longer has to do database maintenance tasks. And they can focus on business applications.
Tools we used
AWS
- EC2 Instance
- RDS
- Route53,
- CDN
- AWS S3
- ALB
- Cloud Trail
- AWS Config
- CloudWatch
- SNS
- AWS KMS
- AWS Cloud Formation
Third-party
- GitLab
About us
At Builder.ai, we make building and running software so easy anyone can do it.