Top Banner
DÉVELOPPER AVEC DOCKER Applications basées sur architecture en micro-services Cédric Villa - Twitter: @zestprod DevelopR6 - 2 Juin 2016
46

Microservices based application development with Docker (French)

Apr 13, 2017

Download

Technology

Cédric Villa
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Microservices based application development with Docker (French)

DÉVELOPPER AVEC DOCKER

Applications basées surarchitecture en micro-services

Cédric Villa - Twitter : @zestprod DevelopR6 - 2 Juin 2016

Page 2: Microservices based application development with Docker (French)

PRÉSENTATION

Page 3: Microservices based application development with Docker (French)

APPLICATION WEB

Page 4: Microservices based application development with Docker (French)

APPLICATION WEB

• Fonctionne partout (navigateur)

• Multi-support (bureau, mobile, tablette)

• Mature

Page 5: Microservices based application development with Docker (French)

DEVOPS

• Développement

• Exploitation

Page 6: Microservices based application development with Docker (French)

DEVOPS

Page 7: Microservices based application development with Docker (French)

DOCKER :PREMIERE IMPRESSION

“Bof”

Page 8: Microservices based application development with Docker (French)

DOCKER :PREMIERE IMPRESSION

• Encore un produit “révolutionnaire”

• Sur papier : ne remplace pas les technologies existantes(LXC, OpenVZ, Puppet, etc.)

Page 9: Microservices based application development with Docker (French)

DOCKER :SECONDE IMPRESSION

“Wow !”

Page 10: Microservices based application development with Docker (French)

DOCKER :SECONDE IMPRESSION

• Extrêmement simpleà utiliser

• Technologie plus poussée que celles testées(copy-on-write)

• Communauté / abondance de modules utilisables “clés en main”

Page 11: Microservices based application development with Docker (French)

APPLICATION MONOLITIQUE

VSARCHITECTURE EN

MICRO-SERVICES

Page 12: Microservices based application development with Docker (French)

CHOIX D’UN LANGAGE

APPLICATION MONOLITIQUE

VSARCHITECTURE EN

MICRO-SERVICES

Page 13: Microservices based application development with Docker (French)

APPLICATION MONOLITHIQUE

• Choix d’un langage en commun

• “Polarise” l’équipe

• Investissement lourd

• Difficulté de “recruter”

• Limite les choix de bibliothèques

Page 14: Microservices based application development with Docker (French)

• Chaque module peut avoir son langage

• Le meilleur langage de programmation ?Celui que vous connaissez le mieux.

• Bénéficier de l’experience detous les membres du projet.

• Disposer de toutes les bibliothèques

ARCHITECTURE EN MICROSERVICES

Page 15: Microservices based application development with Docker (French)

MAINTENANCE

APPLICATION MONOLITIQUE

VSARCHITECTURE EN

MICRO-SERVICES

Page 16: Microservices based application development with Docker (French)

APPLICATION MONOLITHIQUE

• Pour un nouveau développeur

• Découragé par énorme historique

Page 17: Microservices based application development with Docker (French)

• Le nouveau développeur

• Ne connait l’historique détaillé que de sa partie

• Peut connaitre l’environnement global dans les grandes lignes

ARCHITECTURE EN MICROSERVICES

Page 18: Microservices based application development with Docker (French)

COMMUNICATION

APPLICATION MONOLITIQUE

VSARCHITECTURE EN

MICRO-SERVICES

Page 19: Microservices based application development with Docker (French)

APPLICATION MONOLITHIQUE

• Beaucoup de travail pour coordonner tout le monde

• Plus le projet grossit, plus c’est difficile

Page 20: Microservices based application development with Docker (French)

• Chaque module peut être développé indépendamment par une petite équipe (limiter les canaux de communications)

• Responsabilité sur le bon fonctionnement du module

ARCHITECTURE EN MICROSERVICES

Page 21: Microservices based application development with Docker (French)

MISE À L’ÉCHELLE

APPLICATION MONOLITIQUE

VSARCHITECTURE EN

MICRO-SERVICES

Page 22: Microservices based application development with Docker (French)

APPLICATION MONOLITHIQUE

• Mise à l’échelle sur une seule dimension

• Soit un plus gros serveur

• Soit plusieurs applications derrière un load balancer

• La performance de l’application est une chaine composés de maillons

• Il est plus difficile de renforcer les maillons faibles dans une application monolithique

Page 23: Microservices based application development with Docker (French)

• Mise à l’échelle indépendante surchaque module

• Possibilité de renforcer uniquement les maillons faibles (bottlenecks)

• Processus simplifié et économique

ARCHITECTURE EN MICROSERVICES

Page 24: Microservices based application development with Docker (French)

OUTILS DOCKER

Page 25: Microservices based application development with Docker (French)

OUTILS DOCKER

• docker

• docker-compose

• docker-machine

• docker-swarm

Page 26: Microservices based application development with Docker (French)

ORCHESTRATION

Page 27: Microservices based application development with Docker (French)

• Processus indépendant

• Communication entre les modules

• Optimisation des performances

• Gestion des ressources

ORCHESTRATION

Page 28: Microservices based application development with Docker (French)

• Outils

• Docker-compose

• IDE multi-projets

ORCHESTRATION

Page 29: Microservices based application development with Docker (French)

• Compatible AGILE

ORCHESTRATION

Page 30: Microservices based application development with Docker (French)

TEST EN BOITE NOIR

• Test global• Simuler interactions

utilisateurs (scénarios)

Page 31: Microservices based application development with Docker (French)

MODULARITÉ

Page 32: Microservices based application development with Docker (French)

JEU D’ASSEMBLAGE

Page 33: Microservices based application development with Docker (French)

CARACTÉRISTIQUES D’UN CONTAINER

• Equivalent à une machine virtuelle

• Communique avec d’autre conteneurs

Page 34: Microservices based application development with Docker (French)

RECHERCHE DE COMPOSANTS EXISTANTS

Page 35: Microservices based application development with Docker (French)

RECHERCHE DE COMPOSANTS EXISTANTS

• Ne pas réinventer la roue

• Améliorer plutôt que dupliquer

Page 36: Microservices based application development with Docker (French)

DISTRIBUTION• Container autonome

• Environnement (OS, bibliothèques)

• Simplicité d’utilisation

• Un fichier de configuration

• Une interface pour les I/O

Page 37: Microservices based application development with Docker (French)

AVANTAGES

• Capitaliser sur développements

• Service à la communauté

• (et participation)

Page 38: Microservices based application development with Docker (French)

DIFFICULTÉ

• Difficile à faire la promotion d’un module

• Doit vraiment apporter une grande valeur

• On part de “0” (sauf si on adapte un produit populaire)

Page 39: Microservices based application development with Docker (French)

CONSEILS

• KISS (keep it simple stupid)

• Convention over configuration

• Configuration peut-être une barrière

• Apporter de la valeur (simplicité, efficacité)

Page 40: Microservices based application development with Docker (French)

MISE EN PRODUCTION

Page 41: Microservices based application development with Docker (French)

INTERFACE AVEC MACHINE DE PRODUCTION

• docker-machine

$ docker-machine ls NAME ACTIVE DRIVER STATE URL app-qualif generic Running tcp://XXX.XXX.XXX.XXX:2376 app-prod generic Running tcp://XXX.XXX.XXX.XXX:2376 default virtualbox Saved dev virtualbox Stopped

$ docker-machine create \ --driver generic \ --generic-ip-address=203.0.113.81 \ --generic-ssh-key ~/.ssh/id_rsa \ vm

Page 42: Microservices based application development with Docker (French)

DÉPLOIEMENT EN PRODUCTION

• Environnement de production

• Fichier docker-compose.prod.yml

• Fichiers d’environnement (attention, contient des mots de passes et données sensible, ne pas versionner)

Page 43: Microservices based application development with Docker (French)

PRINCIPES DE SÉCURITÉ

• Disponibilité

• Intégrité

• Confidentialité

Page 44: Microservices based application development with Docker (French)

PRINCIPES DE SÉCURITÉ

• Cacher les containers (firewall)

• N’autoriser que les communications nécessaires

• Frontend

• Communications privées entres containeurs

Page 45: Microservices based application development with Docker (French)

PRINCIPES DE SÉCURITÉ

• Garantir la disponibilité

• Surveillance

• Mécanisme d’auto-redémarrage

• restart: always dans docker-compose

Page 46: Microservices based application development with Docker (French)

MERCI !(QUESTION ?)