SlideShare a Scribd company logo
Scaling Open edX
with Kubernetes
DevOpsDays Boston
9.15.2015
Who we are
Nate Aune
Morgan Robertson
What we’ll cover
● Background -- Open edX
● Introducing Kubernetes
● Kubernetes concepts
● Scaling + resiliency
● Open edX on Kubernetes
Open edX background
● edX: non-profit founded by MIT and Harvard
● 500+ courses, 5M students learning on edX.org
● edX released Open edX in June 2013
● Stanford, MongoDB, Salesforce, Google, Microsoft,
McKinsey, Johnson & Johnson, Smithsonian
Open edX - a catalyst for innovation
212 Contributors
One of the fastest
growing open
source projects on
Github
Technical components
LMS/CMS (Django/Python)
Forum (Sinatra/Ruby)
User DB (MySQL)
Course DB (Mongo)
Tasks (Celery/RabbitMQ)
Caching (Memcache)
Proxy (Nginx)
Search (ElasticSearch)
Mapreduce (Hadoop)
Hosting infrastructure
S3 for serving:
● static assets
● grade downloads
● certificate downloads
● videos (for mobile)
● Load balancer
● Application server(s)
● Database server(s)
● Search server
● Utility server (tasks)
● Caching server
● Hadoop cluster
Typical scalable deployment of Open edX on AWS
Introducing Kubernetes
● Scheduling + orchestration layer for
containerized applications
● Abstracts your infrastructure
● Open source project by Google
● Production-ready as of July 2015
Kubernetes architecture
Kubernetes vs. the Docker triad
Kubernetes Swarm Compose Machine
Scheduling ✔ ✔
Service discovery ✔ ✅
Container scaling ✔ ✔
Machine provisioning ✅ ✔
Health checking ✔
Secret management ✔
Production-ready ✔
Kubernetes core concepts
● Pods
● Services
● Replication controllers
Pods
● Group of containers + volumes scheduled together
● Smallest deployable unit
● Containers share certain resources including network
stack
Services
Services
● Endpoint for a set of pods
● IP address, port, and label selectors
● Use round-robin routing to direct traffic to backend
pods
Services + Pods
Replication Controllers
● Manage pod lifecycles for a number of replicas
● Provide scaling + fault tolerance
● Use label selectors
Pods + Services + Replication Controllers
Scaling with Kubernetes
● Replication controllers scale pods
● Services provide a single endpoint for a group of
pods
● The Kubernetes master schedules pods across nodes
Resiliency with Kubernetes
● Replication controllers ensure a number of pods are
running
● Services provide load balancing
● Health checks allow bad pods to be ignored/removed
Open edX on Kubernetes
● Goals:
○ Multi-tenant
○ Scalable + resilient
The challenge
Architecture
Monitoring with Sysdig
Sysdig drill-down
Lessons learned
● Containers should be stateless
● Put initialization tasks into separate pods that run
once
● Services can be used to abstract non-containerized
components
Conclusion
● We’re still learning, but..
○ Kubernetes is a promising technology for
providing both scalability and resiliency
More info
Open edX - http://open.edx.org
Kubernetes - http://kubernetes.io
Google Container Engine - http://cloud.
google.com/container-engine
Thank you for your time!
Questions?
Slides: http://bit.ly/open-edx-kubernetes
nate@appsembler.com
morgan@appsembler.com
@appsembler

More Related Content

What's hot

What's hot (20)

Aws Developer Associate Overview
Aws Developer Associate OverviewAws Developer Associate Overview
Aws Developer Associate Overview
 
Docker Advanced registry usage
Docker Advanced registry usageDocker Advanced registry usage
Docker Advanced registry usage
 
SRE From Scratch
SRE From ScratchSRE From Scratch
SRE From Scratch
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes Workshop
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)
 
Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0
 
Introduction to Kubernetes with demo
Introduction to Kubernetes with demoIntroduction to Kubernetes with demo
Introduction to Kubernetes with demo
 
DevOps
DevOps DevOps
DevOps
 
Kubernetes 101 - A Cluster Operating System
Kubernetes 101 - A Cluster Operating SystemKubernetes 101 - A Cluster Operating System
Kubernetes 101 - A Cluster Operating System
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Kubernetes #2 monitoring
Kubernetes #2   monitoring Kubernetes #2   monitoring
Kubernetes #2 monitoring
 
Protecting Your Data in AWS
Protecting Your Data in AWSProtecting Your Data in AWS
Protecting Your Data in AWS
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 intro
 
Site Reliability Engineering: An Enterprise Adoption Story (an ITSM Academy W...
Site Reliability Engineering: An Enterprise Adoption Story (an ITSM Academy W...Site Reliability Engineering: An Enterprise Adoption Story (an ITSM Academy W...
Site Reliability Engineering: An Enterprise Adoption Story (an ITSM Academy W...
 
Spring Framework Petclinic sample application
Spring Framework Petclinic sample applicationSpring Framework Petclinic sample application
Spring Framework Petclinic sample application
 
Site reliability engineering - Lightning Talk
Site reliability engineering - Lightning TalkSite reliability engineering - Lightning Talk
Site reliability engineering - Lightning Talk
 
Machine Learning Operations & Azure
Machine Learning Operations & AzureMachine Learning Operations & Azure
Machine Learning Operations & Azure
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
 
Site Reliability Engineering (SRE) - Tech Talk by Keet Sugathadasa
Site Reliability Engineering (SRE) - Tech Talk by Keet SugathadasaSite Reliability Engineering (SRE) - Tech Talk by Keet Sugathadasa
Site Reliability Engineering (SRE) - Tech Talk by Keet Sugathadasa
 

Viewers also liked

Viewers also liked (20)

A Survey of XBlocks for extending Open edX
A Survey of XBlocks for extending Open edXA Survey of XBlocks for extending Open edX
A Survey of XBlocks for extending Open edX
 
Open edX & Interoperability: Making Open edX play nicely with others
Open edX & Interoperability: Making Open edX play nicely with othersOpen edX & Interoperability: Making Open edX play nicely with others
Open edX & Interoperability: Making Open edX play nicely with others
 
PyCon talk: Deploy Python apps in 5 min with a PaaS
PyCon talk: Deploy Python apps in 5 min with a PaaSPyCon talk: Deploy Python apps in 5 min with a PaaS
PyCon talk: Deploy Python apps in 5 min with a PaaS
 
What's new: Open edX Dogwood release
What's new: Open edX Dogwood releaseWhat's new: Open edX Dogwood release
What's new: Open edX Dogwood release
 
Open edX Conference 2016 Review
Open edX Conference 2016 ReviewOpen edX Conference 2016 Review
Open edX Conference 2016 Review
 
Open edX for Corporate Learning - Open edX Conference 2016
Open edX for Corporate Learning - Open edX Conference 2016Open edX for Corporate Learning - Open edX Conference 2016
Open edX for Corporate Learning - Open edX Conference 2016
 
KubeCon EU 2016: Scaling Open edX with Kubernetes
KubeCon EU 2016: Scaling Open edX with KubernetesKubeCon EU 2016: Scaling Open edX with Kubernetes
KubeCon EU 2016: Scaling Open edX with Kubernetes
 
Open edx 통합테스트 보고서
Open edx 통합테스트 보고서Open edx 통합테스트 보고서
Open edx 통합테스트 보고서
 
Lightweight continuous delivery for small schools
Lightweight continuous delivery for small schoolsLightweight continuous delivery for small schools
Lightweight continuous delivery for small schools
 
Richards Erfahrungen mit Odoo
Richards Erfahrungen mit OdooRichards Erfahrungen mit Odoo
Richards Erfahrungen mit Odoo
 
Continuous Integration: Improving Quality in Moodle
Continuous Integration: Improving Quality in Moodle Continuous Integration: Improving Quality in Moodle
Continuous Integration: Improving Quality in Moodle
 
Django deployment with PaaS
Django deployment with PaaSDjango deployment with PaaS
Django deployment with PaaS
 
TEDMED Breakaway Forum 2013 Talk
TEDMED Breakaway Forum 2013 TalkTEDMED Breakaway Forum 2013 Talk
TEDMED Breakaway Forum 2013 Talk
 
Augmented Social Cognition for Consumer Health and Wellness
Augmented Social Cognition for Consumer Health and WellnessAugmented Social Cognition for Consumer Health and Wellness
Augmented Social Cognition for Consumer Health and Wellness
 
Amplify Keynote 2013
Amplify Keynote 2013Amplify Keynote 2013
Amplify Keynote 2013
 
Testing Moodle functionality automatically
Testing Moodle functionality automaticallyTesting Moodle functionality automatically
Testing Moodle functionality automatically
 
A basic introduction to the Moodle architecture
A basic introduction to the Moodle architectureA basic introduction to the Moodle architecture
A basic introduction to the Moodle architecture
 
Containers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. KubernetesContainers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. Kubernetes
 
R for Everything
R for EverythingR for Everything
R for Everything
 
Improving Data Interoperability for Python and R
Improving Data Interoperability for Python and RImproving Data Interoperability for Python and R
Improving Data Interoperability for Python and R
 

Similar to Scaling Open edX with Kubernetes

Kubernetes for Beginners
Kubernetes for BeginnersKubernetes for Beginners
Kubernetes for Beginners
DigitalOcean
 

Similar to Scaling Open edX with Kubernetes (20)

Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016
 
Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Kubernetes is all you need
Kubernetes is all you needKubernetes is all you need
Kubernetes is all you need
 
Hello, Docker!
Hello, Docker!Hello, Docker!
Hello, Docker!
 
GCCP JSCOE Session 2
GCCP JSCOE Session 2GCCP JSCOE Session 2
GCCP JSCOE Session 2
 
introduction to micro services
introduction to micro servicesintroduction to micro services
introduction to micro services
 
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
 
Kubernetes and Hybrid Deployments
Kubernetes and Hybrid DeploymentsKubernetes and Hybrid Deployments
Kubernetes and Hybrid Deployments
 
Kubernetes for Beginners
Kubernetes for BeginnersKubernetes for Beginners
Kubernetes for Beginners
 
Kubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersKubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containers
 
Cloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps ApproachCloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps Approach
 
From development to production: Deploying Java and Scala apps to kubernetes
From development to production: Deploying Java and Scala apps to kubernetesFrom development to production: Deploying Java and Scala apps to kubernetes
From development to production: Deploying Java and Scala apps to kubernetes
 
Craig Box (Google) - The road to Kubernetes 1.0
Craig Box (Google) - The road to Kubernetes 1.0Craig Box (Google) - The road to Kubernetes 1.0
Craig Box (Google) - The road to Kubernetes 1.0
 
Kubernetes – An open platform for container orchestration
Kubernetes – An open platform for container orchestrationKubernetes – An open platform for container orchestration
Kubernetes – An open platform for container orchestration
 
Kuberenetes - From Zero to Hero
Kuberenetes  - From Zero to HeroKuberenetes  - From Zero to Hero
Kuberenetes - From Zero to Hero
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
 
How Kubernetes helps Devops
How Kubernetes helps DevopsHow Kubernetes helps Devops
How Kubernetes helps Devops
 
Netflix Titus WASP October 2017
Netflix Titus WASP October 2017Netflix Titus WASP October 2017
Netflix Titus WASP October 2017
 
Kubernetes design principles, patterns and ecosystem
Kubernetes design principles, patterns and ecosystemKubernetes design principles, patterns and ecosystem
Kubernetes design principles, patterns and ecosystem
 

Recently uploaded

Recently uploaded (20)

GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 

Scaling Open edX with Kubernetes

  • 1. Scaling Open edX with Kubernetes DevOpsDays Boston 9.15.2015
  • 2. Who we are Nate Aune Morgan Robertson
  • 3. What we’ll cover ● Background -- Open edX ● Introducing Kubernetes ● Kubernetes concepts ● Scaling + resiliency ● Open edX on Kubernetes
  • 4. Open edX background ● edX: non-profit founded by MIT and Harvard ● 500+ courses, 5M students learning on edX.org ● edX released Open edX in June 2013 ● Stanford, MongoDB, Salesforce, Google, Microsoft, McKinsey, Johnson & Johnson, Smithsonian
  • 5. Open edX - a catalyst for innovation 212 Contributors One of the fastest growing open source projects on Github
  • 6. Technical components LMS/CMS (Django/Python) Forum (Sinatra/Ruby) User DB (MySQL) Course DB (Mongo) Tasks (Celery/RabbitMQ) Caching (Memcache) Proxy (Nginx) Search (ElasticSearch) Mapreduce (Hadoop)
  • 7. Hosting infrastructure S3 for serving: ● static assets ● grade downloads ● certificate downloads ● videos (for mobile) ● Load balancer ● Application server(s) ● Database server(s) ● Search server ● Utility server (tasks) ● Caching server ● Hadoop cluster
  • 8. Typical scalable deployment of Open edX on AWS
  • 9. Introducing Kubernetes ● Scheduling + orchestration layer for containerized applications ● Abstracts your infrastructure ● Open source project by Google ● Production-ready as of July 2015
  • 11. Kubernetes vs. the Docker triad Kubernetes Swarm Compose Machine Scheduling ✔ ✔ Service discovery ✔ ✅ Container scaling ✔ ✔ Machine provisioning ✅ ✔ Health checking ✔ Secret management ✔ Production-ready ✔
  • 12. Kubernetes core concepts ● Pods ● Services ● Replication controllers
  • 13. Pods ● Group of containers + volumes scheduled together ● Smallest deployable unit ● Containers share certain resources including network stack
  • 15. Services ● Endpoint for a set of pods ● IP address, port, and label selectors ● Use round-robin routing to direct traffic to backend pods
  • 17. Replication Controllers ● Manage pod lifecycles for a number of replicas ● Provide scaling + fault tolerance ● Use label selectors
  • 18. Pods + Services + Replication Controllers
  • 19. Scaling with Kubernetes ● Replication controllers scale pods ● Services provide a single endpoint for a group of pods ● The Kubernetes master schedules pods across nodes
  • 20. Resiliency with Kubernetes ● Replication controllers ensure a number of pods are running ● Services provide load balancing ● Health checks allow bad pods to be ignored/removed
  • 21. Open edX on Kubernetes ● Goals: ○ Multi-tenant ○ Scalable + resilient
  • 26. Lessons learned ● Containers should be stateless ● Put initialization tasks into separate pods that run once ● Services can be used to abstract non-containerized components
  • 27. Conclusion ● We’re still learning, but.. ○ Kubernetes is a promising technology for providing both scalability and resiliency
  • 28. More info Open edX - http://open.edx.org Kubernetes - http://kubernetes.io Google Container Engine - http://cloud. google.com/container-engine
  • 29. Thank you for your time! Questions? Slides: http://bit.ly/open-edx-kubernetes nate@appsembler.com morgan@appsembler.com @appsembler