mesos-devoxx14
DESCRIPTION
Intro to MesosTRANSCRIPT
ROOM 9 #devoxx #DV14 #mesos #docker @samklr
Kernel for Distributed
Applications
Sam BESSALAH
@samklr
#Devoxx #DV14 #mesos #docker @samklr
#Devoxx #DV14 #mesos #docker @samklr
Example of a statically partionned cluster
#Devoxx #DV14 #mesos #docker @samklr
Akka/Play Jenkins Spark/Hadoop RedisStorm
#Devoxx #DV14 #mesos #docker @samklr
Issues with static partitionning
- Increased Complexity : Machines/vm sprawlSoftware failures gets harder to handle as machines number grow
- Huge overheard, on development,- Planning for failure and maintenance gets harder- Not really developer friendly. Long cycles to
deployments.
#Devoxx #DV14 #mesos #docker @samklr
Resources utilisation under static partitionning
Play/Akka Redis Hadoop
#Devoxx #DV14 #mesos #docker @samklr
Resources utilisation under static partitionning
Play/Akka RedisHadoop
Put together, we would get
#Devoxx #DV14 #mesos #docker @samklr
Enters Google stage left ...
Google “Borg” .Unofficial name.Moved to a new system called OmegaBundles all the cluster’s machines into a single pooledview of resources.
Evolved to Omega.
#Devoxx #DV14 #mesos #docker @samklr
#Devoxx #DV14 #mesos #docker @samklr
Mesos : Level of indirection
1. Run multiple types of distributed systems on the same cluster of machines, and dynamically share resources more eficiently.
2. Provide failure detection, task distribution, task tracking, task monitoring, low level resources management, and fine grained resources sharing. And scale to the thousands of nodes.
#Devoxx #DV14 #mesos #docker @samklr
#Devoxx #DV14 #mesos #docker @samklr
Quick View.
#Devoxx #DV14 #mesos #docker @samklr
Mesos Architecture
#Devoxx #DV14 #mesos #docker @samklr
http://mesos.apache.org/documentation/latest/mesos-architecture/
#Devoxx #DV14 #mesos #docker @samklr
Mesos Framework
A framework is an application that runs distributed applications on Mesos.
It has two components : The Scheduler : Interacts with Mesos, to book resources and
launch tasks within the mesos slaves.Executors : gets information from the framework like
environmental variables,configuration informationand run tasks inside the mesos slaves.
#Devoxx #DV14 #mesos #docker @samklr
Mesos Framework
A framework is an application that runs distributed applications on Mesos.
It has two components : The Scheduler : Interacts with Mesos, to book resources and
launch tasks within the mesos slaves.Executors : run tasks in mesos slaves.
Mesos provides an API to build its own frameworks. And there are SDKs in mulitple languages.
#Devoxx #DV14 #mesos #docker @samklr
#Devoxx #DV14 #mesos #docker @samklr
Resources allocation process
- Mesos allocate resources via “resources offers”
- Resources are a snapshot of available resources that a scheduler will use to runtasks on mesos slaves.
#Devoxx #DV14 #mesos #docker @samklr
#Devoxx #DV14 #mesos #docker @samklr
#Devoxx #DV14 #mesos #docker @samklr
#Devoxx #DV14 #mesos #docker @samklr
1- resourceOffers()
#Devoxx #DV14 #mesos #docker @samklr
1- resourceOffers() 2. launchTasks()
#Devoxx #DV14 #mesos #docker @samklr
1- resourceOffers() 2. launchTasks()
3. lauchTask()
#Devoxx #DV14 #mesos #docker @samklr
1- resourceOffers() 2. launchTasks()
3. lauchTask() 4. statusUpdate()
#Devoxx #DV14 #mesos #docker @samklr
1- resourceOffers()
2. launchTasks()
3. lauchTask() 4. statusUpdate()
5. statusUpdate()
#Devoxx #DV14 #mesos #docker @samklr
Mesos slaves
#Devoxx #DV14 #mesos #docker @samklr
Mesos slaves
Linux Containers
#Devoxx #DV14 #mesos #docker @samklr
Mesos uses Linux Containers for resource isolation.
Mesos containers are built around cgroups , to provide isolation of
CPU, memory, disk … and namespaces for network isolation.
Started leveraging containerirsation since 2010
#Devoxx #DV14 #mesos #docker @samklr
#Devoxx #DV14 #mesos #docker @samklr
Linux Containers
#Devoxx #DV14 #mesos #docker @samklr
Linux ContainersLXC
#Devoxx #DV14 #mesos #docker @samklr
Linux ContainersLXC
Cgroups
#Devoxx #DV14 #mesos #docker @samklr
#Devoxx #DV14 #mesos #docker @samklr
Mesos provides a native support for DockerContainers since 0.20
#Devoxx #DV14 #mesos #docker @samklr
#Devoxx #DV14 #mesos #docker @samklr
Fault recovery & HA
- Mesos Master uses Zookeeper for leader election and leader discovery.
- Mesos Master have a Registrar to log all the tasks and slaves info, implemented as a replicated log using MultiPaxos for consensus
#Devoxx #DV14 #mesos #docker @samklr
Fault recovery & HA
- Mesos Master uses Zookeeper for leader election and leader discovery.
- Mesos Master have a Registrar to log all the tasks and slaves info, implemented as a replicated log using MultiPaxos for consensus
- Mesos has a slave recovery mechanism. So user’s tasks keep running whenever a slave proces goes under.
#Devoxx #DV14 #mesos #docker @samklr
Fault recovery & HA
- Mesos Master uses Zookeeper for leader election and leader discovery.
- Mesos Master have a Registrar to log all the tasks and slaves info, implemented as a replicated log using MultiPaxos for consensus
- Mesos has a slave recovery mechanism. So user’s tasks keep running whenever a slave proces goes under. Slaves checkpoint information to their local disks (task info, status updates, etc ), they recover checkpointed data and reconnect with old tasks when they restart.
#Devoxx #DV14 #mesos #docker @samklr
#Devoxx #DV14 #mesos #docker @samklr
Mesos Framework
A framework is an application that runs distributed applications on Mesos.
It has two components : The Scheduler : Interacts with Mesos, to book resources and
launch tasks within the mesos slaves.Executors : run tasks in mesos slaves.
Mesos provides an API to build its own frameworks. And there are SDKs in mulitple languages.
#Devoxx #DV14 #mesos #docker @samklr
Marathon
#Devoxx #DV14 #mesos #docker @samklr
- A generic mesos framework to run long running services (web apps, etc …)
- A distributed Init.d for the cluster.- Runs any linux binary without modification (Tomcat, Play, …)- Cluster wide process supervisor
-Private PaaS - Service discovery- Provide a self service Rest API for deployment - Authentification & SSL- Placement constrainst (nodes, racks, etc. (Like with Spark) )- Service discovery and load balancing via HAProxy
What is Marathon ?
#Devoxx #DV14 #mesos #docker @samklr
Marathon workflow
#Devoxx #DV14 #mesos #docker @samklr
Marathon workflow
#Devoxx #DV14 #mesos #docker @samklr
POST /v2/apps {“id” : “IPython Notebook”“container “ : {
“image “ : “docker://ipython/notebook” “options” : [ . . . ]}
}
Marathon Rest APi
#Devoxx #DV14 #mesos #docker @samklr
Wants to scale by addind more instances ..
PATCH /v2/apps {“instances” : 4
}
Marathon Rest APi
#Devoxx #DV14 #mesos #docker @samklr
Conclusion
#Devoxx #DV14 #mesos #docker @samklr
Conclusion
#Devoxx #DV14 #mesos #docker @samklr
Conclusion
Aurora
#Devoxx #DV14 #mesos #docker @samklr
Conclusion
Kubernetes
#Devoxx #DV14 #mesos #docker @samklr
#Devoxx #DV14 #mesos #docker @samklr
#Devoxx #DV14 #mesos #docker @samklr
#Devoxx #DV14 #mesos #docker @samklr
speakerdeck.com/samklr