Conclusion


Conclusions sur l’écosystème Docker

Configurer de la CI/CD

  • 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

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

Ou avec Nginx, avec deux projets :


Limites de Docker

Stateful

Configurer le réseau de façon plus complexe avec des plugins réseau

  • 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

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 ?