Commit 20ec0e4d authored by Martin Souchal's avatar Martin Souchal
Browse files

landscape

parent 498cf727
Pipeline #127862 passed with stages
in 1 minute and 48 seconds
...@@ -53,17 +53,6 @@ ...@@ -53,17 +53,6 @@
- Conclusion - Conclusion
--- ---
# Les conteneurs # Les conteneurs
### Un peu d'histoire...
- Technologie apparue dans Solaris via les jails
- Basé sur les kernel namespaces (kernel 2.4.19) et les cgroups (kernel 2.6.24)
- LXC/LXD en 2008, Docker en 2013
- Kubernetes en 2014 chez Google
- 2015 : Docker top 15 GitHub, création de l'[Open Container Initiative](https://opencontainers.org/) (OCI)
<img style="width:60%; float: right;" src="images/landscape.png" >
---
# Les conteneurs
### Principe de base ### Principe de base
- A l'arrêt, un conteneur est un fichier (ou un ensemble de fichiers) qui est enregistré sur un disque. - A l'arrêt, un conteneur est un fichier (ou un ensemble de fichiers) qui est enregistré sur un disque.
...@@ -71,14 +60,31 @@ ...@@ -71,14 +60,31 @@
- Un appel API au noyau déclenche une isolation supplémentaire (si nécessaire) et monte une copie des fichiers de l'image du conteneur. - Un appel API au noyau déclenche une isolation supplémentaire (si nécessaire) et monte une copie des fichiers de l'image du conteneur.
- Une fois lancés, les conteneurs sont un processus Linux comme un autre. - Une fois lancés, les conteneurs sont un processus Linux comme un autre.
- Un conteneur est immuable (modifier un conteneur = créer un nouveau) - Un conteneur est immuable (modifier un conteneur = créer un nouveau)
---
# Les conteneurs
### Un peu d'histoire...
- 1979 : chroot
- 1999 : jails (Solaris/BSD)
- 2005 : OpenVZ
- Ajout dans le noyau linux des namespaces (kernel 2.4.19) et des cgroups (kernel 2.6.24)
- LXC/LXD en 2008
- Docker en 2013, début du DevOps
- Kubernetes en 2014 chez Google, Nomad chez HashiCorp
- 2015 : Docker top 15 GitHub, création de l'[Open Container Initiative](https://opencontainers.org/) (OCI)
<img style="width:60%; float: right;" src="images/landscape.png" >
---
<img style="width:100%;" src="images/landscape-full.png" >
--- ---
# Open Container initiative (OCI) # Open Container initiative (OCI)
*Le processus de démarrage des conteneurs, ainsi que le format de l'image sur le disque, sont définis et régis par des normes.* *Le processus de démarrage des conteneurs, ainsi que le format de l'image sur le disque, sont définis et régis par des normes.*
- Gouvernance ouverte chapeautée par la Linux Foundation - Gouvernance ouverte chapeautée par la Linux Foundation pour répondre à la volonté d'avoir un écosystème hétérogène dans K8S.
- Standard pour les runtimes et les images de conteneurs (pas les manifestes !) - Standard pour les runtimes (CRI) et les images de conteneurs (pas les manifestes !)
- Ligne de commande unifiée - Ligne de commande unifiée
```bash ```bash
...@@ -92,7 +98,7 @@ ...@@ -92,7 +98,7 @@
--- ---
# Vocabulaire # Vocabulaire
- Runtime : moteur chargé d'executer le conteneur - Runtime : logiciel chargé d'executer le conteneur (docker, lxd, runc, containerd, cri-o, singularity....)
- Image : fichier (ou un ensemble de fichiers) enregistré sur un disque - Image : fichier (ou un ensemble de fichiers) enregistré sur un disque
- Manifeste : Fichier texte, "recette" du conteneur - Manifeste : Fichier texte, "recette" du conteneur
- Registre : un serveur abritant des images de conteneurs - Registre : un serveur abritant des images de conteneurs
...@@ -131,10 +137,13 @@ ...@@ -131,10 +137,13 @@
--- ---
# Runtimes # Runtimes
- Runtimes bas niveau : runc (docker), LXC/LXD, crun, conmon (RedHat), nvidia-docker (Nvidia) - Runtimes bas niveau (proche du kernel) : runc (docker), LXC/LXD, crun, conmon (RedHat), nvidia-docker (Nvidia)
- Runtimes haut niveau : Docker, Singularity, Podman (RedHat), containerd (Docker), CR-IO (Kubernetes), enroot (Nvidia), SmartOs (Samsung) - Runtimes haut niveau (réseau, etc...) : containerd (Docker), CR-IO (Kubernetes), enroot (Nvidia), SmartOs (Samsung), Singularity CRI
- Outils : Docker, Singularity, Podman (RedHat)
- MicroVms : KataContainer (INTEL), Firecracker (AWS), gVisor (google) - MicroVms : KataContainer (INTEL), Firecracker (AWS), gVisor (google)
- Image builder : buildah, img, orca-build... - Image builder : buildah, img, orca-build...
*Toutes ces solutions sont interopérables grâce à OCI.*
<img style="width:30%;" src="images/runtime-architecture.png" > <img style="width:30%;" src="images/runtime-architecture.png" >
<img style="width:20%;" src="images/docker-runtime.png" > <img style="width:20%;" src="images/docker-runtime.png" >
...@@ -328,9 +337,9 @@ ...@@ -328,9 +337,9 @@
# Docker et le calcul # Docker et le calcul
### Un écosystème pas très adapté... ### Un écosystème pas très adapté...
- Docker est adapté pour les micro services (un conteneur, un service), pas très facile de gérer des chaines de calcul - Docker est adapté pour les micro services (un conteneur, un service), pas très facile de gérer des chaînes de calcul
- Network namespace et compatibilité matériel réseau pour cluster (Intel OmniPath, Infiniband...) - Network namespace et compatibilité matériel réseau pour cluster (Intel OmniPath, Infiniband...)
- Aucun support MPI - Aucun support MPI, support GPU non natif
- Image docker : superpositions de couches, pas très portable dans un cluster - Image docker : superpositions de couches, pas très portable dans un cluster
- Sécurité : - Sécurité :
- daemon root à installer sur tous les noeuds de calculs... - daemon root à installer sur tous les noeuds de calculs...
...@@ -461,7 +470,7 @@ ...@@ -461,7 +470,7 @@
* Infrastructure Cloud (Container Library, Remote Builder, et Keystore) * Infrastructure Cloud (Container Library, Remote Builder, et Keystore)
* Possibilité d’exécuter des images Docker et OCI * Possibilité d’exécuter des images Docker et OCI
* Support/isolation réseau (plugins CNI / root uniquement) * Support/isolation réseau (plugins CNI / root uniquement)
* Libre et gratuit / Version pro payante * Libre et gratuit (version CE) / Version pro payante
--- ---
background-image: url(images/singu.png) background-image: url(images/singu.png)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment