1
Rich User Experience
with Marathon at Criteo
Clément Michaud
c.michaud@criteo.com
May 31st, 2018
1
About me
Clément Michaud
SRE building the PaaS at Criteo for 9 months.
Previously C++ software engineer at Murex for 3 years.
First contributions to Mesos & Marathon few weeks ago.
clems4ever @clementmichaud1clement.michaud
2
Agenda
1
AboutCriteo
2
Rich
UX
w
ith
M
arathon
3
Conclusion
3
4
About Criteo
4
1.4B
Shoppers per Month
What’s Criteo?
Criteo is a global tech
company
Leader in online
advertisement
Amongst the biggest
Hadoop clusters in
Europe
600TB
Shopper Data per Day
5
6
Mesos in 8 DC
First instances set up
more than 3 years ago.
â—Ź 3 masters per DC
â—Ź 900 agents WW
1
Marathon & Aurora
Used to deploy
long-running
applications and
scheduled tasks
2
User applications
Deployed on top of
Marathon & Aurora3
Orchestration @
6
7
Rich UX with
Marathon
7
Resilience
Applications automatically
re-scheduled after a crash.
Scalability
Mesos & Marathon allow our
users to scale as their needs
evolve.
Accessibility
Our users can customize the
access to their apps (HTTPS, alt
names, stickiness, ...).
Deployability
Deploy apps in few clicks.
Service discovery is
automatically handled.
290+
happy users
Rich UX with Marathon & Marathon UI
8
Investigation
Our custom version of
Marathon UI offers direct links
to Kibana for log analysis.
Security
Application secrets are easily
deployed and only known by
users.
Debuggability
I created a tool for user to spawn
a terminal in their containers.
Multi-tenancy
Users have dedicated
permissions on their apps
and cannot break others’.
300+
apps
Rich UX with Marathon & Marathon UI
9
Journey of a happy developer
Demo
10
Let’s create an app!
3
{
"id": "/incubator/cmichaud/meetup",
...
"portDefinitions": [
{
...
"labels": {
"vip.enabled": "true",
"vip.alternative_name": "["meetup-test"]",
"vip.name": "meetup",
"ctags": "http",
"vip.visibility": "public",
"vip.layer": "l7"
}
}
],
…
"env": {
"SECRET_PASSWORD": "Z5HedRNTF…...",
},
"user": "incubator",
...
}
According to permissions, I have the rights to put my
app called “meetup” into “/incubator/cmichaud”
directory.
End-to-end encryption to protect application secrets.
SECRET_PASSWORD becomes PASSWORD in the
container.
Configuration of load-balancers done with labels.
12
Conclusion
11
13
We can still improve...
â—Ź Add links to metrics in Marathon UI
â—Ź Few bug fixes in Marathon UI
â—Ź Debug applications over SSH
Advice: help yourself by giving the
power to your users!
Conclusion
And all this is
powered by...
14
Thank you
13
15
Projects
13
https://github.com/apache/mesos
https://github.com/ContainX/marathon-ldap
https://github.com/mesosphere/marathon-ui

User experience with Marathon at Criteo

  • 1.
    1 Rich User Experience withMarathon at Criteo Clément Michaud c.michaud@criteo.com May 31st, 2018 1
  • 2.
    About me Clément Michaud SREbuilding the PaaS at Criteo for 9 months. Previously C++ software engineer at Murex for 3 years. First contributions to Mesos & Marathon few weeks ago. clems4ever @clementmichaud1clement.michaud 2
  • 3.
  • 4.
  • 5.
    1.4B Shoppers per Month What’sCriteo? Criteo is a global tech company Leader in online advertisement Amongst the biggest Hadoop clusters in Europe 600TB Shopper Data per Day 5
  • 6.
    6 Mesos in 8DC First instances set up more than 3 years ago. â—Ź 3 masters per DC â—Ź 900 agents WW 1 Marathon & Aurora Used to deploy long-running applications and scheduled tasks 2 User applications Deployed on top of Marathon & Aurora3 Orchestration @ 6
  • 7.
  • 8.
    Resilience Applications automatically re-scheduled aftera crash. Scalability Mesos & Marathon allow our users to scale as their needs evolve. Accessibility Our users can customize the access to their apps (HTTPS, alt names, stickiness, ...). Deployability Deploy apps in few clicks. Service discovery is automatically handled. 290+ happy users Rich UX with Marathon & Marathon UI 8
  • 9.
    Investigation Our custom versionof Marathon UI offers direct links to Kibana for log analysis. Security Application secrets are easily deployed and only known by users. Debuggability I created a tool for user to spawn a terminal in their containers. Multi-tenancy Users have dedicated permissions on their apps and cannot break others’. 300+ apps Rich UX with Marathon & Marathon UI 9
  • 10.
    Journey of ahappy developer Demo 10
  • 11.
    Let’s create anapp! 3 { "id": "/incubator/cmichaud/meetup", ... "portDefinitions": [ { ... "labels": { "vip.enabled": "true", "vip.alternative_name": "["meetup-test"]", "vip.name": "meetup", "ctags": "http", "vip.visibility": "public", "vip.layer": "l7" } } ], … "env": { "SECRET_PASSWORD": "Z5HedRNTF…...", }, "user": "incubator", ... } According to permissions, I have the rights to put my app called “meetup” into “/incubator/cmichaud” directory. End-to-end encryption to protect application secrets. SECRET_PASSWORD becomes PASSWORD in the container. Configuration of load-balancers done with labels.
  • 12.
  • 13.
    13 We can stillimprove... â—Ź Add links to metrics in Marathon UI â—Ź Few bug fixes in Marathon UI â—Ź Debug applications over SSH Advice: help yourself by giving the power to your users! Conclusion And all this is powered by...
  • 14.
  • 15.