Qu'est-ce qu'un container ? Comment en construire un ? Comment l'héberger dans Azure ? Retrouvez les réponses à vos questions dans cette présentation effectuée lors d'une matinale par Cellenza
5. Serveur
Une Application = Un serveur
Une instance d’application était (ou est) hébergée sur un serveur
physique
Système d’Exploitation hôte
Application
Problèmes
Temps de déploiement
Coûts Importants
Gâchis de ressources
Difficilement Scalable
Difficile à migrer
Enfermé chez un fournisseur
6. Une Application = Une machine virtuelle
Une application est hébergée dans une machine virtuelle
Avantages Inconvénients
Meilleur usage des ressources Guest OS = ressources
Amélioration de la scalabilité Portabilité non garantie
Migration vers le cloud
Isolation
Serveur
Système d’Exploitation hôte
Système d’Exploitation
Application
VM
Hyperviseur
Système d’Exploitation
Application
VM
7. Static
website
Web
frontend
User
DB
Queue Analytics
DB
Background
workers
API
endpoint
nginx 1.5 + modsecurity + openssl + bootstrap 2
postgresql + pgv8 +
v8
hadoop + hive + thrift +
OpenJDK
Ruby + Rails + sass + Unicorn
Redis + redis-sentinel
Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs
+ phantomjs
Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client
Development
VM
QA
server
Public
Cloud
Disaster
recovery
Contributor’s
laptop
Production
Servers
Le problème des applications distribuées…
Demultiplesstacks
technos
Demultiples
matérielset
environnements
Production
Cluster
Customer Data
Center
Est-cequelesservices
etappscommuniquent
bien?
Commentgérerla
migration?
8. Quoi, où, quand, et comment ?
Static website
Web frontend
Background workers
User DB
Analytics DB
Queue
Dev VM QA Server
Single Prod
Server
Onsite
Cluster
Azure
Contributor
laptop
Customer
Servers
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
9. Quelle solution pour optimiser les ressources ?
Supprimer l’OS Guest d’une VM, consommateur de ressources
Conserver la flexibilité des VMs (Scalabilité, maintenance, etc.)
Assurer une meilleur portabilité des applications (migrations de versions
d’OS)
Simplifier le déploiement
Container
13. Static website
Web frontend
Background workers
User DB
Analytics DB
Queue
Dev VM QA Server
Single Prod
Server
Onsite
Cluster
Azure
Contributor
laptop
Customer
Servers
Simplification du modèle
14. Définition du container
Un container est un package qui contient :
Un exécutable
Ses dépendances
Sa configuration
Eventuellement un file system
Pour le système d’exploitation, c’est un programme !
Plus d’OS Guest
Les ressources utilisées sont celles de la machine, et non d’une VM
15. Containers vs. VMs
App
A
Hypervisor (Type 2)
Host OS
Server
Guest
OS
Bins/
Libs
App
A’
Guest
OS
Bins/
Libs
App
B
Guest
OS
Bins/
Libs
AppA’
Host OS
Server
Bins/Libs
AppA
Bins/Libs
AppB
AppB’
AppB’
AppB’
Container
Guest
OS
Guest
OS
VM
16. Le container : Séparation des responsabilités
• Dan, développeur
• S’occupe de l’intéreur du
container
• Le code
• Les bilbliothèques
• La gestion des
dépendances
• La données
• Pour lui, tout les serveurs
sont les mêmes
• Oscar , l’Ops
• S’occupe de l’extérieur
du container
• Logging
• Monitoring
• Réseau
• Tout les containers ont la
même façon de
s’exécuter
18. Docker : un ecosystème
Docker Dameon est installé sur la machine hôte et gère les containers
Docker Client se charge de la communication entre l’utilisateur et le
Docker Daemon
Docker Image est un template de container qui décrit comment le
construire
Docker Container est… un container
Docker Hub est un annuaire centralisé d’images
Docker File est un fichier décrivant couche par couche la construction
d’une image
Docker Swarm est une solution d’administration d’un cluster d’hôtes
Docker
Etc. (Docker Volume, Docker Network, Docker Compose, …)
20. Docker Image
Une image est faite de couches
successives
Chaque couche ajoute au
container
Seule la dernière couche est en
lecture/écriture
21. Réutilisation des couches
Chaque couche possède un
identifiant
Unique pour l’ensemble ‘couche
+ parents’
On peut ainsi réutiliser des
couches d’un container à
l’autre
Economies de temps de
téléchargement
22. Docker File
Décrit la construction d’une
image
Syntaxe particulière
FROM – Base
MAINTAINER – Auteur
RUN – Exécution à la construction
CMD – Exécution à la création
ENTRYPOINT – Point d’entrée
COPY/ADD – Ajout de fichiers
WORKDIR – Changement de
répertoire
ENV – Variables d’environnement
…
25. Docker for Azure
Basé sur Swarm : Mise en cluster de Docker
Compatibilité avec les outils Docker
Failover et Haute disponibilité
Scalable
Orchestrateur de container
Service Discovery
Géré par Docker
Edition Communautre & Entreprise
Entreprise ajoute :
UCP
DTR
Et le support officiel de Docker
27. Azure Container Registry
Registry privé sur votre abonnement Azure
Basé sur Docker Registry v2
Gestion de vos images Docker : ajout, suppression, versioning, etc.
En preview
Base Image Tested Production
Development Test Staging Production Scale Out
Build Ship Run
28. App Service on Linux
Service PaaS App Service basé sur Linux
Annoncé en Septembre
Objectif : simplifié les déploiements de solutions Node, ASP.NET Core, etc