SlideShare a Scribd company logo
1 of 76
IGUAZÚ 
A Job Scheduler Using Mesos and Docker 
Colleen Lee 
Software Engineer
"COURSERA" IN 2011
"COURSERA" IN 2011
! 
! 
! 
! 
"COURSERA" IN 2011 
! 
• Work to be done: gradebook exports, regrading 
quizzes, sending batch emails, encoding videos, etc.
CASCADE
Cascade: Lifecycle of a Job
HOW DOES CASCADE 
WORK? 
Client
HOW DOES CASCADE 
Job data 
Client 
SQS 
Database 
Job information 
WORK?
HOW DOES CASCADE 
Client 
WORK? 
SQS 
Worker Worker 
Cascade 
Database
HOW DOES CASCADE 
Client 
WORK? 
SQS 
Worker Worker 
Cascade 
New job 
Database 
Poll
HOW DOES CASCADE 
Client 
WORK? 
SQS 
Worker Worker 
Running... 
Cascade 
Status information 
Database
HOW DOES CASCADE 
Client 
SQS 
Worker Worker 
Cascade 
No new jobs! 
Database 
Poll 
Zzz... 
WORK?
HOW DOES CASCADE 
Client 
WORK? 
SQS 
Worker Worker 
Cascade 
Status? 
Job status 
Database
HOW DOES CASCADE 
Client 
WORK? 
SQS 
Worker Worker 
Cascade 
Job is done! 
Database
LACK OF ISOLATION 
Worker 2 
Worker 1 Worker 2 
Cascade 
Worker 
1 
CPUs 
Memory 
Worker 
2 
Worker 1
LACK OF ISOLATION 
Worker 
1 Worker 
Worker 2 
Worker 1 Worker 2 
Cascade 
2 
Worker 1 
CPUs Memory
FRAGILE DEPLOYMENT FLOW
FRAGILE DEPLOYMENT FLOW 
System 
code vs. Job 
code
FRAGILE DEPLOYMENT FLOW 
System 
code vs. Job 
code 
Rarely updated Updated all the time
FRAGILE DEPLOYMENT FLOW 
System 
code vs. Job 
code 
Rarely updated Updated all the time 
Unique system no deploy tooling
FRAGILE DEPLOYMENT FLOW 
Worker 
Poll for job... 
Run job... 
Poll for job... 
Run job... 
Update job code???
FRAGILE DEPLOYMENT FLOW 
Worker 
Poll for job... 
Run job... 
Poll for job... 
Run job... 
Update job code!
FRAGILE DEPLOYMENT FLOW 
Worker 
Poll for job... 
Run job... 
Poll for job... 
Run job... 
Update job code! 
Worker 
(new code) 
Poll for job... 
Run job... 
Poll for job... 
Run job...
FRAGILE DEPLOYMENT FLOW 
Worker 
Poll for job... 
Run job... 
Poll for job... 
Run job... 
Update job code! 
Worker 
(new code) 
Poll for job... 
Run job... 
Poll for job... 
Run job...
FRAGILE DEPLOYMENT FLOW 
Worker 
Poll for job... 
Run job... 
Poll for job... 
Run job... 
Update job code! 
Worker 
(new code) 
Poll for job... 
Run job... 
Poll for job... 
Run job... 
Worker Worker Worker 
Cascade 
Worker Worker Worker 
Cascade 
Worker Worker Worker 
Cascade
POOR DEVELOPMENT STORY
POOR DEVELOPMENT STORY 
Client 
SQS 
Worker Worker 
Cascade 
Database
POOR DEVELOPMENT STORY 
Dev 1 
Client 
SQS 
Worker 
Cascade 
DB
POOR DEVELOPMENT STORY 
Dev 1 
Client 
SQS 
Worker 
Cascade 
DB 
Client Worker 
Dev 2 
Cascade 
DB
POOR DEVELOPMENT STORY 
Job data Poll 
Dev 1 
Client 
SQS 
Worker 
Cascade 
DB 
New job 
Client Worker 
Dev 2 
Cascade 
DB 
Where'd my 
job go? 
What is 
this job?
CASCADE HAS ... SOME ISSUES 
• Lack of isolation 
• Fragile deployment flow 
• Poor development story
CASCADE HAS ... SOME ISSUES 
• Lack of isolation 
• Fragile deployment flow 
• Poor development story 
• Tied exclusively to one language
CASCADE HAS ... SOME ISSUES 
• Lack of isolation 
• Fragile deployment flow 
• Poor development story 
• Tied exclusively to one language 
Cascade-Scala? Cascade-Python?
CASCADE HAS ... SOME ISSUES 
• Lack of isolation 
• Fragile deployment flow 
• Poor development story 
• Tied exclusively to one language 
Cascade-Scala? Cascade-Python? Duplicating work: BAD 
Static partitioning: BAD
2014: CASCADE V2??
2014: CASCADE V2??
2014: CASCADE V2?? 
DATABASE MIGRATIONS!! 
SCHEDULED JOBS!! 
PROGRAMMING ASSIGNMENTS!
2014: CASCADE V2??
IGUAZÚ!
IGUAZÚ!
• Resource isolation: cgroups 
! 
! 
! 
! 
!
• Resource isolation: cgroups 
• Master(s) has/have "soft state" 
• Coordination AND robustness 
! 
! 
!
• Resource isolation: cgroups 
• Master(s) has/have "soft state" 
• Coordination AND robustness 
• Implementation: 
• Scheduler: accepts and manages resources 
• Executor: process launched on slaves to run 
tasks
• Lightweight, but provides abstraction of a VM
• Lightweight, but provides abstraction of VM 
• Dockerfiles: self-documenting!
• Lightweight, but provides abstraction of VM 
• Dockerfiles: self-documenting!
• Lightweight, but provides abstraction of VM 
• Dockerfiles: self-documenting! 
• Private Docker registry: convenience, versioning
• Lightweight, but provides abstraction of VM 
• Dockerfiles: self-documenting! 
• Private Docker registry: convenience, versioning 
• Usage: specify the image and specify a command
Iguazú: Lifecycle of a Job
HOW DOES IGUAZÚ WORK? 
Client
HOW DOES IGUAZÚ WORK? 
Client 
SQS 
Iguazú 
Job data 
Production mode 
Job id 
Database 
Job 
information
HOW DOES IGUAZÚ WORK? 
Client 
In-memory 
Iguazú 
Job data 
Development mode 
Job id 
Database 
Job 
information
HOW DOES IGUAZÚ WORK? 
Client 
SQS 
Poll 
Manager 
Iguazú 
Database
HOW DOES IGUAZÚ WORK? 
Client 
SQS 
Job data 
Manager 
Scheduler 
Iguazú 
Database
HOW DOES IGUAZÚ WORK? 
Master(s) 
Client 
SQS 
Manager 
Scheduler 
Iguazú 
Database 
Slave 
Slave
HOW DOES IGUAZÚ WORK? 
Master(s) 
Client 
SQS 
Manager 
Scheduler 
Iguazú 
Database 
Slave 
Executor 
Slave
HOW DOES IGUAZÚ WORK? 
Master(s) 
Client 
SQS 
Manager 
Scheduler 
Iguazú 
Database 
Slave 
Executor 
registry 
Check for 
Slave new image
HOW DOES IGUAZÚ WORK? 
Master(s) 
Client 
SQS 
Manager 
Scheduler 
Iguazú 
Database 
Slave 
Executor 
registry 
Status updates 
Slave
HOW DOES IGUAZÚ WORK? 
Master(s) 
Client 
SQS 
Manager 
Scheduler 
Iguazú 
Database 
TASSKla_vFeINISHED 
Executor 
registry 
Status updates 
Slave
HOW DOES IGUAZÚ WORK? 
All done! TASSKla_vFeINISHED 
Master(s) 
Client 
SQS 
Manager 
Scheduler 
Iguazú 
Database 
Executor 
registry 
Status updates 
Slave
HOW DOES IGUAZÚ WORK? 
All done! TASSKla_vFeINISHED 
Master(s) 
Client 
SQS 
Manager 
Scheduler 
Iguazú 
Database 
Executor 
registry 
Status updates 
Slave 
OK!
HOW DOES IGUAZÚ WORK? 
Master(s) 
Client 
SQS 
Manager 
Scheduler 
Iguazú 
Database 
Slave 
Executor 
registry 
Job is done! 
Slave 
Status? Job status
REMEMBER CASCADE'S 
PROBLEMS? 
• Lack of isolation 
• Fragile deployment flow 
• Poor development story 
• Tied exclusively to one language
REMEMBER CASCADE'S 
PROBLEMS? 
Mesos: cgroups! 
• Isolation! 
• Fragile deployment flow 
• Poor development story 
• Tied exclusively to one language
REMEMBER CASCADE'S 
PROBLEMS? 
• Isolation! 
• Easy deployment flow 
• Poor development story 
• Tied exclusively to one language 
Private Docker repo
REMEMBER CASCADE'S 
PROBLEMS? 
• Isolation! 
• Easy deployment flow 
• Consistent development story 
• Tied exclusively to one language 
Iguazú: 
proper abstractions
REMEMBER CASCADE'S 
PROBLEMS? 
• Isolation! 
• Easy deployment flow 
• Consistent development story 
• Any language No restrictions
OTHER BENEFITS
OTHER BENEFITS 
• Ease of transition 
! 
! 
! 
! 
Mesos: job management 
Docker: job packaging
OTHER BENEFITS 
• Ease of transition 
• Performance 
! 
! 
! 
Mesos: long-running! 
PHP: blaaargh
OTHER BENEFITS 
• Ease of transition 
• Performance 
• Flexibility 
! 
! 
Use Docker, run Scala code, etc.
OTHER BENEFITS 
• Ease of transition 
• Performance 
• Flexibility 
• Fine-grained control over scheduling 
! 
Autoscaling!
OTHER BENEFITS 
• Ease of transition 
• Performance 
• Flexibility 
• Fine-grained control over scheduling 
• Designed to work on a heterogeneous pool of 
resources Security :)
THANKS! QUESTIONS? 
! 
We are hiring! See http://coursera.org/jobs 
! 
@firejade0 
clee@coursera.org

More Related Content

What's hot

AWS Webcast - AWS OpsWorks Continuous Integration Demo
AWS Webcast - AWS OpsWorks Continuous Integration Demo  AWS Webcast - AWS OpsWorks Continuous Integration Demo
AWS Webcast - AWS OpsWorks Continuous Integration Demo Amazon Web Services
 
(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at Scale(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at ScaleAmazon Web Services
 
(CMP406) Amazon ECS at Coursera: A general-purpose microservice
(CMP406) Amazon ECS at Coursera: A general-purpose microservice(CMP406) Amazon ECS at Coursera: A general-purpose microservice
(CMP406) Amazon ECS at Coursera: A general-purpose microserviceAmazon Web Services
 
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with ContainersAmazon Web Services
 
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeployAmazon Web Services
 
(DVO202) DevOps at Amazon: A Look At Our Tools & Processes
(DVO202) DevOps at Amazon: A Look At Our Tools & Processes(DVO202) DevOps at Amazon: A Look At Our Tools & Processes
(DVO202) DevOps at Amazon: A Look At Our Tools & ProcessesAmazon Web Services
 
Continuous Delivery to Amazon ECS
Continuous Delivery to Amazon ECSContinuous Delivery to Amazon ECS
Continuous Delivery to Amazon ECSAmazon Web Services
 
Accelerating Innovation with DevOps on AWS
Accelerating Innovation with DevOps on AWSAccelerating Innovation with DevOps on AWS
Accelerating Innovation with DevOps on AWSAmazon Web Services
 
Continuous delivery and deployment on AWS
Continuous delivery and deployment on AWSContinuous delivery and deployment on AWS
Continuous delivery and deployment on AWSShiva Narayanaswamy
 
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...Amazon Web Services
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSAmazon Web Services
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...Amazon Web Services
 
Managing the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS LambdaManaging the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS LambdaAmazon Web Services
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldAmazon Web Services
 
AWS Lambda and Serverless framework: lessons learned while building a serverl...
AWS Lambda and Serverless framework: lessons learned while building a serverl...AWS Lambda and Serverless framework: lessons learned while building a serverl...
AWS Lambda and Serverless framework: lessons learned while building a serverl...Luciano Mammino
 
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014Amazon Web Services
 
CI/CD on AWS Deploy Everything All the Time
CI/CD on AWS Deploy Everything All the TimeCI/CD on AWS Deploy Everything All the Time
CI/CD on AWS Deploy Everything All the TimeAmazon Web Services
 
Running Containerised Applications at Scale on AWS
Running Containerised Applications at Scale on AWSRunning Containerised Applications at Scale on AWS
Running Containerised Applications at Scale on AWSAmazon Web Services
 
JUST EAT: Embracing DevOps
JUST EAT: Embracing DevOpsJUST EAT: Embracing DevOps
JUST EAT: Embracing DevOpsPeter Mounce
 

What's hot (20)

AWS Webcast - AWS OpsWorks Continuous Integration Demo
AWS Webcast - AWS OpsWorks Continuous Integration Demo  AWS Webcast - AWS OpsWorks Continuous Integration Demo
AWS Webcast - AWS OpsWorks Continuous Integration Demo
 
(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at Scale(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at Scale
 
(CMP406) Amazon ECS at Coursera: A general-purpose microservice
(CMP406) Amazon ECS at Coursera: A general-purpose microservice(CMP406) Amazon ECS at Coursera: A general-purpose microservice
(CMP406) Amazon ECS at Coursera: A general-purpose microservice
 
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
 
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
 
(DVO202) DevOps at Amazon: A Look At Our Tools & Processes
(DVO202) DevOps at Amazon: A Look At Our Tools & Processes(DVO202) DevOps at Amazon: A Look At Our Tools & Processes
(DVO202) DevOps at Amazon: A Look At Our Tools & Processes
 
Continuous Delivery to Amazon ECS
Continuous Delivery to Amazon ECSContinuous Delivery to Amazon ECS
Continuous Delivery to Amazon ECS
 
Accelerating Innovation with DevOps on AWS
Accelerating Innovation with DevOps on AWSAccelerating Innovation with DevOps on AWS
Accelerating Innovation with DevOps on AWS
 
Continuous delivery and deployment on AWS
Continuous delivery and deployment on AWSContinuous delivery and deployment on AWS
Continuous delivery and deployment on AWS
 
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
IaC on AWS Cloud
IaC on AWS CloudIaC on AWS Cloud
IaC on AWS Cloud
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
 
Managing the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS LambdaManaging the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS Lambda
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
 
AWS Lambda and Serverless framework: lessons learned while building a serverl...
AWS Lambda and Serverless framework: lessons learned while building a serverl...AWS Lambda and Serverless framework: lessons learned while building a serverl...
AWS Lambda and Serverless framework: lessons learned while building a serverl...
 
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
 
CI/CD on AWS Deploy Everything All the Time
CI/CD on AWS Deploy Everything All the TimeCI/CD on AWS Deploy Everything All the Time
CI/CD on AWS Deploy Everything All the Time
 
Running Containerised Applications at Scale on AWS
Running Containerised Applications at Scale on AWSRunning Containerised Applications at Scale on AWS
Running Containerised Applications at Scale on AWS
 
JUST EAT: Embracing DevOps
JUST EAT: Embracing DevOpsJUST EAT: Embracing DevOps
JUST EAT: Embracing DevOps
 

Viewers also liked

Scheduling Containers on Amazon ECS
Scheduling Containers on Amazon ECSScheduling Containers on Amazon ECS
Scheduling Containers on Amazon ECSAmazon Web Services
 
Scheduling Containers on Amazon ECS
Scheduling Containers on Amazon ECSScheduling Containers on Amazon ECS
Scheduling Containers on Amazon ECSAmazon Web Services
 
I Love APIs 2015: Scaling Mobile-focused Microservices at Verizon
I Love APIs 2015: Scaling Mobile-focused Microservices at VerizonI Love APIs 2015: Scaling Mobile-focused Microservices at Verizon
I Love APIs 2015: Scaling Mobile-focused Microservices at VerizonApigee | Google Cloud
 
Reactive Fault Tolerant Programming with Hystrix and RxJava
Reactive Fault Tolerant Programming with Hystrix and RxJavaReactive Fault Tolerant Programming with Hystrix and RxJava
Reactive Fault Tolerant Programming with Hystrix and RxJavaMatt Stine
 
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices Apigee | Google Cloud
 
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...TriNimbus
 
I Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at AmazonI Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at AmazonApigee | Google Cloud
 
Talks@Coursera - A/B Testing @ Internet Scale
Talks@Coursera - A/B Testing @ Internet ScaleTalks@Coursera - A/B Testing @ Internet Scale
Talks@Coursera - A/B Testing @ Internet Scalecourseratalks
 
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and HailoMicroservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailogjuljo
 

Viewers also liked (10)

Scheduling Containers on Amazon ECS
Scheduling Containers on Amazon ECSScheduling Containers on Amazon ECS
Scheduling Containers on Amazon ECS
 
Scheduling Containers on Amazon ECS
Scheduling Containers on Amazon ECSScheduling Containers on Amazon ECS
Scheduling Containers on Amazon ECS
 
I Love APIs 2015: Scaling Mobile-focused Microservices at Verizon
I Love APIs 2015: Scaling Mobile-focused Microservices at VerizonI Love APIs 2015: Scaling Mobile-focused Microservices at Verizon
I Love APIs 2015: Scaling Mobile-focused Microservices at Verizon
 
Reactive Fault Tolerant Programming with Hystrix and RxJava
Reactive Fault Tolerant Programming with Hystrix and RxJavaReactive Fault Tolerant Programming with Hystrix and RxJava
Reactive Fault Tolerant Programming with Hystrix and RxJava
 
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
 
Microservices at Netflix
Microservices at NetflixMicroservices at Netflix
Microservices at Netflix
 
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
 
I Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at AmazonI Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at Amazon
 
Talks@Coursera - A/B Testing @ Internet Scale
Talks@Coursera - A/B Testing @ Internet ScaleTalks@Coursera - A/B Testing @ Internet Scale
Talks@Coursera - A/B Testing @ Internet Scale
 
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and HailoMicroservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
 

Similar to Iguazú: A Long-Running Job Scheduler using Docker and Mesos

Why Architecture in Web Development matters
Why Architecture in Web Development mattersWhy Architecture in Web Development matters
Why Architecture in Web Development mattersLars Jankowfsky
 
Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)
Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)
Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)Evan Chan
 
Standardizing and Managing Your Infrastructure - MOSC 2011
Standardizing and Managing Your Infrastructure - MOSC 2011Standardizing and Managing Your Infrastructure - MOSC 2011
Standardizing and Managing Your Infrastructure - MOSC 2011Brian Ritchie
 
Solid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaSolid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaKazuhiro Sera
 
JavaScript: Past, Present, Future
JavaScript: Past, Present, FutureJavaScript: Past, Present, Future
JavaScript: Past, Present, FutureJungryul Choi
 
Solid and Sustainable Development in Scala
Solid and Sustainable Development in ScalaSolid and Sustainable Development in Scala
Solid and Sustainable Development in Scalascalaconfjp
 
Cassandra Day SV 2014: Spark, Shark, and Apache Cassandra
Cassandra Day SV 2014: Spark, Shark, and Apache CassandraCassandra Day SV 2014: Spark, Shark, and Apache Cassandra
Cassandra Day SV 2014: Spark, Shark, and Apache CassandraDataStax Academy
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's ArchitectureTony Tam
 
Continuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as CodeContinuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as CodeSascha Möllering
 
The JavaScript Delusion
The JavaScript DelusionThe JavaScript Delusion
The JavaScript DelusionJUGBD
 
Spark Summit 2014: Spark Job Server Talk
Spark Summit 2014:  Spark Job Server TalkSpark Summit 2014:  Spark Job Server Talk
Spark Summit 2014: Spark Job Server TalkEvan Chan
 
Scaling Drupal: Not IF... HOW
Scaling Drupal: Not IF... HOWScaling Drupal: Not IF... HOW
Scaling Drupal: Not IF... HOWTreehouse Agency
 
Android java fx-jme@jug-lugano
Android java fx-jme@jug-luganoAndroid java fx-jme@jug-lugano
Android java fx-jme@jug-luganoFabrizio Giudici
 
CliqueSquare processing
CliqueSquare processingCliqueSquare processing
CliqueSquare processingINRIA-OAK
 
Keep Calm and Use Kanban
Keep Calm and Use KanbanKeep Calm and Use Kanban
Keep Calm and Use KanbanAcquate
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteChristian Heilmann
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsRasheed Waraich
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodeKris Buytaert
 
Smart Client Development
Smart Client DevelopmentSmart Client Development
Smart Client DevelopmentTamir Khason
 
Using Apache Camel as AKKA
Using Apache Camel as AKKAUsing Apache Camel as AKKA
Using Apache Camel as AKKAJohan Edstrom
 

Similar to Iguazú: A Long-Running Job Scheduler using Docker and Mesos (20)

Why Architecture in Web Development matters
Why Architecture in Web Development mattersWhy Architecture in Web Development matters
Why Architecture in Web Development matters
 
Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)
Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)
Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)
 
Standardizing and Managing Your Infrastructure - MOSC 2011
Standardizing and Managing Your Infrastructure - MOSC 2011Standardizing and Managing Your Infrastructure - MOSC 2011
Standardizing and Managing Your Infrastructure - MOSC 2011
 
Solid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaSolid And Sustainable Development in Scala
Solid And Sustainable Development in Scala
 
JavaScript: Past, Present, Future
JavaScript: Past, Present, FutureJavaScript: Past, Present, Future
JavaScript: Past, Present, Future
 
Solid and Sustainable Development in Scala
Solid and Sustainable Development in ScalaSolid and Sustainable Development in Scala
Solid and Sustainable Development in Scala
 
Cassandra Day SV 2014: Spark, Shark, and Apache Cassandra
Cassandra Day SV 2014: Spark, Shark, and Apache CassandraCassandra Day SV 2014: Spark, Shark, and Apache Cassandra
Cassandra Day SV 2014: Spark, Shark, and Apache Cassandra
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's Architecture
 
Continuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as CodeContinuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as Code
 
The JavaScript Delusion
The JavaScript DelusionThe JavaScript Delusion
The JavaScript Delusion
 
Spark Summit 2014: Spark Job Server Talk
Spark Summit 2014:  Spark Job Server TalkSpark Summit 2014:  Spark Job Server Talk
Spark Summit 2014: Spark Job Server Talk
 
Scaling Drupal: Not IF... HOW
Scaling Drupal: Not IF... HOWScaling Drupal: Not IF... HOW
Scaling Drupal: Not IF... HOW
 
Android java fx-jme@jug-lugano
Android java fx-jme@jug-luganoAndroid java fx-jme@jug-lugano
Android java fx-jme@jug-lugano
 
CliqueSquare processing
CliqueSquare processingCliqueSquare processing
CliqueSquare processing
 
Keep Calm and Use Kanban
Keep Calm and Use KanbanKeep Calm and Use Kanban
Keep Calm and Use Kanban
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynote
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web Apps
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as Code
 
Smart Client Development
Smart Client DevelopmentSmart Client Development
Smart Client Development
 
Using Apache Camel as AKKA
Using Apache Camel as AKKAUsing Apache Camel as AKKA
Using Apache Camel as AKKA
 

Recently uploaded

Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxsiddharthjain2303
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxRomil Mishra
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - GuideGOPINATHS437943
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
The SRE Report 2024 - Great Findings for the teams
The SRE Report 2024 - Great Findings for the teamsThe SRE Report 2024 - Great Findings for the teams
The SRE Report 2024 - Great Findings for the teamsDILIPKUMARMONDAL6
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingBootNeck1
 
National Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdfNational Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdfRajuKanojiya4
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...Chandu841456
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating SystemRashmi Bhat
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncssuser2ae721
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
Industrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIESIndustrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIESNarmatha D
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 

Recently uploaded (20)

Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptx
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptx
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - Guide
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
The SRE Report 2024 - Great Findings for the teams
The SRE Report 2024 - Great Findings for the teamsThe SRE Report 2024 - Great Findings for the teams
The SRE Report 2024 - Great Findings for the teams
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event Scheduling
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
National Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdfNational Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdf
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating System
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
Industrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIESIndustrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIES
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 

Iguazú: A Long-Running Job Scheduler using Docker and Mesos

  • 1. IGUAZÚ A Job Scheduler Using Mesos and Docker Colleen Lee Software Engineer
  • 4. ! ! ! ! "COURSERA" IN 2011 ! • Work to be done: gradebook exports, regrading quizzes, sending batch emails, encoding videos, etc.
  • 7. HOW DOES CASCADE WORK? Client
  • 8. HOW DOES CASCADE Job data Client SQS Database Job information WORK?
  • 9. HOW DOES CASCADE Client WORK? SQS Worker Worker Cascade Database
  • 10. HOW DOES CASCADE Client WORK? SQS Worker Worker Cascade New job Database Poll
  • 11. HOW DOES CASCADE Client WORK? SQS Worker Worker Running... Cascade Status information Database
  • 12. HOW DOES CASCADE Client SQS Worker Worker Cascade No new jobs! Database Poll Zzz... WORK?
  • 13. HOW DOES CASCADE Client WORK? SQS Worker Worker Cascade Status? Job status Database
  • 14. HOW DOES CASCADE Client WORK? SQS Worker Worker Cascade Job is done! Database
  • 15. LACK OF ISOLATION Worker 2 Worker 1 Worker 2 Cascade Worker 1 CPUs Memory Worker 2 Worker 1
  • 16. LACK OF ISOLATION Worker 1 Worker Worker 2 Worker 1 Worker 2 Cascade 2 Worker 1 CPUs Memory
  • 18. FRAGILE DEPLOYMENT FLOW System code vs. Job code
  • 19. FRAGILE DEPLOYMENT FLOW System code vs. Job code Rarely updated Updated all the time
  • 20. FRAGILE DEPLOYMENT FLOW System code vs. Job code Rarely updated Updated all the time Unique system no deploy tooling
  • 21. FRAGILE DEPLOYMENT FLOW Worker Poll for job... Run job... Poll for job... Run job... Update job code???
  • 22. FRAGILE DEPLOYMENT FLOW Worker Poll for job... Run job... Poll for job... Run job... Update job code!
  • 23. FRAGILE DEPLOYMENT FLOW Worker Poll for job... Run job... Poll for job... Run job... Update job code! Worker (new code) Poll for job... Run job... Poll for job... Run job...
  • 24. FRAGILE DEPLOYMENT FLOW Worker Poll for job... Run job... Poll for job... Run job... Update job code! Worker (new code) Poll for job... Run job... Poll for job... Run job...
  • 25. FRAGILE DEPLOYMENT FLOW Worker Poll for job... Run job... Poll for job... Run job... Update job code! Worker (new code) Poll for job... Run job... Poll for job... Run job... Worker Worker Worker Cascade Worker Worker Worker Cascade Worker Worker Worker Cascade
  • 27. POOR DEVELOPMENT STORY Client SQS Worker Worker Cascade Database
  • 28. POOR DEVELOPMENT STORY Dev 1 Client SQS Worker Cascade DB
  • 29. POOR DEVELOPMENT STORY Dev 1 Client SQS Worker Cascade DB Client Worker Dev 2 Cascade DB
  • 30. POOR DEVELOPMENT STORY Job data Poll Dev 1 Client SQS Worker Cascade DB New job Client Worker Dev 2 Cascade DB Where'd my job go? What is this job?
  • 31. CASCADE HAS ... SOME ISSUES • Lack of isolation • Fragile deployment flow • Poor development story
  • 32. CASCADE HAS ... SOME ISSUES • Lack of isolation • Fragile deployment flow • Poor development story • Tied exclusively to one language
  • 33. CASCADE HAS ... SOME ISSUES • Lack of isolation • Fragile deployment flow • Poor development story • Tied exclusively to one language Cascade-Scala? Cascade-Python?
  • 34. CASCADE HAS ... SOME ISSUES • Lack of isolation • Fragile deployment flow • Poor development story • Tied exclusively to one language Cascade-Scala? Cascade-Python? Duplicating work: BAD Static partitioning: BAD
  • 37. 2014: CASCADE V2?? DATABASE MIGRATIONS!! SCHEDULED JOBS!! PROGRAMMING ASSIGNMENTS!
  • 41.
  • 42. • Resource isolation: cgroups ! ! ! ! !
  • 43. • Resource isolation: cgroups • Master(s) has/have "soft state" • Coordination AND robustness ! ! !
  • 44. • Resource isolation: cgroups • Master(s) has/have "soft state" • Coordination AND robustness • Implementation: • Scheduler: accepts and manages resources • Executor: process launched on slaves to run tasks
  • 45.
  • 46. • Lightweight, but provides abstraction of a VM
  • 47. • Lightweight, but provides abstraction of VM • Dockerfiles: self-documenting!
  • 48. • Lightweight, but provides abstraction of VM • Dockerfiles: self-documenting!
  • 49. • Lightweight, but provides abstraction of VM • Dockerfiles: self-documenting! • Private Docker registry: convenience, versioning
  • 50. • Lightweight, but provides abstraction of VM • Dockerfiles: self-documenting! • Private Docker registry: convenience, versioning • Usage: specify the image and specify a command
  • 52. HOW DOES IGUAZÚ WORK? Client
  • 53. HOW DOES IGUAZÚ WORK? Client SQS Iguazú Job data Production mode Job id Database Job information
  • 54. HOW DOES IGUAZÚ WORK? Client In-memory Iguazú Job data Development mode Job id Database Job information
  • 55. HOW DOES IGUAZÚ WORK? Client SQS Poll Manager Iguazú Database
  • 56. HOW DOES IGUAZÚ WORK? Client SQS Job data Manager Scheduler Iguazú Database
  • 57. HOW DOES IGUAZÚ WORK? Master(s) Client SQS Manager Scheduler Iguazú Database Slave Slave
  • 58. HOW DOES IGUAZÚ WORK? Master(s) Client SQS Manager Scheduler Iguazú Database Slave Executor Slave
  • 59. HOW DOES IGUAZÚ WORK? Master(s) Client SQS Manager Scheduler Iguazú Database Slave Executor registry Check for Slave new image
  • 60. HOW DOES IGUAZÚ WORK? Master(s) Client SQS Manager Scheduler Iguazú Database Slave Executor registry Status updates Slave
  • 61. HOW DOES IGUAZÚ WORK? Master(s) Client SQS Manager Scheduler Iguazú Database TASSKla_vFeINISHED Executor registry Status updates Slave
  • 62. HOW DOES IGUAZÚ WORK? All done! TASSKla_vFeINISHED Master(s) Client SQS Manager Scheduler Iguazú Database Executor registry Status updates Slave
  • 63. HOW DOES IGUAZÚ WORK? All done! TASSKla_vFeINISHED Master(s) Client SQS Manager Scheduler Iguazú Database Executor registry Status updates Slave OK!
  • 64. HOW DOES IGUAZÚ WORK? Master(s) Client SQS Manager Scheduler Iguazú Database Slave Executor registry Job is done! Slave Status? Job status
  • 65. REMEMBER CASCADE'S PROBLEMS? • Lack of isolation • Fragile deployment flow • Poor development story • Tied exclusively to one language
  • 66. REMEMBER CASCADE'S PROBLEMS? Mesos: cgroups! • Isolation! • Fragile deployment flow • Poor development story • Tied exclusively to one language
  • 67. REMEMBER CASCADE'S PROBLEMS? • Isolation! • Easy deployment flow • Poor development story • Tied exclusively to one language Private Docker repo
  • 68. REMEMBER CASCADE'S PROBLEMS? • Isolation! • Easy deployment flow • Consistent development story • Tied exclusively to one language Iguazú: proper abstractions
  • 69. REMEMBER CASCADE'S PROBLEMS? • Isolation! • Easy deployment flow • Consistent development story • Any language No restrictions
  • 71. OTHER BENEFITS • Ease of transition ! ! ! ! Mesos: job management Docker: job packaging
  • 72. OTHER BENEFITS • Ease of transition • Performance ! ! ! Mesos: long-running! PHP: blaaargh
  • 73. OTHER BENEFITS • Ease of transition • Performance • Flexibility ! ! Use Docker, run Scala code, etc.
  • 74. OTHER BENEFITS • Ease of transition • Performance • Flexibility • Fine-grained control over scheduling ! Autoscaling!
  • 75. OTHER BENEFITS • Ease of transition • Performance • Flexibility • Fine-grained control over scheduling • Designed to work on a heterogeneous pool of resources Security :)
  • 76. THANKS! QUESTIONS? ! We are hiring! See http://coursera.org/jobs ! @firejade0 clee@coursera.org