SlideShare a Scribd company logo
How Yelp Uses Mesos to Power Its
SOA Architecture
Basic Requirements of a Service-
Oriented Architecture
Scheduling
Decide which hosts run a service
Delivery
Put the code on the host and run it
Discovery
Tell clients where your service is running
Alerting
Tell humans when things are broken
● Scheduling: puppet manifests
● Delivery:
○ service code: rsync + cron jobs
○ dependencies: puppet + apt
● Discovery: hand-crafted LB configs + VIPs
● Alerting: hand-crafted nagios configs
Ye Olde Yelp SOA
● Scheduling: yelpsoa-configs
● Delivery:
○ service code: rsync + cron jobs
○ dependencies: virtualenv, some puppet
● Discovery: Smartstack
● Alerting: Sensu based on yelpsoa-configs
Not-so-Olde Yelp SOA
This works, but has some problems
● All services on all machines?
○ tough if your memory footprint is too big
● Some subset on each?
○ What are the biggest resource users?
● Which services actually need resources?
What if you buy more machines?
How do you redistribute load?
● Hope you have a box with spare capacity
● Spin up more boxes? See previous slide.
What if a service needs more CPU?
● virtualenv for python libs
● what about C shared libraries?
What if services have conflicting
dependencies?
● virtualenv for python libs
● What about different interpreters?
● Different HTTP server?
What if a service has unusual
dependencies?
PaaSTA: Yelp's Mesos SOA glue
PaaSTA
● Scheduling: Mesos+Marathon
● Delivery: Docker
● Discovery: Smartstack
● Alerting: Sensu based on yelpsoa-configs
Scheduling in PaaSTA:
Mesos and Marathon
● Mesos is an "SDK for distributed systems",
batteries not included.
● Requires a framework
○ Marathon (like ASG for Mesos)
○ Chronos (Periodic tasks)
● Supports Docker as task executor
● Containers: like lightweight VMs
● Provide language (Dockerfile) for
describing container image
● Reproducible builds (mostly)
● Provides software flexibility
Delivery in Paasta: Docker
just kidding, there's more to it than that
All done!
How do we configure Marathon?
How do we produce & distribute
Docker images?
How does SmartStack know about
our containers?
How do we monitor this?
How do we configure Marathon?
● Need a wall around Marathon: it has root
on your entire cluster.
● Cron job
● Combines yelpsoa-configs and currently-
blessed docker image
● # instances
● cpu
● mem
● healthcheck timeouts, grace period
● bounce strategy
● cmd / args
marathon.yaml
● Distribution with private registry
● S3 bucket shared among all environments
● Bless images by creating git tags
○ 1:1 git commit <-> docker image
Building/shipping Docker images
● configure_nerve.py queries local mesos-
slave API
● This means registrations work even when
Mesos master or Marathon is down
● Provides backwards compatibility with
older SOA
Registering with SmartStack
Jenkins Registry
mesos-slavemesos-master
Marathon
yelpsoa-configs
docker
nerve
client
synapse
HAProxy
Zookeeper
git
code
metadata
traffic
● Describe end goal, not path
● Helps achieve fault tolerance
"Deploy 12abcd34 to prod"
vs.
"Commit 12abcd34 should be running in prod"
Gas pedal vs. Cruise Control
Declarative control
Demo
Reading Comprehension Question
A. To describe how cool Yelp's PaaSTA system is
B. To tease viewers about a system that is not open
source yet?
D. To confuse viewers into making them consider yet
another docker-based PaaS
C. To Inspire viewers to build their own bespoke PaaS
based on Mesos with some of these ideas.

More Related Content

PPTX
How Yelp does Service Discovery
PDF
How Yelp Uses Sensu to Monitor Services in a SOA World
PPTX
Monitoring with sensu
PDF
PDF
Sensu @ Yelp!: A Guided Tour
PDF
Sensu and Sensibility - Puppetconf 2014
PPTX
Sensu Monitoring
PDF
Native container monitoring
How Yelp does Service Discovery
How Yelp Uses Sensu to Monitor Services in a SOA World
Monitoring with sensu
Sensu @ Yelp!: A Guided Tour
Sensu and Sensibility - Puppetconf 2014
Sensu Monitoring
Native container monitoring

What's hot (20)

PPTX
WTF is Sensu and Monitoring
PDF
PDF
Andrew Nelson - Zabbix and SNMP on Linux
PDF
Monitoring of OpenNebula installations
PDF
Distributed Coordination with Python
PPTX
Serverspec and Sensu - Testing and Monitoring collide
PDF
A Python Petting Zoo
PDF
Steamlining your puppet development workflow
PDF
Openstack Scheduler and Scalability Issue
PDF
Introduction to Akka-Streams
PDF
Unbounded bounded-data-strangeloop-2016-monal-daxini
PDF
Netflix Keystone - How Netflix Handles Data Streams up to 11M Events/Sec
PDF
Stop using Nagios (so it can die peacefully)
PDF
Netflix at-disney-09-26-2014
PDF
Distributed Systems explained (with NodeJS) - Bruno Bossola, JUG Torino
PDF
Kafka At Scale in the Cloud
ODP
Sensu at brightpearl
PPTX
Netflix Data Pipeline With Kafka
PDF
Netflix keystone streaming data pipeline @scale in the cloud-dbtb-2016
PDF
Ensuring Consistency in a Replicated World
WTF is Sensu and Monitoring
Andrew Nelson - Zabbix and SNMP on Linux
Monitoring of OpenNebula installations
Distributed Coordination with Python
Serverspec and Sensu - Testing and Monitoring collide
A Python Petting Zoo
Steamlining your puppet development workflow
Openstack Scheduler and Scalability Issue
Introduction to Akka-Streams
Unbounded bounded-data-strangeloop-2016-monal-daxini
Netflix Keystone - How Netflix Handles Data Streams up to 11M Events/Sec
Stop using Nagios (so it can die peacefully)
Netflix at-disney-09-26-2014
Distributed Systems explained (with NodeJS) - Bruno Bossola, JUG Torino
Kafka At Scale in the Cloud
Sensu at brightpearl
Netflix Data Pipeline With Kafka
Netflix keystone streaming data pipeline @scale in the cloud-dbtb-2016
Ensuring Consistency in a Replicated World
Ad

Similar to How Yelp uses Mesos to Power its SOA Infrastructure (20)

PDF
The Glue is the Hard Part: Making a Production-Ready PaaS
PDF
DockerCon EU 2015: The Glue is the Hard Part: Making a Production-Ready PaaS
PDF
Building Web Scale Apps with Docker and Mesos by Alex Rukletsov (Mesosphere)
PDF
PaaSTA: Autoscaling at Yelp
PDF
Introduction to Apache Mesos and DC/OS
PDF
PaaSTA: Running applications at Yelp
PDF
Scaling and Embracing Failure: Clustering Docker with Mesos
PDF
ContainerDayVietnam2016: Docker at scale with Mesos
PPTX
Scaling Like Twitter with Apache Mesos
PDF
Easy Docker Deployments with Mesosphere DCOS on Azure
PDF
OSDC 2015: Bernd Mathiske | Why the Datacenter Needs an Operating System
PDF
Mesos: A State-of-the-art Container Orchestrator
PDF
Datacenter Computing with Apache Mesos - シリコンバレー日本人駐在員Meetup
PPTX
Containerization - The DevOps Revolution
PDF
DEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOS
PDF
OSDC 2016 - Mesos and the Architecture of the New Datacenter by Jörg Schad
PDF
OSDC 2018 | From batch to pipelines – why Apache Mesos and DC/OS are a soluti...
PDF
Introducing Apache Mesos
PDF
DCOS Presentation
PPTX
DevOps in Age of Kubernetes
The Glue is the Hard Part: Making a Production-Ready PaaS
DockerCon EU 2015: The Glue is the Hard Part: Making a Production-Ready PaaS
Building Web Scale Apps with Docker and Mesos by Alex Rukletsov (Mesosphere)
PaaSTA: Autoscaling at Yelp
Introduction to Apache Mesos and DC/OS
PaaSTA: Running applications at Yelp
Scaling and Embracing Failure: Clustering Docker with Mesos
ContainerDayVietnam2016: Docker at scale with Mesos
Scaling Like Twitter with Apache Mesos
Easy Docker Deployments with Mesosphere DCOS on Azure
OSDC 2015: Bernd Mathiske | Why the Datacenter Needs an Operating System
Mesos: A State-of-the-art Container Orchestrator
Datacenter Computing with Apache Mesos - シリコンバレー日本人駐在員Meetup
Containerization - The DevOps Revolution
DEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOS
OSDC 2016 - Mesos and the Architecture of the New Datacenter by Jörg Schad
OSDC 2018 | From batch to pipelines – why Apache Mesos and DC/OS are a soluti...
Introducing Apache Mesos
DCOS Presentation
DevOps in Age of Kubernetes
Ad

Recently uploaded (20)

PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPT
Teaching material agriculture food technology
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Empathic Computing: Creating Shared Understanding
PDF
cuic standard and advanced reporting.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Building Integrated photovoltaic BIPV_UPV.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Teaching material agriculture food technology
Network Security Unit 5.pdf for BCA BBA.
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Digital-Transformation-Roadmap-for-Companies.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Spectral efficient network and resource selection model in 5G networks
“AI and Expert System Decision Support & Business Intelligence Systems”
The Rise and Fall of 3GPP – Time for a Sabbatical?
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Electronic commerce courselecture one. Pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Dropbox Q2 2025 Financial Results & Investor Presentation
MIND Revenue Release Quarter 2 2025 Press Release
Empathic Computing: Creating Shared Understanding
cuic standard and advanced reporting.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx

How Yelp uses Mesos to Power its SOA Infrastructure