Docker by aymen el amri
Last updated
Last updated
Meetup sur docker dans les locaux de Comet. Comet, une startup qui aide les freelances à se connecter à des missions pour des grands groupes, organisent régulièrement des meetups ciblant les développeurs.
Ce soir Aymen, un développeur / depOps connu pour sa connaissance de Docker nous présentent le système de container, Docker et son écosystème.
Aymen nous fait un panorama de systèmes de containers avant Docker depuis les années 80. Puis il nous détaille la mise à l'échelle impressionnante de la communauté open source vite rejoint par les géants du Web comme Google, Amazon...
Enfin il passe en revue des outils de la communauté, qui sont intéressants de tester. Et replace en perspective l'importance de l'orchestration et de Kubernetes devenu presque aussi important que le conteneur lui-même.
Par Aymen El Amri CEO de eralabs.io / Dev ops Services Twitter @eon01 Github @eon01 Fait parti de la De la communauté de http://devopslinks.com
Docker n'est pas le premier système de conteneurs. Chroot jail le premier système basé sur les conteneurs date de 1979 !
Chroot Jail
CGroups
LXC : Linux container
LMCTFY by Google "Let Me Contain That for You" tourne sur des conteneurs chez Google.
Docker en 2013 : le plus populaire jusqu'à maintenant car plus developer friendly. Plus simple à configurer
RKT Rocket : plus sécurisé et standardisé
Docker permet à des développeurs de manipuler des ressources de Dev ops, sans la complexité.
Containers vs VMs (Virtual Machines) :
Docker est beaucoup plus léger car il ne comprend pas l'OS.
Docker entreprise Edition
Docker community Edition
Swarm : Orchestration
containerd : Container Runtime
Docker engine: Le process docker principal
Docker compose: On veut installer LAMP, on créait 3 conteneurs, pour PHP, MYSQL et PHP Docker compose permet de lier les 3 conteneurs qui définisent ces trois conteneurs
Docker Machine: Permet de créer des machines virtuelles auto-executable, générer des images sur Amazon...
LXC : A la base Docker se basait sur LXC, une technologie de conteneurs
LibContainer : Puis ils ont développé leur propre système de conteneurs libcontainer. Permet d'accéder aux linux facilities... qui touchent à l'isolation et à la securité.
RunC : En 2015, développement de RunC, le developpement est open source, mais soutenu par des grands groupes, Google... Abstraction entre la communication entre le conteneur et un runtime
ContainerD : en 2016 permet de faire de la supervision des processus
Passage d'une architecture monolytique à une architecture par composants
2017, les containeurs sont devenus mainstream, Google cloud, Amazon, Aws ...
Moby project : permet de modulariser le développement de Docker.
ContainerD : gère le cycle de vie
LinuxKit : permet de créer des distributions linux à partir d'un fichier yaml Permet de créer des machines virtuelles pour des clouds publics comme celui d'Amazon
InfraKit : Déclaratif desired state, on ne décrit pas les actions, mais l'état que l'on veut attendre
SwarmKit : Orchestrer des systèmes distribués
Swarm vs Kubernetes.
Kubernetes est inclu nativement comme Swarm on peut choisir son orchestration. Indispensable pour mettre en production.
Docker Swarm: simple à utiliser et inclu dans Docker. Bien pour commencer
Kubernetes: Plus complexe mais leader du marché de l'orchestration. Utilisé par Github, Wikimedia...
Mesos: Utilisé par Netflix, Twitter...
Les services cloud sont en compétition pour offrir une implémentation de Kubernetes la plus aisée possible.
Service cloud kubernetes :
GKE de google
Amazon ECS (la version amazon) et EKS (Kubernetes) / Azure ACS
Cloud alibaba
Cloud Redhat
Quel est le meilleur site pour commencer ?
Le site de docker est bien pour commencer, Docker Academy... jusqu'à Swarm. Pour Kubernetes, il faut passer à autre chose.
Je ne suis pas devops mais dev, j'utilise docker compose en prod. Est ce que Swarm est utilisable en prod ?
Pour une application très simple avec une API en node js et le front sur Angular. Le Docker swarm permet de faire un cluster avec le front et le back. Et donc Swarn suffit pour des architectures simples. Kubernetes est recommmandé pour aller plus loin.
Est ce que Docker Swarm a un réel overhead sur les perfs par rapport à une install native
Un container par machine virtuelle sans orchestration c'est du gaspillage. Avec de l'orchestration, on peut mettre beaucoups de conteneurs sur la même machine. Ils peuvent communiquer à travers un reseau interne, ou si si plusieurs machines, récréer un lien virtuel entre tout ces conteneurs sur plusieurs machines.
As-tu testé Traefik ?
Traefik permet de gérer des micro-services. Les micro-services sont moins en vogue et rejoignent les conteneurs, car ils partagent les mêmes concepts, la découverte...
Le futur du conteneur ?:
Stateless et Serverless !
La base de donnée dans un conteneur ?
Pas le plus simple, et pas dans la logique stateless. Plus simple d'avoir une base de donnée dans le cloud, le faire avec des conteneurs moins simple. Une intervention d'un développeur: la base de donnée peut être mis dans un container, mais la data elle-même est mis sur le host du container. L'avantage de mettre la base de donnée dans un containeur permet de mettre à jour la version de base de donnée, très simplement....