SlideShare une entreprise Scribd logo
1  sur  75
Télécharger pour lire hors ligne
COMMENT DISJONCTER POUR
NE PAS « PÉTER LES PLOMBS »
e a k e r
i r c u i t
@
#RÉVÉLER
LES SAVOIR-FAIRE
EN LOCAL
~812 M €
de chiffre d’affaires
~52%
Reach online et mobile
~ 490 000
annonceurs
~ 80 %
du chiffre d’affaires sur le
digital
Nos services utilisés par
9 français sur 10
#1
en contenu digital pour les PME
+250 K sites
Internet
~30% du marché de la
publicité digitale locale
3
4
5
6
CIRCUIT - BREAKER
QUELQUES CHIFFRES
▸ Coût moyen d’un incident en production
▸ 115 000 €
▸ MTTR (Mean Time To Repair)
▸ ~7H
▸ RCA (Root Cause Analysis)
▸ + de 12H
Source: Master of Machines III - Réduire l’impact des incidents IT Quocirca / Splunk 7
Sondage réalisé sur un échantillon de 400 entreprises en Grande-Bretagne,
Allemagne, France, Suède et Pays-Bas par Quocirca pour Splunk
L’ARCHITECTURE DES APPLICATIONS WEB À
BEAUCOUP ÉVOLUÉE EN QUELQUES ANNÉES
8
MICROSERVICES
CIRCUIT - BREAKER
EVOLUTION
9
CIRCUIT - BREAKER
EVOLUTION
ARCHITECTURE MONOLITHIQUE
9
CIRCUIT - BREAKER
EVOLUTION
ARCHITECTURE MONOLITHIQUE
9
CIRCUIT - BREAKER
EVOLUTION
ARCHITECTURE MICROSERVICES
ARCHITECTURE MONOLITHIQUE
9
CIRCUIT - BREAKER
EVOLUTION
ARCHITECTURE MICROSERVICES
ARCHITECTURE MONOLITHIQUE
9
CIRCUIT - BREAKER
EXEMPLE @PAGESJAUNES.FR
10
CIRCUIT - BREAKER
EXEMPLE @PAGESJAUNES.FR
10
2007
CIRCUIT - BREAKER
EXEMPLE @PAGESJAUNES.FR
10
2007
2017
CIRCUIT - BREAKER
PAGESJAUNES.FR / STACK APPLICATIVE
11
CIRCUIT - BREAKER
PAGESJAUNES.FR / STACK APPLICATIVE
11
CIRCUIT - BREAKER
PAGESJAUNES.FR / STACK APPLICATIVE
11
CIRCUIT - BREAKER
PAGESJAUNES.FR / FLUX INTER - APPLICATIONS
12
CIRCUIT - BREAKER
AVANTAGES DES MICROSERVICES
▸ Consommation plus efficace des ressources
▸ Scalabilité horizontale variable
▸ Possibilité de faire varier le nombre d’instance de
chaque composant
▸ Plus modulaires
▸ Mises à jour facilitées
13
CIRCUIT - BREAKER
INCONVÉNIENTS
▸ Risques liés à l’infrastructure augmentés
▸ Congestion
▸ Perte de communication
▸ Timeouts
14
CIRCUIT - BREAKER
EN RÉSUMÉ
▸ Nombreux appels inter-systèmes
▸ Appli -> API
▸ Appli -> BDD
▸ Appli -> Partenaire
▸ Majoritairement HTTP+Rest+Json
▸ Souvent synchrones
15
COMMENT MAÎTRISER
L’IMPACT DES INCIDENTS
EN PRODUCTION ?
CIRCUIT - BREAKER
CIRCUIT-BREAKER, KESKECEST?
▸ Permet de maintenir la
disponibilité du service
▸ Eventuellement dégradé
▸ Disjoncteur / Coupe-circuit
▸ Automatique !
17
COUPER LES APPELS
AUX SERVICES NON
CRITIQUES
PRINCIPE
18
LA MÉTÉO, INDISPENSABLE !
EXEMPLE
POURQUOI METTRE EN PLACE
UN CIRCUIT-BREAKER ?
@PAGESJAUNES, PRÈS DE 50% DE
NOS INCIDENTS SONT LIÉS À UN
RALENTISSEMENT QUI POURRAIT
ÊTRE MAÎTRISÉ
EVITER UNE DÉFAILLANCE EN
CASCADE
EMPÊCHER L’EFFET « BOULE DE NEIGE »
CIRCUIT - BREAKER
PAGESJAUNES?
▸ 1,7M Visites/Jour
▸ 21,5M Visiteurs/mois
▸ + 4000 reqs/s
▸ Utiles (hors statiques)
▸ 1 requête métier =
▸ 300 Appels APIs
▸ 100 Accès à un backend
▸ Soit + 26000 reqs/s sur les APIs
▸ Avec du cache
23
=> X5 RESSOURCES
CONSOMMÉES
500 MS ÇA PARAÎT PEU?
24
QUI PROVISIONNE SA
PRODUCTION POUR ABSORBER
5X LA CHARGE NOMINALE?
25
EMPÊCHER L’ÉPUISEMENT DES
RESSOURCES
MÉMOIRE
POOLS / CONNEXIONS RÉSEAU
DESCRIPTEURS DE FICHIERS
…
26
ARRÊTER DE TAPER SUR UN
SERVEUR DÉJÀ À GENOUX
EMPÊCHER L’ÉPUISEMENT DES
RESSOURCES
LIMITER L’IMPACT SUR LES
TEMPS DE RÉPONSE
CONSERVER UNE BONNE EXPÉRIENCE UTILISATEUR
28
ET LES TIMEOUTS ÇA SERT À
RIEN ?
COMMENT ?
ÉVITER LA DÉFAILLANCE GÉNÉRALISÉE
EMPÊCHER L’ÉPUISEMENT DES RESSOURCES
LIMITER L’IMPACT SUR LES TEMPS DE RÉPONSE
EVITER UNE DÉFAILLANCE EN
CASCADE
EVITER UNE DÉFAILLANCE EN
CASCADE
FAIL FAST !
EMPÊCHER L’ÉPUISEMENT DES
RESSOURCES
32
EMPÊCHER L’ÉPUISEMENT DES
RESSOURCES
32
FAIL FAST !
LIMITER L’IMPACT SUR LES
TEMPS DE RÉPONSE
33
LIMITER L’IMPACT SUR LES
TEMPS DE RÉPONSE
33
FAIL FAST !
CIRCUIT - BREAKER
FONCTIONNEMENT
▸ Encapsule et supervise les échanges entre les services
▸ Interdit les appels lors du dépassement des seuils
▸ Réouverture quand le service est de nouveau opérationnel
34
CIRCUIT - BREAKER
FONCTIONNEMENT
CLIENT CIRCUIT-BREAKER SERVEUR
Timeout ou erreur
35
CIRCUIT - BREAKER
FONCTIONNEMENT - ÉTATS
FERMÉ OUVERT
SEMI-OUVERT
Succès
Echec (< seuil) Echec Timer
Succès
Echec (>seuil)
36
ON COUPE QUOI?
ADAPTER LES SEUILS DE TOLÉRANCE
EN FONCTION DE LA CRITICITÉ
PRESQUE TOUT
COMMENT METTRE EN PLACE
UN CIRCUIT-BREAKER ?
DU TOUT CUIT
HYSTRIX
BY
Hystrix is a latency and fault tolerance library designed to
isolate points of access to remote systems, services and
3rd party libraries, stop cascading failure and enable
resilience in complex distributed systems where failure is
inevitable.
https://github.com/Netflix/Hystrix
CIRCUIT - BREAKER
CIRCUIT - BREAKER
FONCTIONNALITÉS
▸ Tolérance aux défaillances et aux timeouts
▸ Evite l’effet « boule de neige »
▸ Isolation des appels, fail fast, fallback
▸ Configuration dynamique et rechargeable
▸ Changements appliqués en temps réel
▸ Concurrence
▸ Parallélisation
▸ Caching, Batching
CIRCUIT - BREAKER
HYSTRIX - UTILISATION
▸ Implémentation d’une commande
▸ Exécution
CIRCUIT - BREAKER
HYSTRIX
▸ Facile à mettre en place
▸ Très bonne granularité logique
▸ Coupure à la fonction
▸ Mais pas physique
▸ Limité au Java
45
DU MOINS CUIT
USAGE @PAGESJAUNES.FR
CIRCUIT-BREAKER
OÙ ?
ENTRE LES CACHES ET LES SERVICES
CIRCUIT-BREAKER
CIRCUIT-BREAKER
AJOUT DYNAMIQUE
D’INSTANCE
POURQUOI ?
MAITRISER LA DÉFAILLANCE
D’UNE INSTANCE
POURQUOI ?
UTILISER LES CACHES EN
FAILOVER
POURQUOI ?
UTILISER LES CACHES EN
FAILOVER
POURQUOI ?
▸ Consul
▸ Consul-template
▸ Haproxy
CIRCUIT - BREAKER
COMMENT ?
CIRCUIT - BREAKER
CONSUL
▸ Annuaire de services
▸ Base clés/valeurs
▸ Health Checks intégrés
CIRCUIT - BREAKER
CONSUL
▸ Basé sur un cluster d’agents
▸ Chaque serveur porte un agent
▸ Responsable des services colocalisés
▸ Enregistrement/Désenregistrement dans le cluster
▸ Produit les Health-Check
CIRCUIT - BREAKER
CONSUL-TEMPLATE
▸ Transforme n’importe quel fichier statique en dynamique
▸ A partir de l’état des services dans Consul et d’un template
backend mon_appli
{{ range $server := service "mon_appli "}}
server {{$server.Node}} {{$server.Address}}:{{$server.Port}} check observe layer7
{{ end }}
backend mon_backend
server server1 192.168.1.1:8080 check observe layer7
server server2 192.168.1.2:8080 check observe layer7
CIRCUIT - BREAKER
HAPROXY
▸ Load Balancer logiciel
▸ Performant
▸ Eprouvé
▸ Hautement configurable
CIRCUIT - BREAKER
ET POURQUOI PAS TRAEFIK ?
▸ Assez jeune au moment de l’étude
▸ Perf < à HAProxy
▸ Fonctionnalités « Circuit-Breaker » en dessous de HAProxy
CIRCUIT - BREAKER
CIRCUIT-BREAKER @PJ FONCTIONNEMENT
CONSUL CONSUL-
TEMPLATE
HAPROXY
HAPROXY.
CONF
Génération
Restart
Lecture
Services +
Config
Avant Après
LB
VARNISH
API
VARNISH
API
VIP
LB
VARNISH
API
VARNISH
API
HAProxy HAProxy
TCAT API
API 1
API 2
API 3
API N
TCAT API
API 1
API 2
API 3
API N
TCAT API
API 1
API 2
API 3
API N
TCAT API
API 1
API 2
API 3
API N
60
CIRCUIT - BREAKER
BÉNÉFICES
▸ Fonctionnement en majorité dynamique et automatique
▸ Enregistrement des services
▸ Entrée/Sortie du traffic
▸ "Container Ready" (port et localisation peuvent être
dynamiques)
▸ Générique
▸ Quelque soit la techno des APIs
CIRCUIT - BREAKER
FIABILITÉ
▸ En cas de défaillance
▸ Agent Consul
▸ Perte des services hébergés sur le même noeud
▸ Consul-Template
▸ Conservation de la configuration HAProxy à l’état N-1
▸ HAProxy
▸ Déployé en actif/actif via un LB matériel
CIRCUIT - BREAKER
DIFFICULTÉS
▸ Prise en compte des partenaires en HTTPS
▸ Supervision/Exploitation
▸ Tout automatique ça peut inquiéter
▸ Permettre à la production d’avoir un retour sur l’état du système
▸ Eventuellement de le piloter
▸ Configuration
▸ Ajustement des seuils
GABRIEL MAGNIEZ
gmagniez@pagesjaunes.fr
@gmagniez
ARCHITECTE TECHNIQUE @PAGESJAUNES.FR
@PagesjaunesTech
WHO AM I?

Contenu connexe

Similaire à BreizhCamp 2017 - Circuit Breaker; comment disjoncter pour "éviter de péter les plombs"

Dossier cloud : externalisation du SI
Dossier cloud : externalisation du SIDossier cloud : externalisation du SI
Dossier cloud : externalisation du SIOzitem
 
Les containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienLes containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienRachid Zarouali
 
Le VRAI Retour Sur Investissement d'un Centre de Contacts Cloud !
Le VRAI Retour Sur Investissement d'un Centre de Contacts Cloud !Le VRAI Retour Sur Investissement d'un Centre de Contacts Cloud !
Le VRAI Retour Sur Investissement d'un Centre de Contacts Cloud !Luc_Francis_Jacobs
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx FranceMarc Bojoly
 
Comment optimiser les performances web des applications en saas
Comment optimiser les performances web des applications en saasComment optimiser les performances web des applications en saas
Comment optimiser les performances web des applications en saasCDNetworks
 
La perte des données. Les questions que vous devez vous poser
La perte des données. Les questions que vous devez vous poserLa perte des données. Les questions que vous devez vous poser
La perte des données. Les questions que vous devez vous poserZine Seghier
 
Petit potam slides-rtfm-ossir
Petit potam slides-rtfm-ossirPetit potam slides-rtfm-ossir
Petit potam slides-rtfm-ossirLionelTopotam
 
Qu'est ce que le Cloud computing ?
Qu'est ce que le Cloud computing ?Qu'est ce que le Cloud computing ?
Qu'est ce que le Cloud computing ?Olivier Schmitt
 
La Duck Conf 2018 : "Mon mainframe fait du digital sans casser ma tirelire"
La Duck Conf 2018 : "Mon mainframe fait du digital sans casser ma tirelire"La Duck Conf 2018 : "Mon mainframe fait du digital sans casser ma tirelire"
La Duck Conf 2018 : "Mon mainframe fait du digital sans casser ma tirelire"OCTO Technology
 
Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...
Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...
Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...Agence du Numérique (AdN)
 
Le Cloud au service du Plan de reprise d'activité
Le Cloud au service du Plan de reprise d'activitéLe Cloud au service du Plan de reprise d'activité
Le Cloud au service du Plan de reprise d'activitéCharlotte Demaegdt
 
Filtrage WEB: SQUID ET SQUIDGARD
Filtrage WEB: SQUID ET SQUIDGARDFiltrage WEB: SQUID ET SQUIDGARD
Filtrage WEB: SQUID ET SQUIDGARDMohamet Lamine DIOP
 
La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...
La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...
La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...OCTO Technology
 
Meetup angular rshop
Meetup angular rshopMeetup angular rshop
Meetup angular rshopCyril Balit
 
Tx304 g formation-ibm-tivoli-workload-scheduler-8-6-environnement-distribue-o...
Tx304 g formation-ibm-tivoli-workload-scheduler-8-6-environnement-distribue-o...Tx304 g formation-ibm-tivoli-workload-scheduler-8-6-environnement-distribue-o...
Tx304 g formation-ibm-tivoli-workload-scheduler-8-6-environnement-distribue-o...CERTyou Formation
 
Drupal, les hackers, la sécurité & les (très) grands comptes
Drupal, les hackers, la sécurité & les (très) grands comptesDrupal, les hackers, la sécurité & les (très) grands comptes
Drupal, les hackers, la sécurité & les (très) grands comptesSkilld
 

Similaire à BreizhCamp 2017 - Circuit Breaker; comment disjoncter pour "éviter de péter les plombs" (20)

Retour d'expérience sur PowerShell
Retour d'expérience sur PowerShellRetour d'expérience sur PowerShell
Retour d'expérience sur PowerShell
 
Dossier cloud : externalisation du SI
Dossier cloud : externalisation du SIDossier cloud : externalisation du SI
Dossier cloud : externalisation du SI
 
Les containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienLes containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicien
 
Perf university
Perf universityPerf university
Perf university
 
Le VRAI Retour Sur Investissement d'un Centre de Contacts Cloud !
Le VRAI Retour Sur Investissement d'un Centre de Contacts Cloud !Le VRAI Retour Sur Investissement d'un Centre de Contacts Cloud !
Le VRAI Retour Sur Investissement d'un Centre de Contacts Cloud !
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx France
 
Comment optimiser les performances web des applications en saas
Comment optimiser les performances web des applications en saasComment optimiser les performances web des applications en saas
Comment optimiser les performances web des applications en saas
 
La perte des données. Les questions que vous devez vous poser
La perte des données. Les questions que vous devez vous poserLa perte des données. Les questions que vous devez vous poser
La perte des données. Les questions que vous devez vous poser
 
Petit potam slides-rtfm-ossir
Petit potam slides-rtfm-ossirPetit potam slides-rtfm-ossir
Petit potam slides-rtfm-ossir
 
Lora and LoraWan
Lora and LoraWanLora and LoraWan
Lora and LoraWan
 
Qu'est ce que le Cloud computing ?
Qu'est ce que le Cloud computing ?Qu'est ce que le Cloud computing ?
Qu'est ce que le Cloud computing ?
 
La Duck Conf 2018 : "Mon mainframe fait du digital sans casser ma tirelire"
La Duck Conf 2018 : "Mon mainframe fait du digital sans casser ma tirelire"La Duck Conf 2018 : "Mon mainframe fait du digital sans casser ma tirelire"
La Duck Conf 2018 : "Mon mainframe fait du digital sans casser ma tirelire"
 
Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...
Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...
Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...
 
Le Cloud au service du Plan de reprise d'activité
Le Cloud au service du Plan de reprise d'activitéLe Cloud au service du Plan de reprise d'activité
Le Cloud au service du Plan de reprise d'activité
 
Filtrage WEB: SQUID ET SQUIDGARD
Filtrage WEB: SQUID ET SQUIDGARDFiltrage WEB: SQUID ET SQUIDGARD
Filtrage WEB: SQUID ET SQUIDGARD
 
La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...
La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...
La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...
 
Cloud : en 2017, sortez du stratus !
Cloud : en 2017, sortez du stratus !Cloud : en 2017, sortez du stratus !
Cloud : en 2017, sortez du stratus !
 
Meetup angular rshop
Meetup angular rshopMeetup angular rshop
Meetup angular rshop
 
Tx304 g formation-ibm-tivoli-workload-scheduler-8-6-environnement-distribue-o...
Tx304 g formation-ibm-tivoli-workload-scheduler-8-6-environnement-distribue-o...Tx304 g formation-ibm-tivoli-workload-scheduler-8-6-environnement-distribue-o...
Tx304 g formation-ibm-tivoli-workload-scheduler-8-6-environnement-distribue-o...
 
Drupal, les hackers, la sécurité & les (très) grands comptes
Drupal, les hackers, la sécurité & les (très) grands comptesDrupal, les hackers, la sécurité & les (très) grands comptes
Drupal, les hackers, la sécurité & les (très) grands comptes
 

BreizhCamp 2017 - Circuit Breaker; comment disjoncter pour "éviter de péter les plombs"