Coursera and AWS!!!!

Anirudh Bambhania
3 min readSep 21, 2020

All you need to know.

Coursera is an educational technology company with a mission to provide universal access to the world’s best curricula. The company partners with top universities and organizations worldwide to offer online courses for anyone to take, for free. Coursera has more than 13 million users from 190 countries enrolled and offers more than 1,000 courses from 119 institutions, everything from Programming in Python to Songwriting.To host its website and support its rapidly expanding business, Coursera relies heavily on Amazon Web Services (AWS).

The Challenge

  • Coursera had a large monolithic application for processing batch jobs that was difficult to run, deploy, and scale.
  • A new thread was created whenever a new job needed to be completed, and each job took up different amounts of memory and CPU, continually creating inefficiencies.
  • A lack of resource isolation allowed memory-limit errors to bring down the entire application.
  • The infrastructure engineering team attempted to move to a microservices architecture using Docker containers, but they ran into problems as they tried to use Apache Mesos to manage the cluster and containers — Mesos was complicated to set up and Coursera didn’t have the expertise or time required to manage a Mesos cluster.

Why Amazon Web Services

  • Docker containers on Amazon EC2 Container Service (ECS) enabled Coursera to easily move to a microservices -based architecture.
  • Each job is created as a container and Amazon ECS schedules the container across the Amazon EC2 instance cluster.
  • Amazon ECS handles all the cluster management and container orchestration, and containers provide the necessary resource isolation.
  • Coursera chose to use AWS CodeBuild to build its JavaScript applications because it wanted a managed build service that could scale automatically and process multiple builds concurrently.
  • The company also started using Amazon EC2 Container Service (Amazon ECS) to deploy its JavaScript — and then used AWS CodeBuild to automate this step as well.
  • “With AWS CodeBuild, our application build now takes about 10 minutes; using Jenkins it used to take up to an hour,” says Kane. “To get the same performance on Jenkins would cost four times as much because we would need to spin up 50 Jenkins instances to have the builds finish that quickly.”

The Benefits of AWS

  • Ease of use: Because Amazon ECS setup is straightforward and it manages all of the details of the cluster, the team had a prototype up and running in under two months.
  • Speed and agility: Time to deploy software changes went from hours to minutes, and each team can now develop and update its respective applications independently because the applications are resource isolated with no cross-dependencies.
  • Scalable capacity: Auto Scaling groups allow the compute capacity to scale up to handle dynamic job loads.
  • Operational efficiency: No extra infrastructure engineering time is spent installing software and maintaining a cluster — Amazon ECS handles everything from cluster management to container orchestration.
  • On average, the company runs 300–500 builds each day using AWS CodeBuild, and because the service scales continuously and processes multiple builds in parallel, builds are not left waiting in queue.

__________________________________________________________________

#aws #awscloud #awscsa #arthbylw #vimaldaga #righteducation #educationredefine #rightmentor#worldrecordholder #ARTH #linuxworld #makingindiafutureready #righeudcation

--

--