Introduction à Docker

25
Introduction à Docker Balthazar Rouberol - OVH https://ovh.to/pvkQ5Kp 1

Transcript of Introduction à Docker

Page 1: Introduction à Docker

Introduction à Docker

Balthazar Rouberol - OVHhttps://ovh.to/pvkQ5Kp

1

Page 2: Introduction à Docker

Présentation rapide● Début à OVH en 2015● Tech lead Docker chez OVH depuis avril 2016

2

Page 3: Introduction à Docker

Conteneurisation

3

Page 4: Introduction à Docker

But de la Conteneurisation● Isoler un processus et ses dépendances dans une unité auto-contenue

(conteneur)● Imposer des limites de ressources (CPU, RAM, I/O, etc) à ce processus● Isolation des processus: diminution de la surface d’attaque (sécurité

accrue)

4

Page 5: Introduction à Docker

Isolation● Contrôle et limitation de la consommation de ressources (CPU, RAM, I/O)● Isolation réseau (IP, routage, firewall unique par conteneur)● Isolation filesystem● Isolation des utilisateurs/groupes● Isolation des process

5

Page 6: Introduction à Docker

6

Page 7: Introduction à Docker

7

Page 8: Introduction à Docker

Conteneur != VM: architecture

8

Page 9: Introduction à Docker

Conteneur != VM: provisionnement● Une VM est provisionnée en secondes/minutes (le temps de booter l’OS

guest)● Un conteneur est lance en millisecondes

9

Page 10: Introduction à Docker

10

Page 11: Introduction à Docker

«DevOps promotes a set of processes and methods for thinking about communication and collaboration between development, QA, and IT operations.»https://en.wikipedia.org/wiki/DevOps

11

Page 12: Introduction à Docker

Docker

12

Page 13: Introduction à Docker

Cas d’utilisation #1Intégration et déploiement continu

13

Page 14: Introduction à Docker

14

Page 15: Introduction à Docker

Cycle de déploiement rapide et automatique

15

Page 16: Introduction à Docker

Cas d’utilisation #2Architecture monolithique VS micro-services

16

Page 17: Introduction à Docker

17

Page 18: Introduction à Docker

18

Page 19: Introduction à Docker

Architecture micro-service & Docker● Un micro-service = une image, 1+ conteneur● Langage de programmation (potentiellement) différent par service● Equipe (potentiellement) différente par service● Cycle de vie et de déploiement différent par service● Scaling par service, en fonction de la charge● Communication inter-service via des API (REST/SOAP) ou protocoles tels

que gRPC

19

Page 20: Introduction à Docker

20

Page 21: Introduction à Docker

Orchestrateur?● Déploiement multi-nodes● Dépendances de déploiement● Contraintes de répartition● Réseaux privés● Monitoring de santé des conteneurs● Redéploiement des conteneurs “malades”● Load balancing du trafic● etc

21

Page 22: Introduction à Docker

Orchestrateurs open source ● Kubernetes (k8s, Google)● Docker Swarm (Docker Inc)● Marathon (Mesosphere)● Rancher (Rancher Labs)

22

Page 23: Introduction à Docker

Utilisation de Docker chez OVH

23

Page 24: Introduction à Docker

L’infrastructure en quelques chiffres● 7 clusters Mesos/Marathon/Docker

○ Production interne: 3○ Production externe: 2○ Beta/Gamma externe: 2

● 800 hosts● 3000 cores● 12TB RAM● 200 TB disque● 3 registry Docker (externe/interne/équipe)● Des centaines de déploiements par jour● 5 personnes

24

Page 25: Introduction à Docker

Merci!Questions?

25