Creating a Custom PaaS with
Mesos & Marathon
Tehmasp Chaudhri | @tehmaspc
the goals:
to build an internal container centric infrastructure to allow for the rapid delivery of business applications
to support our business requirements around application deployments
to potentially support many applications and teams
to increase happiness for and amongst developers and operations teams
why containers?: the good, the bad
speeding up development
speeding up deployment (and consistency)
creating a clean deliverable by dev to ops
...
good:
bad (challenges):
management of containers?
application linking & discoverability?
enterprise concerns?
...
tackling the bad:
mesos: the what, the why
what:
a system for scheduling and distributing work across a cluster of nodes abstracted into a large resource pool
why:
well supported; top level Apache project
raw management and support for Docker containers
attractive means of managing many app services by an operations team
multiple frameworks (e.g. Marathon)
mesos: architecture
mesos:
GUI
marathon: the what, the why
what:
a framework for Apache Mesos that manages the running of applications (PaaS-in-a-box)
why:
excellent feature set for our application services needs:
e.g. app constraints, scaling, events, discovery and load balancing
a REST API to support creating our own PaaS rules on top of
marathon: architecture
marathon: GUI
utopia:
the what, the why
what:
our internal CLI tool interfacing with our Marathon deployment which every developer uses in order to develop, deploy, and maintain their applications with
enforces our internal development and deployment requirements
greatly increases developer productivity and ease of deployments
forces an operations team to think like systems developers
why:
utopia:
architecture
utopia:
architecture cont'd
going forward:
Mesosphere DCOS (forget everything I said?)
Docker 1.5 - current, brings useful infrastructure features
questions?