La startup Yuzu, accompagnée de la société Vixns, a opté pour le choix d'une infrastructure Docker tournant sur Mesos/Marathon/Consul. De l'environnement de développement jusqu'au monitoring au quotidien, nous vous ferons part de nos erreurs, réussites, workflows et outils utilisés.
31. use tag "latest" on production
use explicit version tags for your
docker images
DON’T
32. use data containers for valuable data
storage layer may crash / change
easy to forget when cleaning unused
containers / images
DON’T
33. use shared storage (glusterfs, nfs, ...) for your codebase,
working dirs, config files or sessions
sloooooooooow
generate scary lock errors and timeouts
fscache crash full systems easily
DON’T
34. tag your custom images with the VCS commit hash
● makes your workflow better (same version tag in VCS
and images)
● prevent useless image rebuilds ( speedup deploys )
● easy way to know exactly which code version is running,
even if the tag was changed / deleted in the VCS
DO
35. avoid shared filesystems
● put all versioned data in containers
● use external object storage for user files (S3, ceph, swift ,...)
● use database / memcached / couchbase for sessions
● use templates to generate local config files (consul-template ,
confd)
DO
36. Use docker independant storage for critical data
● lvm is your friend (unless you use and saturate thin volume
metadata, use thin volumes with care)
● use storage plugins with docker >= 1.9.0 (convoy ?)
● redundant backups saves lives
DO
38. - we tried to put the chicken in the egg
- generate config files to shared storage
- dns for discovery
- use mongo replicaset without sharding
- ...
40. Switch from registrator to mesos-consul
Remove the lasts SPOFs
Move user files to S3
Use the docker storage/network plugins
XDCC
Improve logs & metrics filtering and alerting
41. 2015
Other mesos/docker stories
IPROFS
A large scale php/
drupal worldwide
social app for
“Institut français”
ARTE.TV
We are migrating
all their vod and
svod services to
mesos/docker
(java apps)
VIXNS
A mesos/docker
cluster is collecting
all logs and metrics
from hundreds of
servers