Circuit breaker
PHP - Forum 2016
www.eleven-labs.com
Qui suis-je ?
Jonathan Jalouzot - Lead développeur Lemonde.fr
@CaptainJojo42
https://github.com/captainjojo/
PHP - Symfony - React - Backbone - Node - Pg - RabbitMQ -MongoDB - etc ...
Architecture
Monolitique vs Microservices
Dessins d’Olivier Grange Labat CTO Lemonde
www.eleven-labs.com
Monolithique
Microservices
= un serveur
Les composants (pages articles, classeur abonné, suivi d’actu, etc.) sont tous sur un même serveur.
Les composants sont sur des serveurs dédiés, indépendants les uns des autres.
Monolithique
Microservices
La panne d’un composant...
Monolithique
Microservices
… entraîne la panne de tout le serveur :(
Monolithique
Microservices
La panne d’un composant (exemple : classeur abonné)
reste localisée : les autres continuent de fonctionner :)
Monolithique
Microservices
Si un composant en particulier
a besoin de plus de serveurs,
tout est dupliqué :(
Monolithique
Microservices
Le nombre de serveurs peut être adapté
aux besoins de chaque composant :)
Oui mais c’est quoi un circuit breaker ?
Un peu d’histoire
Le disjoncteur
Circuit breaker
Closed
on call / pass through
call succeeds / reset count
call fails / count failure
threshold reached / trip breaker
trip breaker
Open
on call / fail
on timeout / attempt reset
Half-Open
on call / pass through
call succeeds / reset
call fails / trip breaker
attempt reset
trip breaker
Reset
Sans circuit breaker
Un service casse
Sans circuit breaker
Il amène les autres avec lui
Avec circuit breaker
Un service casse
Avec circuit breaker
On attend qu’il se soigne
Implémentation
Ce qu’il faut retenir
Vos livres de chevet :)
Questions ?