SlideShare une entreprise Scribd logo
Résilience avec Hystrix dans
Liferay
Quang Tu LE
@qtle linkedin.com/in/quangtule
Sommaire
• Contexte
• Besoin
• Conception
• Développement
• Configuration
• Monitoring
• Démo
Contexte projet
• Portail intranet du groupe
– +200K d’utilisateurs
– +260 modules, +150 portlets applicatives
– Moteur de recherche d’entreprise
• Connecteur spécifique ( web services)
• +90000 requêtes/jours
Besoin
• Refonte de l’interface fonctionnel de module
de recherche -> nombres de requêtes de
recherche risque augmenter!
• Assurer la continuité, la résilience du portail
dans le cas d’indisponibilité du moteur de
recherche
Proposition
• Etude de faisabilité d’une solution technique
dans le cadre de l’expertise transverse du
projet
• Evolution transparente pour le métier
• Budget limite(solution logicielle seulement)
CircuitBreaker pattern
CircuitBreaker closed
CircuitBreaker open
CircuitBreaker half-open
Hystrix
• Projet open source de Netflix
• Implémentation de CircuitBreaker
• Mature, bien documenté
• Solution complète (pool de threads, config à
chaud, monitoring,…)
Refactoring pour intégrer Hystrix
Développement – sans Hystrix
Développement – avec Hystrix
Développement –HystrixCommand
Configuration
• 4 niveaux
1. Global default from code
2. Dynamic global default property
• hystrix.command.default.execution.isolation.thread.ti
meoutInMilliseconds
3. Instance default from code
4. Dynamic instance property
• hystrix.command.HystrixCommandKey.execution.isol
ation.thread.timeoutInMilliseconds
• Archaius - charger les configs à chaud
archaius.properties
archaius.properties
• Charger fichier archaius.properties dans
Tomcat
– setenv.sh
Déploiement-Dépendances
• Utiliser les jars supportés OSGI
– guava-19.0.jar
– HdrHistogram-2.1.10.jar
– jackson-annotations-2.9.8.jar
– jackson-core-2.9.8.jar
– jackson-databind-2.9.8.jar
– jackson-annotations-2.9.8.jar
– jackson-core-2.9.8.jar
– jackson-databind-2.9.8.jar
– org.apache.servicemix.bundles.archaius-core-0.6.5_1.jar
– org.apache.servicemix.bundles.commons-configuration-1.9_2.jar
– org.apache.servicemix.bundles.hystrix-1.5.18_1.jar
– rxjava-1.2.2.jar
Monitoring
• Hystrix Dashboard
– Standalone webapp
– https://github.com/Netflix-Skunkworks/hystrix-
dashboard/wiki
– Migrer en portlet?
– Il faut combiner avec Turbine pour le mode
clustering
Monitoring
• Metrics Publisher Plugin
– HystrixMetricsPublisher
– hystrix-servo-metrics-publisher
• https://github.com/Netflix/Hystrix/tree/master/hystrix-
contrib/hystrix-servo-metrics-publisher
• Metriques exposé via JMX
• Dashboad JMX dans Dynatrace
hystrix-servo-metrics-publisher
Monitoring
Monitoring
Démo
REX
• Refactoring avant d’intégrer Hystrix
• Chargement de la configuration à chaud avec
Archaius
• Monitoring pour tuner les configurations
Liens
• https://github.com/Netflix/Hystrix/wiki/How-it-Works
• https://github.com/Netflix/Hystrix/wiki/How-To-Use
• https://github.com/Netflix/Hystrix/wiki/Configuration
• https://github.com/Netflix/archaius/wiki/Getting-
Started#using-a-local-file-as-the-configuration-source
• https://github.com/Netflix/Hystrix/wiki/Metrics-and-
Monitoring
• https://github.com/Netflix/Hystrix/tree/master/hystrix-
contrib/hystrix-servo-metrics-publisher
Merci!
Q&A
Aller plus loin
• Adaptive concurrency limits
– https://github.com/Netflix/concurrency-limits
• https://github.com/resilience4j/resilience4j
– CircuitBreaker (Disjoncteur)
– RateLimiter (Limitation de débit )
– Retry (Retentative)
– Bulkhead (cloisonnement)

Contenu connexe

Tendances

Hi-Media Couchbase meetup Paris Nb #1
Hi-Media Couchbase meetup Paris Nb #1Hi-Media Couchbase meetup Paris Nb #1
Hi-Media Couchbase meetup Paris Nb #1
Mickaël Le Baillif
 
Présentation BigQuery et comparatif avec RedShift
Présentation BigQuery et comparatif avec RedShiftPrésentation BigQuery et comparatif avec RedShift
Présentation BigQuery et comparatif avec RedShift
Pierre Coste
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
Microsoft
 
201903 breizhcamp - rex minio
201903   breizhcamp - rex minio201903   breizhcamp - rex minio
201903 breizhcamp - rex minio
Sébastien BLAISOT
 
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
Publicis Sapient Engineering
 
Comment M6 personnalise l’expérience utilisateur du service 6Play avec DataSt...
Comment M6 personnalise l’expérience utilisateur du service 6Play avec DataSt...Comment M6 personnalise l’expérience utilisateur du service 6Play avec DataSt...
Comment M6 personnalise l’expérience utilisateur du service 6Play avec DataSt...
DataStax
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Microsoft
 
Importer des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshop
Importer des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshopImporter des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshop
Importer des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshop
Nuxeo
 
Manon Pernin - Déploiement automatisé d’un environnement dans Azure - Global ...
Manon Pernin - Déploiement automatisé d’un environnement dans Azure - Global ...Manon Pernin - Déploiement automatisé d’un environnement dans Azure - Global ...
Manon Pernin - Déploiement automatisé d’un environnement dans Azure - Global ...
AZUG FR
 
Microservices avec Spring Cloud
Microservices avec Spring CloudMicroservices avec Spring Cloud
Microservices avec Spring Cloud
Florian Beaufumé
 
Claranet vdc juillet 2013
Claranet vdc juillet 2013Claranet vdc juillet 2013
Claranet vdc juillet 2013Claranet
 
Xebicon architectures microservices azure v1.0
Xebicon   architectures microservices azure v1.0Xebicon   architectures microservices azure v1.0
Xebicon architectures microservices azure v1.0
Michel HUBERT
 
Meetup Google Cloud Bigquery
Meetup Google Cloud Bigquery Meetup Google Cloud Bigquery
Meetup Google Cloud Bigquery
Pierre Coste
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Microsoft
 
REX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerceREX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerce
Web Performance Paris
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Microsoft
 
Back day - REX vsct - Secrets de conception d’une application innovante au s...
Back day -  REX vsct - Secrets de conception d’une application innovante au s...Back day -  REX vsct - Secrets de conception d’une application innovante au s...
Back day - REX vsct - Secrets de conception d’une application innovante au s...
Publicis Sapient Engineering
 
Concevoir ses premiers objets connectés avec azure
Concevoir ses premiers objets connectés avec azureConcevoir ses premiers objets connectés avec azure
Concevoir ses premiers objets connectés avec azure
Aymeric Weinbach
 

Tendances (18)

Hi-Media Couchbase meetup Paris Nb #1
Hi-Media Couchbase meetup Paris Nb #1Hi-Media Couchbase meetup Paris Nb #1
Hi-Media Couchbase meetup Paris Nb #1
 
Présentation BigQuery et comparatif avec RedShift
Présentation BigQuery et comparatif avec RedShiftPrésentation BigQuery et comparatif avec RedShift
Présentation BigQuery et comparatif avec RedShift
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
201903 breizhcamp - rex minio
201903   breizhcamp - rex minio201903   breizhcamp - rex minio
201903 breizhcamp - rex minio
 
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
 
Comment M6 personnalise l’expérience utilisateur du service 6Play avec DataSt...
Comment M6 personnalise l’expérience utilisateur du service 6Play avec DataSt...Comment M6 personnalise l’expérience utilisateur du service 6Play avec DataSt...
Comment M6 personnalise l’expérience utilisateur du service 6Play avec DataSt...
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Importer des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshop
Importer des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshopImporter des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshop
Importer des données dans Nuxeo Platform - Nuxeo Tour 2014 - workshop
 
Manon Pernin - Déploiement automatisé d’un environnement dans Azure - Global ...
Manon Pernin - Déploiement automatisé d’un environnement dans Azure - Global ...Manon Pernin - Déploiement automatisé d’un environnement dans Azure - Global ...
Manon Pernin - Déploiement automatisé d’un environnement dans Azure - Global ...
 
Microservices avec Spring Cloud
Microservices avec Spring CloudMicroservices avec Spring Cloud
Microservices avec Spring Cloud
 
Claranet vdc juillet 2013
Claranet vdc juillet 2013Claranet vdc juillet 2013
Claranet vdc juillet 2013
 
Xebicon architectures microservices azure v1.0
Xebicon   architectures microservices azure v1.0Xebicon   architectures microservices azure v1.0
Xebicon architectures microservices azure v1.0
 
Meetup Google Cloud Bigquery
Meetup Google Cloud Bigquery Meetup Google Cloud Bigquery
Meetup Google Cloud Bigquery
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
REX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerceREX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerce
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Back day - REX vsct - Secrets de conception d’une application innovante au s...
Back day -  REX vsct - Secrets de conception d’une application innovante au s...Back day -  REX vsct - Secrets de conception d’une application innovante au s...
Back day - REX vsct - Secrets de conception d’une application innovante au s...
 
Concevoir ses premiers objets connectés avec azure
Concevoir ses premiers objets connectés avec azureConcevoir ses premiers objets connectés avec azure
Concevoir ses premiers objets connectés avec azure
 

Similaire à Résilience avec Hystrix dans Liferay

Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par Edifixio
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par EdifixioTrack 1 - Atelier 3 - Implémentation de cloud d'entreprise par Edifixio
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par EdifixioAmazon Web Services
 
MS Cloud Summit Paris 2017 - Azure Stack
MS Cloud Summit Paris 2017 - Azure StackMS Cloud Summit Paris 2017 - Azure Stack
MS Cloud Summit Paris 2017 - Azure Stack
Benoît SAUTIERE
 
MS Cloud Summit Paris 2017 - Azure Stack
MS Cloud Summit Paris 2017 - Azure StackMS Cloud Summit Paris 2017 - Azure Stack
MS Cloud Summit Paris 2017 - Azure Stack
Benoît SAUTIERE
 
Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013
Cyril Reinhard
 
TechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans AzureTechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans AzureThomas Conté
 
[Webinaire] Comment la plateforme Nuxeo est utilisée au sein du groupe immobi...
[Webinaire] Comment la plateforme Nuxeo est utilisée au sein du groupe immobi...[Webinaire] Comment la plateforme Nuxeo est utilisée au sein du groupe immobi...
[Webinaire] Comment la plateforme Nuxeo est utilisée au sein du groupe immobi...
Nuxeo
 
Migration de technologie J2EE vers PHP à M6Web
Migration de technologie J2EE vers PHP à M6WebMigration de technologie J2EE vers PHP à M6Web
Migration de technologie J2EE vers PHP à M6Web
Olivier NOEL
 
Solutions Web « prêtes à porter » avec WordPress
Solutions Web « prêtes à porter » avec WordPressSolutions Web « prêtes à porter » avec WordPress
Solutions Web « prêtes à porter » avec WordPress
Stéphane Plante
 
AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+
AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+
AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+
Raphaël Carles
 
Nouvelles opportunités pour les données fortement interconnectées : La base d...
Nouvelles opportunités pour les données fortement interconnectées : La base d...Nouvelles opportunités pour les données fortement interconnectées : La base d...
Nouvelles opportunités pour les données fortement interconnectées : La base d...
Cédric Fauvet
 
Objectif fluid<fab />
Objectif fluid<fab />Objectif fluid<fab />
Objectif fluid<fab />
∞ François CHERPION ∞
 
Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks
Hidora
 
Arte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webArte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes web
Acquia
 
Présentation sharepoint 2013
Présentation sharepoint 2013Présentation sharepoint 2013
Présentation sharepoint 2013
Mohammed Amine Mostefai
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Samir Arezki ☁
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
AZUG FR
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+
ekino
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1
Microsoft
 
Esiea - 5A - Archi 1/3
Esiea - 5A - Archi 1/3Esiea - 5A - Archi 1/3
Esiea - 5A - Archi 1/3
Gaëtan ELEOUET
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)
Restlet
 

Similaire à Résilience avec Hystrix dans Liferay (20)

Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par Edifixio
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par EdifixioTrack 1 - Atelier 3 - Implémentation de cloud d'entreprise par Edifixio
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par Edifixio
 
MS Cloud Summit Paris 2017 - Azure Stack
MS Cloud Summit Paris 2017 - Azure StackMS Cloud Summit Paris 2017 - Azure Stack
MS Cloud Summit Paris 2017 - Azure Stack
 
MS Cloud Summit Paris 2017 - Azure Stack
MS Cloud Summit Paris 2017 - Azure StackMS Cloud Summit Paris 2017 - Azure Stack
MS Cloud Summit Paris 2017 - Azure Stack
 
Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013
 
TechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans AzureTechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans Azure
 
[Webinaire] Comment la plateforme Nuxeo est utilisée au sein du groupe immobi...
[Webinaire] Comment la plateforme Nuxeo est utilisée au sein du groupe immobi...[Webinaire] Comment la plateforme Nuxeo est utilisée au sein du groupe immobi...
[Webinaire] Comment la plateforme Nuxeo est utilisée au sein du groupe immobi...
 
Migration de technologie J2EE vers PHP à M6Web
Migration de technologie J2EE vers PHP à M6WebMigration de technologie J2EE vers PHP à M6Web
Migration de technologie J2EE vers PHP à M6Web
 
Solutions Web « prêtes à porter » avec WordPress
Solutions Web « prêtes à porter » avec WordPressSolutions Web « prêtes à porter » avec WordPress
Solutions Web « prêtes à porter » avec WordPress
 
AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+
AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+
AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+
 
Nouvelles opportunités pour les données fortement interconnectées : La base d...
Nouvelles opportunités pour les données fortement interconnectées : La base d...Nouvelles opportunités pour les données fortement interconnectées : La base d...
Nouvelles opportunités pour les données fortement interconnectées : La base d...
 
Objectif fluid<fab />
Objectif fluid<fab />Objectif fluid<fab />
Objectif fluid<fab />
 
Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks
 
Arte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webArte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes web
 
Présentation sharepoint 2013
Présentation sharepoint 2013Présentation sharepoint 2013
Présentation sharepoint 2013
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1
 
Esiea - 5A - Archi 1/3
Esiea - 5A - Archi 1/3Esiea - 5A - Archi 1/3
Esiea - 5A - Archi 1/3
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)
 

Résilience avec Hystrix dans Liferay