The document discusses OpenTable's use of Mesos and microservices architecture. Some key points:
- OpenTable is the world's leading provider of online restaurant reservations, with over 32,000 restaurants worldwide.
- They have transitioned from a monolithic architecture to microservices running on Apache Mesos for improved scalability and flexibility.
- Key components of their Mesos cluster include the Mesos masters and slaves, Zookeeper, Singularity scheduler, Docker containers, service discovery, and monitoring tools.
1 of 50
Downloaded 12 times
More Related Content
Mesos at OpenTable
1. Mesos at OpenTable
Pablo Delgado
Senior Data Engineer
OpenTable
@pablete
MesosCon 2015, Seattle, WA
2. Over 32,000 restaurants worldwide
more than 760 million diners seated since 1998, representing
more than $30 billion spent at partner restaurants
Over 16 million diners seated every month
OpenTable has seated over 190 million diners via a mobile
device. Almost 50% of our reservations are made via a
mobile device
OpenTable currently has presence in US, Canada, Mexico,
UK, Germany and Japan
OpenTable has nearly 600 partners including Facebook,
Google, TripAdvisor, Urbanspoon, Yahoo and Zagat.
2
OpenTable
the worlds leading provider of online restaurant
reservations
6. 6
Mesos: A Platform for Fine-Grained Resource Sharing in
the Data Center
PAPER: http://mesos.berkeley.edu/mesos_tech_report.pdf
Omega: flexible, scalable schedulers for large compute
clusters
PAPER: http://research.google.com/pubs/pub41684.html
Apache Mesos
7. 7
Apache Mesos
Mesos slaves connect to
masters and offer resources
like CPU, disk, and memory.
Masters take those offers
and make decisions about
resource allocation using
frameworks like Singularity.
Frameworks in turn choose
to use resource offers, and
run tasks on slaves.
10. 10
Native Docker Support
JSON REST API and Java Client
Fully featured web application (replaces and improves Mesos Master UI)
Deployments, automatic rollbacks, and healthchecks
Configurable email alerts to service owners
Singularity Features
11. 11
Hubspots Singularity
Process types:
Web Services
Workers
Scheduled (CRON-type) Jobs
On-Demand Processes
Slave placement:
GREEDY
SEPARATE_BY_DEPLOY
SEPARATE_BY_REQUEST
OPTIMISTIC
Executors:
Mesos executor
Singularity executor
Docker executor
15. 15
Services no longer live in a well known address/port, so we needed a registry
or dynamic way to find them. Also it had to be MESOS agnostic.
Service announce their presence to the Discovery Server
Service subscribe to changes in dependencies announcement
Service un-announce on termination or timeout on crash
Service Discovery
16. 16
Zookeeper Zookeeper Zookeeper
availability zone 2bavailability zone 2a availability zone 2c
Service Discovery
Discovery Server Discovery Server Discovery Server
A
A
A
BB
Announce
Discover
Subscribe
31. 31
Sparks Approach
Generalize MapReduce in order to support new apps in the same engine
General DAGs and Data Sharing
Unification benefits the engine, which is more efficient, and simple for user
Handles batch, interactive and online processing
API available for Java, Scala, Python, SQL, R
32. 32
Spark RDDs
Resilient Distributed Datasets (or RDD) are fault-tolerant distributed collections
They exists in the form of:
Parallelized Collections
External datasets, distributed datasets from any storage source supported by
Hadoop, including your local file system, HDFS, Cassandra, HBase, Amazon S3, etc.
42. Pull Requests (maybe merged)
[SPARK-7373] Add docker support for launching drivers
in mesos cluster mode.
[SPARK-5338] Add cluster mode support for Mesos
[SPARK-5095] Support capping cores and launch mulitple executors in coarse
mode
[SPARK-6707] Mesos Scheduler should allow the user to specify constraints
based on slave attributes
[SPARK-6287] Add dynamic allocation to the coarse-grained Mesos scheduler
43. 43
Memory-centric distributed
storage system (cache)
Distributed file system
General engine for large-scale data
processing
Kernel for the datacenter
Ideal data processing stack
44. 44
Other frameworks
KAFKA on mesos https://github.com/mesos/kafka
SAMZA on mesos https://github.com/banno/samza-mesos
PHOENIX (secor on mesos) https://github.com/stealthly/phoenix
CASSANDRA on mesos https://github.com/mesosphere/cassandra-mesos
We are also using:
We are considering:
CHRONOS https://github.com/mesos/chronos
MARATHON https://github.com/mesosphere/marathon
49. 49
Sushi of Gari,
Gari Columbus, NYC
Masaki Sushi
Chicago
Sansei Seafood Restaurant &
Sushi Bar, Maui
A restaurant like your favorite one but in a
different city.
Find the synonyms of the restaurant in question, then filter by location!
Akikos, SF
San Francisco Maui Chicago New York
'
Downtown upscale sushi experience with sushi bar