Damien DUPORTAL
- Worldline (Atos)
- damien.duportal@worldline.com
- damien.duportal@gmail.com
- @DamienDuportal
- dduportal
Un chat c'est mignon
Mais ça peut coûter cher
Et grossir très (trop ?) vite
Les vaches c'est moins mignon...
Mais c'est plus pratique
On peut les rentabiliser
Mais il faut apprendre à gérer le troupeau
Oui, les "baleines" ?
Pets vs. Cattle
Métaphore pour illustrer la capacité de mise à l'échelle de votre plateforme :
- Pets == Scale Up :
J'augmente la taille de mes noeuds
- Cattle == Scale Out :
J'ajoute plus de (petits) noeuds
Pets vs Cattle
Ce qu'apporte Docker 1/3
Ce qu'apporte Docker 2/3
Ce qu'apporte Docker 3/3
Modèle du troupeau
Un processus par containeur
Donc "Docker + chats" =
Pourquoi ?
Utilisez le bon outil pour votre contexte !
Soit une application Wordpress
Dockerfile (App V1)
FROM tutum/lamp
MAINTAINER damien.duportal@gmail.com
ADD ./my-wordpress-app /app
EXPOSE 80 3306
CMD ['/run.sh']
Docker run (App V1)
$ docker build -t my-wp-app .
Step 0
...
$ docker run -p 80:80 my-wp-app
e565fbbc6033e565fbbc6033
Un chat et une vache !
Dockerfile 1 (App V2)
FROM my-apache-php
MAINTAINER damien.duportal@gmail.com
ADD ./my-wordpress-app /app
EXPOSE 80
CMD ["/usr/sbin/apache2","-D","FOREGROUND"]
Dockerfile 2 (App V2)
FROM my-mysql
MAINTAINER damien.duportal@gmail.com
ADD monscript.sql /app/
RUN mysql < /app/monscript.sql
EXPOSE 3306
CMD ["/usr/bin/mysqld_safe""]
Docker run (App V2)
$ docker build -t my-wp-app ./dockerfile1/
...
$ docker build -t mysql ./dockerfile2/
...
$ docker run --name mysql mysql
e565fbbc6033e565fbbc6033
$ docker run --link mysql:db -p 80:80 my-wp-app
3994fc1486923994fc148692
Des troupeaux de vaches
Et un chat de berger !
Grâce à Docker :
- > Coût diminué pour provisionner et lancer des serveurs
- > Interêt de mutualiser les services == 0
Conséquences :
- > Cloudification accélérée des applications
- > La poussière sous le tapis revient !
Votre application est-elle "12 factors" ?
Merci ! Des questions ?
Quelques ressources pratiques :