24
DÉPLOIEMENT ET GESTION D'UN SITE WEB AVEC RANCHER Anthony Sigogne 24 novembre 2016 1

Déploiement et gestion d'un site web avec Rancher

Embed Size (px)

Citation preview

Page 1: Déploiement et gestion d'un site web avec Rancher

DÉPLOIEMENT ET GESTION D'UN SITE WEB AVEC RANCHER

Anthony Sigogne24 novembre 2016

1

Page 2: Déploiement et gestion d'un site web avec Rancher

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 solution2

Page 3: Déploiement et gestion d'un site web avec Rancher

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

Page 4: Déploiement et gestion d'un site web avec Rancher

SOMMAIRE

• I - Infrastructures

• II - Orchestrateur Rancher

• III - Déploiement et mise à jour

• IV - Cas d'utilisation

4

Page 5: Déploiement et gestion d'un site web avec Rancher

I - INFRASTRUCTURES

5

Serveur

Site Web (Wordpress, Drupal,

Python, PHP…)Serveur HTTP

Protocole HTTPS

Infrastructure standard (sans Docker)

Outil Analytics

Visiteur

byprog.comBase de données

Page 6: Déploiement et gestion d'un site web avec Rancher

ContainerContainer

Serveur

Container

Container

I - INFRASTRUCTURES

6

Site Web (Wordpress, Drupal,

Python, PHP…)Serveur HTTP

Protocole HTTPS

Infrastructure avec Docker

Outil Analytics

Visiteur

byprog.com

Container

Base de données

Page 7: Déploiement et gestion d'un site web avec Rancher

I - INFRASTRUCTURESLes 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 : Rancher7

Page 8: Déploiement et gestion d'un site web avec Rancher

8

ContainerContainer

Serveur

Container

Container

Site Web (Wordpress, Drupal,

Python, PHP…)Serveur HTTP

Protocole HTTPSOutil AnalyticsContainer

Base de données

I - INFRASTRUCTURESOrchestrateur de containers Docker

Orchestrateur

Page 9: Déploiement et gestion d'un site web avec Rancher

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 Rancher9

Page 10: Déploiement et gestion d'un site web avec Rancher

Serveur hôte II

Serveur hôte IContainer

II - RANCHER

10

Container

Site Web Serveur HTTP

Visiteurbyprog.com

Container

Base de données

Serveur hôte III

Container

Outil Analytics

Connexion de plusieurs hôtes Rancher

OrchestrateurRancher

Page 11: Déploiement et gestion d'un site web avec Rancher

II - RANCHER

11

Interface Utilisateur

Page 12: Déploiement et gestion d'un site web avec Rancher

ContainerServeur

III - DÉPLOIEMENT

12

Container

Container

ContainerSite Web

Serveur HTTP

Protocole HTTPSOutil Analytics

Visiteurbyprog.com

Container

Base de données

1I1

III

IVV

Etapes de déploiement du serveur web

OrchestrateurRancher

Page 13: Déploiement et gestion d'un site web avec Rancher

III - DÉPLOIEMENT• Site Web : Langage Python, Framework Flask (http://

flask.pocoo.org/)

• Base de données : MySQL (https://www.mysql.com/)

• Serveur HTTP : Nginx (https://www.nginx.com/)

• Protocole HTTPS : LetsEncrypt (https://letsencrypt.org/)

• Outil Analytics : Piwik (https://piwik.org/)13

Logiciels utilisés pour la démonstration

Page 14: Déploiement et gestion d'un site web avec Rancher

Serveur

III - DÉPLOIEMENT

14

I - Base de données MySQL

Container

Base de données

port 3306

Dossier fichiers base de données

Volume

Page 15: Déploiement et gestion d'un site web avec Rancher

Serveur

III - DÉPLOIEMENT

15

II - Site Web Python

Container

Base de données

Container

Site Web

port 3306

port 5000

Page 16: Déploiement et gestion d'un site web avec Rancher

Serveur

III - DÉPLOIEMENT

16

III - Serveur HTTP Nginx

Container

Base de données

Container

Site WebPython

port 3306

port 80

Container

Serveur HTTP

port 5000

Page 17: Déploiement et gestion d'un site web avec Rancher

Serveur

III - DÉPLOIEMENT

17

IV - Protocole HTTPS

Container

Base de données

Container

Site WebPython

port 3306Container

Serveur HTTP

port 5000

Container

HTTPS

port 443

Page 18: Déploiement et gestion d'un site web avec Rancher

Serveur

III - DÉPLOIEMENT

18

V - Outil Analytics

Container

Base de données

Container

Site WebPython

port 3306Container

Serveur HTTP

port 5000

Container

HTTPS

port 443

Container

Outil Analytics

port 9000

Page 19: Déploiement et gestion d'un site web avec Rancher

III - DÉPLOIEMENT

19

Export des configurations Docker et Rancher

Page 20: Déploiement et gestion d'un site web avec Rancher

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

RancherModification

manuel version

Toujours la dernière version

Page 21: Déploiement et gestion d'un site web avec Rancher

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

Page 22: Déploiement et gestion d'un site web avec Rancher

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 ?

Page 23: Déploiement et gestion d'un site web avec Rancher

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

Page 24: Déploiement et gestion d'un site web avec Rancher

24