Nous verrons comment déployer en quelques minutes un site web sur un serveur privé grâce à une infrastructure sous forme de containers Docker : du serveur HTTP (Nginx) à la certification SSL (LetsEncrypt) en passant par l'installation d'un outil analytics (Piwik). Pour créer et gérer notre stack de containers, nous utiliserons Rancher, un service d'orchestration basé sur une interface utilisateur ergonomique.
Présentation faite lors du Docker Meetup Nouméa du 24/11/2016 :
http://www.meetup.com/fr-FR/Docker-Noumea/events/234912937/?eventId=234912937
2. OBJECTIFS
• Montrer les étapes de déploiement et de gestion
d’un site web avec une solution basée sur Docker
et Rancher
• Montrer les avantages et les inconvénients de la
solution
• Déterminer les cas d'utilisation de la solution
2
3. MON PROFIL
• Docteur en informatique,10 ans de R&D
• Freelance depuis début 2016 via mon entreprise
indépendante ByProg (https://www.byprog.com)
• 6 mois d’utilisation de Docker et Rancher, à titre
personnel et professionnel
3
4. SOMMAIRE
• I - Infrastructures
• II - Orchestrateur Rancher
• III - Déploiement et mise à jour
• IV - Cas d'utilisation
4
5. I - INFRASTRUCTURES
5
Serveur
Site Web
(Wordpress, Drupal,
Python, PHP…)
Serveur HTTP
Protocole
HTTPS
Infrastructure standard (sans Docker)
Outil Analytics
Visiteur
byprog.com
Base de
données
7. I - INFRASTRUCTURES
Les deux infrastructures se ressemblent fortement, à quoi bon utiliser
Docker ?
=> Multiples raisons :
• isolation des briques
• redéploiement rapide
• mise à jour des briques aisée,…
=> Orchestrateur de containers : Rancher
7
9. II - RANCHER
• http://docs.rancher.com/rancher/v1.2/en/
• Orchestrateur de containers Docker, accessible depuis
une interface web ergonomique et efficace
• Le serveur Rancher est un container Docker
• Catalogue de containers disponible
• Connexion possible de plusieurs hôtes Rancher
9
10. Serveur hôte II
Serveur hôte I
Container
II - RANCHER
10
Container
Site Web Serveur HTTP
Visiteur
byprog.com
Container
Base de
données
Serveur hôte III
Container
Outil Analytics
Connexion de plusieurs hôtes Rancher
Orchestrateur
Rancher
16. Serveur
III - DÉPLOIEMENT
16
III - Serveur HTTP Nginx
Container
Base de
données
Container
Site Web
Python
port 3306
port 80
Container
Serveur
HTTP
port 5000
17. Serveur
III - DÉPLOIEMENT
17
IV - Protocole HTTPS
Container
Base de
données
Container
Site Web
Python
port 3306
Container
Serveur
HTTP
port 5000
Container
HTTPS
port 443
18. Serveur
III - DÉPLOIEMENT
18
V - Outil Analytics
Container
Base de
données
Container
Site Web
Python
port 3306
Container
Serveur
HTTP
port 5000
Container
HTTPS
port 443
Container
Outil Analytics
port 9000
20. III - DÉPLOIEMENT
20
Mise à jour du site
Exploiter le système de versioning de Docker
Modifier
fichiers
brique
Regénérer
container
Envoi sur
un dépôt
Rancher
Modification
manuel version
Toujours la
dernière version
21. IV - CAS D'UTILISATION
• UI de Rancher intuitive même pour un néophyte
• Déploiement rapide des briques du site
• Taille souvent élevée des images de containers
• Temps de configuration équivalent à une méthode de
déploiement standard (sans Docker)
21
Avantages et inconvénients de Docker et Rancher
22. IV - CAS D'UTILISATION
• Nombre important de visites quotidiennes (ex: e-commerce)
• Infrastructure contenant beaucoup de briques (ex: gestion
des sites de sous-domaines)
• Modifications régulières sur les briques (ex: logiciel disposant
d'une UI)
22
Pour quels types de site ?
23. POUR ALLER PLUS LOIN
• Pourquoi Dockeriser son site web ? http://www.journaldunet.com/
solutions/cloud-computing/1159812-pourquoi-dockeriser-son-site/
• Automatiser le déploiement d'un site web :
• Valentin Ouvrard, FADD https://fadd.opsnotice.xyz/home/
• Autres orchestrateurs :
• Kubernetes http://kubernetes.io/
• Docker Swarm https://docs.docker.com/swarm/
23