Conclusion
Conclusions sur l’écosystème Docker
- La nature facile à déployer des conteneurs et l’intégration du principe d’Infrastructure-as-Code les rend indispensable dans de la CI/CD (intégration continue et déploiement continu).
- Les principaux outils de CI sont Gitlab, Jenkins, Github Actions, Travis CI…
- Gitlab propose par défaut des runners préconfigurés qui utilisent des conteneurs Docker et tournent en général dans un cluster Kubernetes.
- Gitlab propose aussi un registry d’images Docker, privé ou public, par projet.
- Les tests à l’intérieur des conteneurs peuvent aussi être faits de façon plus poussée, avec par exemple Ansible comme source de healthcheck ou comme suite pour les tests.
- Dans une autre catégorie, Gitpod base son workflow sur des images Docker permettant de configurer un environnement de développement
![](../../../images/devops/pipeline_status.png)
Gérer les logs et monitorer des conteneurs
Logging
Avec Elasticsearch, Filebeat et Kibana… grâce aux labels sur les conteneurs Docker
Ou en utilisant des drivers de logs adéquats : https://docs.docker.com/config/containers/logging/configure/#supported-logging-drivers
Monitoring
Gérer le reverse proxy
Avec Traefik, aussi grâce aux labels sur les conteneurs Docker
![](../../../images/docker/traefik-architecture.png)
Ou avec Nginx, avec deux projets :
Limites de Docker
Stateful
- les conteneurs stateless c’est bien beau mais avec une base de données, ça ne se gère pas magiquement du tout
- Réseaux “overlay”: IP in IP, VXLAN…
- …mais on a rapidement besoin de plugins exclusifs à Kubernetes : Calico, Flannel, Canal (Calico + Flannel), Cilium (qui utilise eBPF)
Volumes distribués
- problème des volumes partagés / répliqués
- domaine à part entière
- Solution 1 : solutions applicatives robustes
- Solution 2 : volume drivers avec Docker
- Flocker, Convoy, visent à intégrer une technologie de réplication
- c’est un moyen, pas une solution : reste un outil pour configurer ce que l’on souhaite
DataOps
- Doit se baser sur une solution applicative complète comme Kafka
- avec Compose pour les différents services et Swarm pour le scaling
- Solutions actuelles peut-être plus orientées Kubernetes
- Ressources :
Aller plus loin
- Le livre Mastering Docker, de Russ McKendrick et Scott Gallagher
- les ressources présentes dans la bibliographie
- la liste de Awesome Docker
Dockercraft : administrez vos containers dans Minecraft
Retours
- Comment ça s’est passé ?
- Difficulté : trop facile ? trop dur ? quoi en particulier ?
- Vitesse : trop rapide ? trop lent ? lors de quoi en particulier ?
- Attentes sur le contenu ? Les manipulations ?
- Questions restées ouvertes ? Nouvelles questions ?
- Envie d’utiliser Docker ? ou de le jeter à la poubelle ?