Ecosysteme mesos university - devoxx france - 8 avril2015
-
Upload
jean-baptiste-claramonte -
Category
Software
-
view
38 -
download
1
Transcript of Ecosysteme mesos university - devoxx france - 8 avril2015
![Page 1: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/1.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Mesos University
@jbclaramonte @plopezFr @jpthiery @aurelienmaury
![Page 2: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/2.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Agenda• Mesos
• Frameworks
• Mesosphere
• Marathon
![Page 3: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/3.jpg)
@YourTwitterHandle@YourTwitterHandle@XebiaFr @YesWeScale#MesosUniversity
Mesos
![Page 4: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/4.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Ressources partagées
Master
Slave Slave Slave Slave
cpu: 2mem: 2048
cpu: 4mem: 16384
cpu: 2mem: 4096
cpu: 32mem: 131072
![Page 5: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/5.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Resources
• 2 méthodes permettent de décrire les slaves du cluster
• Resources
• Tags (ou « Attributes »)
![Page 6: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/6.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Resources• Certaines resources types sont pré définies par Mesos
• cpu
• mem
• disk
• port
![Page 7: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/7.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Resources• Certaines resources types sont pré définies par Mesos
• cpu
• mem
• disk
• port
OBLIGATOIRE !
![Page 8: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/8.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Resources• Trois différentes types de resources
• scalars
• ranges
• sets
![Page 9: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/9.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Resources
cpu:24;mem:24576;disk:409600;ports:[21000-24000];disks:{1,2,3,4,5,6,7,8,9}
![Page 10: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/10.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Resources
cpu:24;mem:24576;disk:409600;ports:[21000-24000];disks:{1,2,3,4,5,6,7,8,9}
Scalar
![Page 11: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/11.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Resources
cpu:24;mem:24576;disk:409600;ports:[21000-24000];disks:{1,2,3,4,5,6,7,8,9}
Range
![Page 12: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/12.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Resources
cpu:24;mem:24576;disk:409600;ports:[21000-24000];disks:{1,2,3,4,5,6,7,8,9}
Set
par exemple /mnt/disk/{diskNum}
![Page 13: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/13.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Mesos: Web UI
![Page 14: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/14.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Mesos: Web UI
![Page 15: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/15.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Mesos: Web UI
![Page 16: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/16.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Mesos: Web UI
![Page 17: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/17.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Mesos: Web UI
![Page 18: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/18.jpg)
@YourTwitterHandle@YourTwitterHandle@XebiaFr @YesWeScale#MesosUniversity
Framework
![Page 19: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/19.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Framework
Framework = Application
![Page 20: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/20.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Frameworks
![Page 21: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/21.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Framework : API
![Page 22: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/22.jpg)
@XebiaFr @YesWeScale#MesosUniversity
API
![Page 23: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/23.jpg)
@XebiaFr @YesWeScale#MesosUniversity
APIScheduler
• Est notifié par le master de la mise à disposition de ressource
• Demande l’exécution de tâches au master
Executor
• Réalise les taches soumises par le master
![Page 24: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/24.jpg)
@XebiaFr @YesWeScale#MesosUniversity
API
Scheduler Mesos (master)
register
time
Executor
![Page 25: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/25.jpg)
@XebiaFr @YesWeScale#MesosUniversity
API
Scheduler Mesos (master)
registerregistered
time
Executor
![Page 26: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/26.jpg)
@XebiaFr @YesWeScale#MesosUniversity
API
Scheduler Mesos (master)
registerregistered
offer
time
Executor
![Page 27: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/27.jpg)
@XebiaFr @YesWeScale#MesosUniversity
API
Scheduler Mesos (master)
registerregistered
offer
launch
time
launch
Executor
![Page 28: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/28.jpg)
@XebiaFr @YesWeScale#MesosUniversity
API
Scheduler Mesos (master)
registerregistered
offer
launch
updatetime
launch
Executor
update
![Page 29: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/29.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Framework : API
API du Scheduler
![Page 30: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/30.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Scheduler : Lifecycle management
Executor
Master
Slave
Scheduler
registered(…)
void registered(SchedulerDriver driver, FrameworkID fwkId, MasterInfo masterInfo);
Master
Standby
![Page 31: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/31.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Scheduler : Lifecycle management
Executor
Master
Slave
Scheduler
Master
Standby
disconnected(…)
void disconnected(SchedulerDriver driver);
![Page 32: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/32.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Scheduler : Lifecycle management
Executor
Slave
Schedulerreregistered(…)
Master Master
void reregistered(SchedulerDriver driver, MasterInfo masterInfo);
![Page 33: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/33.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Scheduler : Resource Allocation
Executor
Master
Slave
HadoopScheduler
resourceOffers(…)
Master
Standby
CassandraScheduler
void resourceOffers(SchedulerDriver driver, List<Offer> offers);
Offre de ressources
![Page 34: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/34.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Scheduler : Resource Allocation
CassandraExecutor
Master
Slave
HadoopScheduler
offerRescinded(…)
Master
Standby
CassandraScheduler
Task
Le scheduler Cassandra
exécute le premier la tâche
void offerRescinded(SchedulerDriver driver, OfferID offerId);
![Page 35: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/35.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Scheduler : Communication
CassandraExecutor
Master
Slave
HadoopScheduler
statusUpdate(…)
Master
Standby
CassandraScheduler
Task
void statusUpdate(SchedulerDriver driver, TaskStatus taskStatus);
![Page 36: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/36.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Scheduler : Communication
CassandraExecutor
Master
Slave
HadoopScheduler
frameworkMessage(…)
Master
Standby
CassandraScheduler
Task
void frameworkMessage(SchedulerDriver driver, ExecutorID execId, SlaveID slaveId, byte[] message);
![Page 37: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/37.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Scheduler : Error events
CassandraExecutor
Master
Slave
HadoopScheduler
slaveLost(…)
Master
Standby
CassandraScheduler
Task
void slaveLost(SchedulerDriver driver, SlaveID slaveId);
![Page 38: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/38.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Scheduler : Error events
CassandraExecutor
Master
Slave
HadoopScheduler
executorLost(…)
Master
Standby
CassandraScheduler
Task
void executorLost(SchedulerDriver driver,ExecutorID execId, SlaveID slaveId, int status);
![Page 39: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/39.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Scheduler : Error events
Executor
Master
Slave
Scheduler
error(…)
Master
Standby
void error(SchedulerDriver driver, String message);
![Page 40: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/40.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Framework : API
API de l’Executor
![Page 41: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/41.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Executor : Lifecycle management
Executor
Master
Slave
Scheduler
registered(…)
Master
Standby
void registered (ExecutorDriver driver, ExecutorInfo execInfo, FrameworkInfo fwkInfo, SlaveInfo slaveInfo);
![Page 42: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/42.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Executor : Lifecycle management
Executor
Master
Slave
Scheduler
Master
Standby
disconnected(…)
void disconnected(ExecutorDriver driver);
![Page 43: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/43.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Executor : Lifecycle management
Executor
Master
Slave
Scheduler
Master
Standby
reregistered(…)
void reregistered(ExecutorDriver driver, SlaveInfo slaveInfo);
![Page 44: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/44.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Scheduler : Task management
CassandraExecutor
Master
Slave
launchTask(…)
Master
Standby
CassandraScheduler
Task
void launchTask(ExecutorDriver driver, TaskInfo taskInfo);
![Page 45: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/45.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Scheduler : Task management
CassandraExecutor
Master
Slave
killTask(…)
Master
Standby
CassandraScheduler
Task
void killTask(ExecutorDriver driver, TaskID taskId);
schedulerDriver.killTask(…)
![Page 46: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/46.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Scheduler : Communication
CassandraExecutor
Master
Slave
frameworkMessage(…)
Master
Standby
CassandraScheduler
Task
void frameworkMessage(ExecutorDriver driver, byte[] msg);
![Page 47: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/47.jpg)
@YourTwitterHandle@YourTwitterHandle@XebiaFr @YesWeScale#MesosUniversity
Mesosphere : Chronos & Marathon
![Page 48: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/48.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Mesosphere
Florian Leibert
Benjamin HindmanTobi Knaup
![Page 49: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/49.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Mesosphere
Our mission is to make building and running distributed systems as easy as building or running an
app on your smartphone.
![Page 50: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/50.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Chronos
![Page 51: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/51.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Marathon
![Page 52: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/52.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Quoi ?
“Init Daemon” pour Data Center
Private PaaS
![Page 53: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/53.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Pourquoi ?
Simplifier
Automatiser
API pour les développeurs
Améliorer l’efficacité
![Page 54: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/54.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Fonctionnalities
Déploiement élastique
Haute disponibilité
SécuritéSystème
d’évènementsAPI REST
Service Discovery
![Page 55: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/55.jpg)
@XebiaFr @YesWeScale#MesosUniversity
UI : liste des applications
![Page 56: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/56.jpg)
@XebiaFr @YesWeScale#MesosUniversity
UI : créer une application
![Page 57: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/57.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Cycle de vie
Master
Slave Slave Slave Slave
Marathon
Tâches Évènements / Offres
![Page 58: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/58.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Marathon
API REST
![Page 59: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/59.jpg)
@XebiaFr @YesWeScale#MesosUniversity
POST /v2/apps { "id": "myrestapi", "instances": 2, "cpus": 0.3, "mem": 128, "ports": [0], "uris": ["http://storage.googleapis.com/restapi-jb/RestApi.jar"], "cmd": "java -jar RestApi.jar --server.port=$PORT0" }
Démarrer une “Self Contained App”
![Page 60: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/60.jpg)
@XebiaFr @YesWeScale#MesosUniversity
POST /v2/apps { "id": "myrestapi", "instances": 2, "cpus": 0.3, "mem": 128, "ports": [0], "uris": ["http://storage.googleapis.com/restapi-jb/RestApi.jar"], "cmd": "java -jar RestApi.jar --server.port=$PORT0" }
Démarrer une “Self Contained App”
Slave myrestapi$PORT0
ports:[0]
![Page 61: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/61.jpg)
@XebiaFr @YesWeScale#MesosUniversity
POST /v2/apps { "id": "ubuntu", "container": { "type": "DOCKER", "docker": { "image": "libmesos/ubuntu" } }, "instances": 1, "cpus": 0.5, "mem": 512, "uris": [], "cmd": "while sleep 10; do date -u +%T; done" }
Démarrer une application Dockerisée
![Page 62: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/62.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Health check
• Par défaut, information provenant de Mesos
TASK_RUNNING => Healthy
• Configurable via l’API REST de Marathon
![Page 63: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/63.jpg)
@XebiaFr @YesWeScale#MesosUniversity
{ "id": "my-restapi-example-app", ... "healthChecks": [ { "protocol": "COMMAND", "command": { "value": "curl -f -X GET
http://$HOST:$PORT0/simpleapi/info" }, "gracePeriodSeconds": 300, "intervalSeconds": 5, "timeoutSeconds": 3, "maxConsecutiveFailures": 3 } ] }
Health check
![Page 64: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/64.jpg)
@XebiaFr @YesWeScale#MesosUniversity
{ "id": "my-restapi-example-app", ... "healthChecks": [ { "protocol": "HTTP", "path": "/simpleapi/info", "gracePeriodSeconds": 300, "intervalSeconds": 5, "timeoutSeconds": 3, "maxConsecutiveFailures": 3 } ] }
Health check
![Page 65: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/65.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Les contraintes
Contrôler le “où” lors du déploiement
![Page 66: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/66.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Les contraintes : tags
Identifier les ressources par des tags : • type de hardware • emplacement physique (datacenter , rack) • …
Positionnées au démarrage du slave
$ mesos-slave … --attributes="rack_id:2"
![Page 67: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/67.jpg)
@XebiaFr @YesWeScale#MesosUniversity
POST /v2/apps { "id": "my-restapi-example-app", "instances": 2, "cpus": 0.3, "mem": 128, "ports": [0], "uris": ["http://storage.googleapis.com/restapi-jb/RestApi.jar"], "cmd": "java -jar RestApi.jar --server.port=$PORT", "constraints": [["hostname","UNIQUE"] }
Contrainte : UNIQUE
![Page 68: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/68.jpg)
@XebiaFr @YesWeScale#MesosUniversity
POST /v2/apps { "id": "my-restapi-example-app", "instances": 2, "cpus": 0.3, "mem": 128, "ports": [0], "uris": ["http://storage.googleapis.com/restapi-jb/RestApi.jar"], "cmd": "java -jar RestApi.jar --server.port=$PORT", "constraints": [["hostname","UNIQUE"] }
Contrainte : UNIQUE
Slave 1
UserMgt UserMgt
Slave 2
UserMgt CreditApp
Slave 3 Slave 4
UserMgt CreditApp
![Page 69: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/69.jpg)
@XebiaFr @YesWeScale#MesosUniversity
POST /v2/apps { "id": "my-restapi-example-app", "instances": 2, "cpus": 0.3, "mem": 128, "ports": [0], "uris": ["http://storage.googleapis.com/restapi-jb/RestApi.jar"], "cmd": "java -jar RestApi.jar --server.port=$PORT", "constraints": [["harddrive","CLUSTER", "ssd"] }
Contrainte : CLUSTER
Slave 1
UserMgt UserMgt
Slave 2
UserMgt CreditApp
Slave 3 Slave 4
UserMgt UserMgt
ssd
hdd
![Page 70: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/70.jpg)
@XebiaFr @YesWeScale#MesosUniversity
POST /v2/apps { "id": "my-restapi-example-app", "instances": 2, "cpus": 0.3, "mem": 128, "ports": [0], "uris": ["http://storage.googleapis.com/restapi-jb/RestApi.jar"], "cmd": "java -jar RestApi.jar --server.port=$PORT", "constraints":[["hostname","CLUSTER", “slave-3”] }
Contrainte : CLUSTER
Slave 1
UserMgt
Slave 2
UserMgt CreditApp
Slave 3 Slave 4
UserMgt UserMgt CreditApp
![Page 71: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/71.jpg)
@XebiaFr @YesWeScale#MesosUniversity
POST /v2/apps { "id": "my-restapi-example-app", "instances": 2, "cpus": 0.3, "mem": 128, "ports": [0], "uris": ["http://storage.googleapis.com/restapi-jb/RestApi.jar"], "cmd": "java -jar RestApi.jar --server.port=$PORT", "constraints": [["rack_id","GROUP_BY"] }
Contrainte : GROUP_BY
Slave 1
UserMgt
Slave 2
CreditApp
Slave 3 Slave 4
Rack 1
Rack 2
UserMgt CreditApp
UserMgt
UserMgt
![Page 72: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/72.jpg)
@XebiaFr @YesWeScale#MesosUniversity
POST /v2/apps { "id": "my-restapi-example-app", "instances": 2, "cpus": 0.3, "mem": 128, "ports": [0], "uris": ["http://storage.googleapis.com/restapi-jb/RestApi.jar"], "cmd": "java -jar RestApi.jar --server.port=$PORT", "constraints": [["hostname","UNLIKE", "slave-[2-3]"] }
Contrainte : UNLIKE
Slave 1
UserMgt UserMgt
Slave 2
UserMgt CreditApp
Slave 3 Slave 4
UserMgt UserMgt
![Page 73: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/73.jpg)
@XebiaFr @YesWeScale#MesosUniversity
POST /v2/apps { "id": "my-restapi-example-app", "instances": 2, "cpus": 0.3, "mem": 128, "ports": [0], "uris": ["http://storage.googleapis.com/restapi-jb/RestApi.jar"], "cmd": "java -jar RestApi.jar --server.port=$PORT", "constraints": [["hostname","LIKE", "slave-[1-3]"] }
Contrainte : LIKE
Slave 1
UserMgt UserMgt
Slave 2
UserMgt CreditApp
Slave 3 Slave 4
UserMgt UserMgt
![Page 74: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/74.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Application groups
• Définir des liens de dépendance entre les groupes
• Scaler tout un groupe à la fois
![Page 75: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/75.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Marathon : Application groups
/myapp/bdd
postgresql instance=3
redis instance=4
/myapp/service
apache instance=5
tomcat instance=8
myapp
Dépendance
![Page 76: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/76.jpg)
@XebiaFr @YesWeScale#MesosUniversity
{ "id": "/myapp", "groups": [ { "id": "/myapp/bdd", "apps": [ { "id": "/myapp/postgresql", ... }, { "id": "/myapp/redis", ... } ] },{ "id": "/myapp/service", "dependencies": ["/myapp/bdd"], "apps": [ { "id": "/myapp/apache", ... }, { "id": "/myapp/tomcat", ... } ] } ] }
Application groups
![Page 77: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/77.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Service Discovery
Où est mon application ?
![Page 78: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/78.jpg)
@XebiaFr @YesWeScale#MesosUniversity
HaProxy : reload configuration
• HaProxy - Marathon bridge (script)
• Bamboo
![Page 79: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/79.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Service Discovery
Slave 1 Slave 2
Marathon
HA Proxy
HA Proxy Marathon Bridge
HA Proxy
HA Proxy Marathon Bridge
![Page 80: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/80.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Service Discovery
Slave 1 Slave 2
UserMgt Port 31100
UserMgt Port 31200
UserMgt Port 31100
CreditApp Port 31200
UserMgt Port : 10000 CreditApp Port : 20000Marathon
HA Proxy
HA Proxy Marathon Bridge
HA Proxy
HA Proxy Marathon Bridge
![Page 81: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/81.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Service Discovery
Slave 1 Slave 2
UserMgt Port 31100
UserMgt Port 31200
UserMgt Port 31100
CreditApp Port 31200
UserMgt Port : 10000 CreditApp Port : 20000Marathon
HA Proxy
HA Proxy Marathon Bridge
HA Proxy
HA Proxy Marathon Bridge
![Page 82: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/82.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Service Discovery
Slave 1
Marathon
HA Proxy
HA Proxy Marathon Bridge
Slave 2
HA Proxy
HA Proxy Marathon Bridge
UserMgt Port 31100
UserMgt Port 31200
UserMgt Port 31100
CreditApp Port 31200
localhost:10000 { slave1:31100 slave1:31200 slave2:31100
} localhost:20000 {
slave2:31200 }
UserMgt Port : 10000 CreditApp Port : 20000
![Page 83: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/83.jpg)
@XebiaFr @YesWeScale#MesosUniversity
Service Discovery
Slave 1
Marathon
HA Proxy
HA Proxy Marathon Bridge
Slave 2
HA Proxy
HA Proxy Marathon Bridge
UserMgt Port 31100
UserMgt Port 31200
UserMgt Port 31100
CreditApp Port 31200
localhost:10000 { slave1:31100 slave1:31200 slave2:31100
} localhost:20000 {
slave2:31200 }
UserMgt Port : 10000 CreditApp Port : 20000
![Page 84: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/84.jpg)
@XebiaFr @YesWeScale#MesosUniversity
DCOS
![Page 85: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/85.jpg)
@YourTwitterHandle@YourTwitterHandle@XebiaFr @YesWeScale#MesosUniversity
Demo
![Page 86: Ecosysteme mesos university - devoxx france - 8 avril2015](https://reader030.fdocuments.net/reader030/viewer/2022032506/55ca5197bb61eb60778b4812/html5/thumbnails/86.jpg)
@YourTwitterHandle@YourTwitterHandle@XebiaFr @YesWeScale#MesosUniversity
Q & A