GOLS eLearning setup on AWS

ABOUT GOLS 
The pioneer and innovator of eLearning in India, GurukulOnline Learning Solutions™ (GOLS) is today, a leader in this realm. GOLS develop specialised solutions for corporate houses, educational institutions, and retail students (B2C – Students) in numerous spheres – synchronous and asynchronous learning, high-end strategy consulting, deployed blended learning, and customised content development, cutting-edge web collaboration and more.



THE CHALLENGE
The client wanted to migrate to AWS infrastructure as they were not able to scale with physical servers. Also sizing the right resources was a challenge with the growth demands of the E-learning business.

Also without a version control system for code development and growing team size resulted in long release and bug fixing cycles. Production deployment was a manual process which sometimes caused downtime whenever there is a new release to be pushed to production. Due to these challenges, they were keen on having a full-fledged automated process to run the whole cycle of integration, deployment, testing etc.

Since every engineering team worked on their code locally, they faced a challenge to setup up their own Environment identical to production to run test cases.



DEPLOYMENT LAPSES
Since there was no version control, the code development process was already challenging with multiple people working on the same codebase. This led to increased development time, release cycles, and bug fixing cycles.

Also, the deployment was a manual process with a development team given access to the production servers and database. This led to a high risk of pushing untested code with no control over ownership.



PROPOSED ARCHITECTURE



INSIGHT ACTION

Techpartner team provided cloud consulting service for migration and developing a CI/CD environment.

Manual deployment was replaced by CI/CD tools in combination.

We designed the custom deployment Jobs for Client Developers by using which they can setup up their own working environment in a few minutes which hold the production masked data for testing.



SECURITY BEST PRACTICES
We designed the AWS architecture and implemented the best security practices as per AWS standards.

● IAM Role to instance for S3 access

● IAM User for AWS Console access with MFA enabled with restricted policy access

● Password policy across entire Infra (Web & DB) as well as in IAM

● DB access (authentication and authorisation) over VPN only and to web instances only

● Accept HTTP and HTTPS Port and SSH for client office IP, nothing is publicly open

● Apart from implementing AWS security best practices, we also implemented security control in webserver to protect from XSS and usage for i-frames



DEPLOYMENT AUTOMATION
We have introduced for client’s Dev team for version control system like git. With the version control system, development of code, bug fixes and release cycle have greatly improved.

Deployment is automated for TEST environment and for Production. This has been achieved by configuring the Automation tools like Jenkins. Once the deployment is successful on TEST environment and ready to push to production Jenkin is configured to schedule the deployment job which automatically push the build to production server.



THE BENEFITS
● Cloud Architecture: With moving to AWS’s Cloud architecture, the client is now able scale and right size infrastructure easily which help them to serve their clients with improved response time. This results in acquiring more clients.

● Performance: With AWS’s scalable and elastic infrastructure, performance of e-learning provider has improved with good response time.

● Automation: Automation reduced the manual deployment time and removed downtime on production.

● Innovation: Team was able to concentrate more on development and core competency rather than working on infrastructure issues and production issues due to bad manual deployment.



AWS STACK
For success of project Techpartner used the below mentioned AWS Services

● Amazon EC2 was used for compute with combination of on demand and reserved instance. Instances are pre-baked and were configured to spin up automatically during load.

● Amazon S3 was used to store mainly for the content videos and files which need to be accessible across the instance.

● AWS CloudTrail was used to keep track the activity across the AWS Environment.

● AWS Inspector was used to check application and OS security and apply fixes as recommended.

● AWS Config was used to track changes for AWS resources and also to alert with resources that are not complaint as per defined rules.

● AWS Identity and Access Management (IAM) was used to provide AWS resources access as per company’s policy. Also wherever possible IAM roles were used to provide access to AWS resources as per IAM’s best practices.

● AWS Lambda is used to take automated AMI backup and delete them after X number of days. It is also used to schedule start and stop of development of TEST environment during non-production hours.



For more, visit www.techpartner.in or contact us at info@techpartner.in.