86
@XebiaFr @YesWeScale #MesosUniversity Mesos University @jbclaramonte @plopezFr @jpthiery @aurelienmaury

Ecosysteme mesos university - devoxx france - 8 avril2015

Embed Size (px)

Citation preview

Page 1: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

Mesos University

@jbclaramonte @plopezFr @jpthiery @aurelienmaury

Page 2: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

Agenda• Mesos

• Frameworks

• Mesosphere

• Marathon

Page 3: Ecosysteme   mesos university - devoxx france - 8 avril2015

@YourTwitterHandle@YourTwitterHandle@XebiaFr @YesWeScale#MesosUniversity

Mesos

Page 4: Ecosysteme   mesos university - devoxx france - 8 avril2015

@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

@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

@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

@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

@XebiaFr @YesWeScale#MesosUniversity

Resources• Trois différentes types de resources

• scalars

• ranges

• sets

Page 9: Ecosysteme   mesos university - devoxx france - 8 avril2015

@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

@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

@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

@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

@XebiaFr @YesWeScale#MesosUniversity

Mesos: Web UI

Page 14: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

Mesos: Web UI

Page 15: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

Mesos: Web UI

Page 16: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

Mesos: Web UI

Page 17: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

Mesos: Web UI

Page 18: Ecosysteme   mesos university - devoxx france - 8 avril2015

@YourTwitterHandle@YourTwitterHandle@XebiaFr @YesWeScale#MesosUniversity

Framework

Page 19: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

Framework

Framework = Application

Page 20: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

Frameworks

Page 21: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

Framework : API

Page 22: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

API

Page 23: Ecosysteme   mesos university - devoxx france - 8 avril2015

@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

@XebiaFr @YesWeScale#MesosUniversity

API

Scheduler Mesos (master)

register

time

Executor

Page 25: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

API

Scheduler Mesos (master)

registerregistered

time

Executor

Page 26: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

API

Scheduler Mesos (master)

registerregistered

offer

time

Executor

Page 27: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

API

Scheduler Mesos (master)

registerregistered

offer

launch

time

launch

Executor

Page 28: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

API

Scheduler Mesos (master)

registerregistered

offer

launch

updatetime

launch

Executor

update

Page 29: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

Framework : API

API du Scheduler

Page 30: Ecosysteme   mesos university - devoxx france - 8 avril2015

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@XebiaFr @YesWeScale#MesosUniversity

Framework : API

API de l’Executor

Page 41: Ecosysteme   mesos university - devoxx france - 8 avril2015

@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

@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

@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

@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

@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

@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

@YourTwitterHandle@YourTwitterHandle@XebiaFr @YesWeScale#MesosUniversity

Mesosphere : Chronos & Marathon

Page 48: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

Mesosphere

Florian Leibert

Benjamin HindmanTobi Knaup

Page 49: Ecosysteme   mesos university - devoxx france - 8 avril2015

@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

@XebiaFr @YesWeScale#MesosUniversity

Chronos

Page 51: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

Marathon

Page 52: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

Quoi ?

“Init Daemon” pour Data Center

Private PaaS

Page 53: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

Pourquoi ?

Simplifier

Automatiser

API pour les développeurs

Améliorer l’efficacité

Page 54: Ecosysteme   mesos university - devoxx france - 8 avril2015

@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

@XebiaFr @YesWeScale#MesosUniversity

UI : liste des applications

Page 56: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

UI : créer une application

Page 57: Ecosysteme   mesos university - devoxx france - 8 avril2015

@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

@XebiaFr @YesWeScale#MesosUniversity

Marathon

API REST

Page 59: Ecosysteme   mesos university - devoxx france - 8 avril2015

@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

@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

@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

@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

@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

@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

@XebiaFr @YesWeScale#MesosUniversity

Les contraintes

Contrôler le “où” lors du déploiement

Page 66: Ecosysteme   mesos university - devoxx france - 8 avril2015

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@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

@XebiaFr @YesWeScale#MesosUniversity

Service Discovery

Où est mon application ?

Page 78: Ecosysteme   mesos university - devoxx france - 8 avril2015

@XebiaFr @YesWeScale#MesosUniversity

HaProxy : reload configuration

• HaProxy - Marathon bridge (script)

• Bamboo

Page 79: Ecosysteme   mesos university - devoxx france - 8 avril2015

@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

@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

@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

@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

@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

@XebiaFr @YesWeScale#MesosUniversity

DCOS

Page 85: Ecosysteme   mesos university - devoxx france - 8 avril2015

@YourTwitterHandle@YourTwitterHandle@XebiaFr @YesWeScale#MesosUniversity

Demo

Page 86: Ecosysteme   mesos university - devoxx france - 8 avril2015

@YourTwitterHandle@YourTwitterHandle@XebiaFr @YesWeScale#MesosUniversity

Q & A