5. History of Containers
● Chroot Jail
● FreeBSD Jails
● Linux-VServer
● Solaris Containers
● OpenVZ
● Process Containers
● LXC
● Warden
● LMCTFY
● Docker
● RKT
6. Chroot Jail
- Le Chroot Jail, est pratiquement le
premier conteneur (1979).
- Il permet d’isoler un processus et ses
enfants du reste de l’OS en changeant leur
root directory
- Sécurité: Permet au utilisateurs chrooté
de faire un chroot à leur tour et sortir de
la prison.
7. FreeBSD Jail
- C’est une implémentation propre au
FreeBSD qui est un système UNIX POSIX.
- C’est une forme plus sécurisé du Chroot
Jail
8. - Une solution de virtualisation beaucoup
plus poussée que le simple chroot
- Il permet d’exécuter plusieurs
distributions Linux sur une seule
distributions
- Linux VServer / VPS
Linux-VServer
9. Oracle Solaris Containers
- Une implémentation de Linux-Vserver
pour des processeurs X86 et SPARC
- SPARC est une architecture RISC
(reduced instruction set computing)
développé par Sun Microsystems.
10. OpenVZ
- Similaire aux conteneurs Solaris
- Permet à un serveur physique baremetal
de faire tourner plusieurs systèmes
d’exploitations isolés → des conteneurs.
- Il est utilisé par des sociétés
d’hébergement pour isoler des VPS.
11. CGroups - Process Containers
- C’est un isolateur de processus développé
par Google (CGroups)
- Docker se base sur CGroups
12. LXC - Linux Containers
- Utilise CGroups
- Pas de patch Kernel
- A été utilisé par Docker
13. LMCTFY
- Google a développé les CGroups, qui a été
utilisé par LXC
- Faire tourner des applications dans des
environnements isolés sur le même
Kernel et sans le patcher
- Google: Le leader dans l’industrie des
conteneurs
- Tout, absolument tout, tourne sur des
conteneurs chez Google
- Il y a plus que 2 milliards de conteneurs
qui tournent sur l’infrastructure Google
chaque semaine
20. 2013 - Docker & LXC
- Docker se base sur LXC.
- Sponosrisé par Canonical (Ubuntu)
- A partir de la version 0.9 en 2014, Docker a cessé d’utiliser LXC et a
développé Libcontainer
23. 2015 - RunC
- Gérer Libcontainer sans passer par
Docker
- Standardiser le monde des conteneurs :
On doit pouvoir tourner un conteneur
Docker avec n’importe quel moteur (
RunC ou autre)
- Abstraction de la communication entre
un conteneur Docker et un runtime
24. 2016 - Containerd
- Containerd = Supervision
- Refactory → Containerd est un projet
communautaire Open Source
25. Architecture
- Monolithique → Composants
- Docker Engine crée l’image et la passe à
Containerd
- Containerd appelle Containerd-shim
- Containerd-shim appelle RunC qui
permettra de faire tourner le conteneur
- Containerd-shim permet au runtime de
se libérer une fois que le conteneur
commence à tourner
26. 2017 - Containers Go Mainstream
- Docker est devenu mainstream
- Plusieurs vendors: Mac, Linux, Windows,
AWS, GCP ..etc
- La création de l’OCI (Open Container
Initiative)
- Des nouveaux modèles de développement
et de production
27. The Moby Project
- Un projet pour organiser et modulariser
le développement de Docker
- C’est un écosystème de développement et
de production
- Aucun changement au niveau de
l’utilisation
34. LinuxKit
- Un outil pour créer des système
d’exploitation légers et sécurisés pour les
conteneurs
35. InfraKit
- Distributed / self-healing infrastructures
- Procedural vs Declarative
- Desired State
- InfraKit vs Docker Machine
- InfraKit vs Terraform
36. SwarmKit
- Une boîte à outils pour orchestrer des
systèmes distribués à n'importe quelle
échelle.
- Il inclut des primitives pour la découverte
de nœuds, un consensus basé sur RAFT,
et l'ordonnancement des tâches ..
41. Kubernetes
- Développé par Google
- 15 ans d’expérience en orchestration et
conteneur
- REX réussis: Github, Ebay, Wikimedia ..
42. Kubernetes in the Cloud
- Amazon Elastic Container Service for
Kubernetes (EKS)
- Redhat Openshift
- Google Container Engine (GKE)
- Azure Container Service (AKS)
43. Kubernetes Community
- Organisation en SIG (Special Interest
Groups)
- Google, Redhat, CoreOs, Alibaba,
Microsoft, Samsung, Huawei, Canonical,
IBM, Fujitsu ..etc