Cloud Native 20 septembre 2016 Groupe 6 pays 18 bureaux 35 data centres 1100 collaborateurs 950 ingénieurs 5500 clients 256 M de CA France 5 sites Paris Suresnes Rennes Lille Caen ID: 799825
Download The PPT/PDF document "Présentation Claranet Meetup" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Présentation Claranet
Meetup
Cloud Native 20
septembre
2016
Slide2Groupe
6
pays
18 bureaux 35 data centres+1100 collaborateurs+950 ingénieurs +5500 clients+256 M€ de CA
France5 sites(Paris, Suresnes, Rennes, Lille, Caen)5 data centres+ 390 collaborateurs1100 clients1er partenaire AWS+76 M€ de CA
Spécialiste Internet depuis 1996
Chiffres
clés
Slide3H
ébergement
& infogérance
d’applications critiques
Audit sécurité & application Conseil en architecture Transformation digitale Modèle économique et technique adaptable et évolutif
Déploiement d’architectures, automatisation
Conseils
en a
daptation
et optimisation des applications Migration des applications et données
24x7 Infogérance applicative DevOps, intégration continue SecOps, sécurité opérationnelle Amélioration continue Portail clients
Sécurité Performance Disponibilité Gouvernance
H
ébergement
&
infogérance
d’applications
critiques
Slide4Business Apps
Cloud Public
Critical Data
Web
Expertises spécifiques
Institutionnel
Événementiel
eCommerce
PCI-DSSeSanté “Go to cloud”
AWS SecOps Azure “Go to SaaS”
S.I
Collaboration
IoT
/Big Data
On-
prem
Slide5Positionnement
Gestion de l’Application
3-tiers (présentation, moteur applicatif, base de données)
MCO Applicative 24/7
Sur procédure
Support de l’OS
Gestion des patchs, Monitoring
Support Matériel
Firewall, Load-balancers, stockage, serveurs de sauvegarde,...
Infrastructure Datacentre
Espace au sol, refroidissement,
électricité, sécurité physique
Réseau Infrastructure
WAN, réseau privé,
sécurité
Managed
Hosting
Managed
Hosting
Plus
Managed
Application
Hosting
Enjeux Business
Augmenter le revenu, réduire les coûts, améliorer la visibilité de la marque, faire face à des pics de charge,
Améliorer la sécurité, la disponibilité, la performance
Slide6De l’utilisateur final à l’application
Antivirus
Cache
Infrastructure
Cache Local
CDN
CDN
Sécurité
Firewall
Anti-
DDoS
StockageSauvegardeArchivage
PCA / PRAIPSWAFServices ManagésOS
Continuité
Base de données (RDS, No SQL, MySQL, DB2, SQL Server, …)
Middleware (J2EE, PHP, …)
Applications (Drupal, Hybris
, CQ5
, Magento, …)
Claranet
Cloud
P
ublic
Slide7Troubleshooting
Applicatif
avec monitoring 3
niveaux (end-user) Gestionaire applicatif Application Performance Management (APM) Disponibilité applicative (PCA, PRA)
Ing
énierie
en 24x7
sur
site, basé en France Platform Manager Automatisation, Déploiement continu, Infrastructure as Code
Prévention (pentest, audit de vulnérabilité) Détection et réaction (WAF, IPS, SIEM, log mgmt, DDoS protection) SOC : Sécurité opérationalle associée au MCO
applicatif
Certifications (PCI-DSS, HDS, ISO-27001)
Claranet Lab :
Incubateurs
de
nouvelles
technologies
POC :
co-
investissement
Veille
technologique
, ateliers techniques
Mobilisation
d'experts
en mode
projet
(scrum, agile)
Notre approche
différenciante
Application
first
DevOps
SecOps
®
I
nnovation by design
Slide8Magic Quadrant,
Managed Hybrid Cloud Hosting Europe
Leader 2013, 2014, 2015 et 2016
Certifications et reconnaissance
Classement IP-Label : Hérbergeurs haute-disponibilité
Slide9Références sectorielles
Pure
players &
eCommerceSarenzaEntre particuliersEasyvoyageTravelsoft
Voyageurs du mondeMyMajorCompany BilletReducDiorPrivate outletNetVibesRégions JobsAd4ScreenGeneanetEpticaJolie cloud
BluekiwiWitbeOrcanta
Célio
…
Médias
Édition
, events
TV5 MondeL‘ExpressPublic SénatMeltyEditions Francis Lefevre1997 MediaVoiles & VoiliersPink TVTêtuLes cahiers du footLe
GorafiLes éditions indépendantesHavas 360Particuliers et finances éditionBauer Média…Marchés
Publics &institutionnels
Bretagne Online
Chambres d’Agricultures
Chateau de Versailles
Comutitres
InpesInstitut
Français
Medecins
sans
frontieres
Rennes
Métropole
Sidaction
Solidarité
Sida
Telethon
World Food Program
…
eSanté
Healthcare
Voluntis
Agfa Healthcare
Amedim
Basse
Normandie
Blue
Kango
CHIC
Mutualité
Française
Philips
Poitou Charente
Sephira
Telemis
Unilabs
…
CAC40
Grandes
Entreprises
Airbus
Atos
Bouygues
Télécom
Celio
Décathlon
GDF Suez
IFCAM (
Crédit
Agricole
)
Orange
Societe
Generale
Sojasun
Somfy
ThyssenKrupp
Total
Transdev
Veolia
Environnement
Yves
Rocher
…
Slide10Docker clustering
Présentation rapide
Les enjeux du
clusteringEcosystème autour de docker
CHEF DE PROJET & EXPERTS SECURITESCHEF DE PROJET
Slide11Docker clustering
Présentation rapide
Les enjeux du
clusteringEcosystème autour de docker
CHEF DE PROJET & EXPERTS SECURITESCHEF DE PROJET
Slide12Docker clustering
Présentation rapide
Les enjeux du
clusteringEcosystème autour de docker
CHEF DE PROJET & EXPERTS SECURITESCHEF DE PROJET
Slide13Monolith application
Developers
APPS
Delivery pipeline
Release
Test
Build
Server
OS
KernelBin / LibsAPP AHello World, Welcome World
Slide14Microservices application
Developers
Service
Delivery pipeline
Release
Test
Build
Server
OS
KernelBin / LibsHello WorldServiceServiceServices
Release
Test
Build
Release
Test
Build
Service APP B
Welcome
World
Hello World
Team
Welcome
World
Team
Slide15Microservices Application
Server
OS
KernelBin / Libs
Welcome WorldAPP BHello World
Slide16Microservices Application
Server
OS
KernelBin / LibsAPP A
WelcomeWorldAPP BHello WorldBin /
LibsAPP BBin / Libs
APP C
Slide17???
Les solutions ?
Virtualenv
Machine virtuelle par serviceUtiliser chroot
Slide18BUILD
PULL
RUN
CLIENT
HOST
DAEMON
REGISTRY
CLI
REMOTE
API
CONTAINERS
IMAGES
Slide19BUILD
PULL
RUN
CLIENT
HOST
DAEMON
REGISTRY
CLI
REMOTE
API
CONTAINERS
IMAGES
DAEMON
DAEMON
SWARM
COMPOSE
PRIVATE REGISTRY
SCAN
OVERLAY NETWORK
Slide20Docker
Server
OS
Docker Engine
Hello WorldWelcome WorldUn chroot amélioré (lxc + cgroups)Un outil pour construire les conteneurs
Un écosysystem pour la mise en réseau et en cluster
Gestion des volumes
Une API
Slide21Images
Slide22Images
Slide23Images
Système de fichier pour le stockage des images Docker et des conteneurs
La couche d’écriture est perdue lors de l’arrêt d’un conteneur.
Slide24Images
Réutilisation des couches entre les conteneurs
Slide25Les volumes
Server
OS
/var/lib/docker/volumes/85a34Docker Engine
Hello World/var/www/Welcome World# docker volume create# -v /
src/webapp:/var/www
Slide26Registry
REGISTRY
STORAGE
Repository
Repository
Repository
ACCESS CONTROL
API
HOST
DAEMON
CONTAINERS
DOCKER HUB / PRIVATE REGISTRY
Slide27Docker clustering
Présentation rapide
Les enjeux du
clusteringEcosystème autour de docker
CHEF DE PROJET & EXPERTS SECURITESCHEF DE PROJET
Slide28Les enjeux du
clustering
?
Répondre aux besoins de HARépondre aux besoins de montées en chargeRéduire les coûts d’infrastucture ( une machine, une fonction )Abstraction de la couche système ( application first )Transformer le datacenter
en cluster de ressources
Slide29d
Les enjeux du
clustering
OSKernelBin / Libs
Welcome WorldAPP BHello WorldOS
Kernel
Bin /
Libs
Welcome
World
APP B
Hello WorldOSKernelBin / LibsWelcome WorldAPP B
Hello WorldCLUSTER SWARM
Slide30Les problèmes à résoudre ?
Comment partager les données entre les conteneurs (configuration, données applicatives)
Comment faire discuter les conteneurs entre plusieurs hôtes Docker ?
Comment orchestrer le déploiement des conteneurs sur le cluster ?Comment distribuer la charge du cluster ?
Slide31Comment interconnecter les conteneurs entre les nœuds Docker ?Utilisation d’un réseau virtuel Docker : Overlay network
Les composants du
clustering
dockerHello WorldHello World
Nginx
Réseau virtuel d’overlay
eth1
eth1
LAN
Slide32La configuration du réseau d’overlay doit être commune à tout les nœuds Docker.
Comment faire ?
Configuration réseau
Slide33Consul : Un service registry
Consul server
KV
HTTP RESTDNS
RéplicationHTTP UIConsul serverKVHTTP RESTDNS
HTTP UI
Slide34Synchronisation de la configuration des nœuds Docker via consul
Consul et Docker
Consul server
KVHTTP RESTDNS
HTTP UIDockerDocker
Slide35Comment distribuer la charge du cluster ?
Slide36docker
run
–d swarm
agent consul://172.17.0.1Docker Swarm : Container schedulerConsul serverKVHTTP RESTDNS
HTTP UIDockerDockerSwarm agent
Swarm agent
Slide37docker
run
–d swarm
master consul://172.17.0.1Docker SwarmConsul serverKVHTTP RESTDNS
HTTP UIDockerDockerSwarm agentSwarm
agent
Swarm
master
Slide38Docker Swarm : Container
scheduler
Consul server
KVHTTP RESTDNS
HTTP UIDockerDockerSwarm agentSwarm agent
Swarm
master
HTTP REST
HTTP REST
HTTP REST
Slide39Commandes Docker docker info
Commandes
Swarm
docker –H 10.0.0.2:4000 infoApi Swarm et Docker
Slide40Haute disponibilité du réseau Conteneur
Keepalived
Réplications des données
GlusterfsContinuité de servicesSwarmHA et Docker
Slide41HA avec Swarm :
Docker
Docker
eth010.0.0.2
eth010.0.0.3nginxnginxGlusterFS/etc/nginx/nginx.conf
DNS
app.mydomain.com
Slide42HA avec Swarm
Docker
Docker
keepalived
keepalivedeth010.0.0.2eth010.0.0.3nginxnginx
GlusterFS/etc/nginx/nginx.conf
VIP
10.0.0.10
Slide43Continuité de service
Docker
Docker
keepalived
keepalivedeth010.0.0.2eth010.0.0.3nginxnginx
GlusterFS/etc/nginx/nginx.conf
VIP
10.0.0.10
Slide44Comment assurer la disponibilité du service ?
Utilisation d’un service
registry
Consul, etcd, zookeeperDNS dynamiqueRedondance des conteneursRescheduling on-failureContinuité de service
Slide45Pattern service
discovery
Webapp_1
Consul serverKVRequête d’enregistrementHTTP REST
Webapp_21DNSwebapp CNAME webapp_1webapp CNAME webapp_2
Slide46Pattern service
discovery
Webapp_1
Consul serverKVHTTP RESTWebapp_2
DNSwebapp CNAME webapp_1webapp CNAME webapp_2nginxA chaque requète Nginx résout le nom : webapp.service.consul
2
Slide47Pattern service discovery
Webapp_1
Consul server
KVHTTP RESTWebapp_2
DNSwebapp CNAME webapp_1webapp CNAME webapp_2nginxwebapp.service.consul3
Nginx redirige les requêtes vers les frontaux
Slide48Pattern service discovery
:
Failure detection
Webapp_1Consul serverKVHTTP RESTWebapp_2
DNSwebapp CNAME webapp_1webapp CNAME webapp_2nginxwebapp.service.consul3
Nginx
redirige les requêtes vers les frontaux
Health
check régulier sur les services enregistrés
4
Slide49Pattern service discovery
:
Failure recovery
Webapp_1Consul serverKVHTTP RESTWebapp_2
DNSwebapp CNAME webapp_1webapp CNAME webapp_2nginxwebapp.service.consul3
Nginx redirige les requêtes vers les frontaux
Slide50docker
run
--restart on-failure:3 nginx Docker Swarm : Container schedulerDockerDockerSwarm agentSwarm
agentSwarm master
HTTP REST
HTTP REST
Web_app1
nginx
nginx
Slide51Redémarrage des conteneurs sur les nœuds physique restant
Swarm
: Container
reschedulingDockerDockerSwarm agentSwarm agent
Swarm masterHTTP RESTHTTP REST
Web_app1
nginx
nginx
Web_app1
Slide52Docker clustering
Présentation rapide
Les enjeux du
clusteringEcosystème autour de docker
CHEF DE PROJET & EXPERTS SECURITESCHEF DE PROJET
Slide53Docker-compose
Déploiement automatisés
Slide54Ansible
Déploiement automatisés
-
hosts: node
tasks: - name: application container docker: name
: swarm_manager
image
:
swarm
state:
reloaded pull: always command: "manage --replication --advertise={{ansible_default_ipv4['address']}}:4000 consul://{{ansible_default_ipv4['address']}}:8500" ports
: - "4000:2375" env: SERVICE_NAME: swarm-manager
Slide55Newrelic
Plugin Docker
Datadog
CentreonSupervision
Slide56La sécurité
Comment assurer
la disponibilité
des conteneurs ?Comment assurer l’intégrité des images ?Comment assurer la confidentialité des images ?Comment intégrer docker dans un environnement certifié ?
Slide57BUILD
PULL
RUN
CLIENT
HOST
DAEMON
REGISTRY
CLI
REMOTE
API
CONTAINERS
IMAGES
disponibilité
intégrité
Confidentialité
Slide58Intégrité
Slide59Confidentialité
Chiffrement du réseau Overlay par défaut ( dans la dernière version)
Docker cli et Api
Rest avec authentification par certificat
Slide60Authentification et traçabilité
Authentification & traçabilité
Slide61Certifications
Exigences
PCIDSS
2.2.1 Implement only one primary function per server to prevent functions that require different security levels from co-existing on the same server. (For example, web servers, database servers, and DNS should be implemented on separate servers.)
Slide62Cluster CassandraBase de données
NoSQL
Cluster elasticsearch
Mise en cache de données précalculéesSparkMoteur de requêtageJupyterInterface Web pour lancer des requêtesUse case : Big Data
Slide63Objectifs de l’utilisation de Docker pour le BigData
:
Rendre les environnements de développement et de production identique
Encapsuler les dépendances applicatifs au niveau du conteneurCloisonnement des ressourcesAvantages pour la production :Simplifier la gestion des logsSimplifier la supervisionPermettre le scaling horizontalUse case : Big Data
Slide64Use case : Big data
Slide65Use case: Application web
WEB
WEB
LB FRONTBDD
BDDWEBLB BACK
Slide66?
Use case: Application web
WEB
BDD
??
Slide67W
Use case: Application web
WEB
BDD
LOAD BALANCER
IP ?
PORT ?
IP ?
PORT ?
IP ?
PORT ?
IP ?
PORT ?IP ?PORT ?
Slide68W
Use case: Application web
WEB
BDD
LOAD BALANCER
CONSUL
HA PROXY
HA PROXY
HA PROXY
+
CONSUL
+
CONSUL
+
Slide69Use case: Application web
CONSUL TEMPLATE
consul-
template -consul=localhost:8500 -template="vagrant/haproxy.ctmpl:/etc/haproxy haproxy.cfg:service haproxy reload"
Slide70Use case: Application web
Configuration HAPROXY générée
Slide71La bataille à venir
Slide72Questions