SlideShare une entreprise Scribd logo
1  sur  28
Instances multiples :
les pièges à éviter
Sébastien Le Marchand - @slemarchand
24 janvier 2018
Le programme
• Qui suis-je ?
• Instances virtuelles : quésaco ?
• Séquence déminage !
• Que retenir?
Sébastien Le Marchand
• 10 ans d’expérience sur la technologie Liferay
o depuis Liferay version 4.3 (2007)
• Dont 6 ans au sein d’un intégrateur “Gold Service Partner”
Consultant Technique indépendant
@slemarchand linkedin.com/in/slemarchand
Instances virtuelles : quésaco ?
Petits rappels sur la notion d’instance virtuelle dans Liferay
Instance virtuelle Liferay a.k.a…
versions antérieures à Liferay 7
modèle de données Liferay
hors du monde Liferay (notion de « multi-tenancy »)
= Portal Instance
= Company
= Tenant
 Virtual hosts
 Infrastructure partagée
 Isolation logique des données
Principes des instances virtuelles
Users
Sites
Config
Users
Sites
Config
Users
Sites
Config
www.super-site.paris
web.hello-liferay.fr
delicious-tapas.es Tomcat*
JVM
Liferay
* : ou JBoss, Jetty, etc
Source : dev.liferay.com
www.super-site.com
web.hello-liferay.fr
delicious-tapas.es
Use case « clones »
• La plupart des modules custom déployés sont utilisés
par chacune des instances virtuelles
• Pilotage projet unique
Use case « fourre-tout »
• La plupart des modules custom déployés ne sont utilisés
que par 1 seule des instances virtuelles
• Une équipe projet par instance virtuelle
Motivations : coût et délais !
• Réduction du délais de mise en place d’une nouvelle
company
• Réduction du coût d’infrastructure
o Mise en place
o Exploitation pendant le RUN
• Réduction du coût de licences
Séquence déminage !
Quelques mises en garde et astuces pour aborder les instances virtuelles plus
sereinement
Accès depuis un seul domaine
• Utile temporairement dans des cas très particuliers
• Dispositif à mettre en place sur le poste client
o Soit modifier son fichier local /etc/hosts
o Soit utiliser un proxy local comme Charles Proxy ou Fiddler
Masquage de composants
Isolation des customisations via le
code
if(company.getWebId().equals("DeliciousTapas")) {
// Code de la customisation
...
}
Upgrade et maintenance
• Un upgrade de Liferay impactera toutes les instances
o Nécessité de synchroniser la mise à niveau des développements spécifiques
de l’ensemble des projets
• Un redémarrage sur du serveur d’application impactera toutes les
instances…
• Etc.
Portal properties
• Les propriétés sont surchargées dans le portal-ext.properties et
partagées entre toutes les instances…
• ... Sauf quelques propriétés dans d’ éventuels fichiers de la forme
portal-<companyId>.properties
• Présent pour des raisons de comptabilité legacy mais déconseillé par
Liferay
• Limités à très peu de propriétés
System settings
• Partagés entre toutes les instances
Identification des entrées de log
• Pour des composants custom spécifiques à une instance virtuelle, le
logger name fournit l’information
• Plus compliqué pour des composants partagés custom ou natifs
• Utilisation d’un filtre de servlet et du MDC* de Log4j pour injecter le virtual host
dans les informations de log
* : Mapped Diagnostic Context
Rollback des données
• En cas de nécessité de rollback data sur une instance…
• … le rollback impactera l’ensemble des instances
virtuelles !
Isolation des problèmes de perf
• Sur-consommation CPU ou fuite mémoire
o Même lorsque lorsque le composant fautif est dédié à une instance virtuelle
particulière, la dégradation de service touche toutes les instances
• Diagnostiquer l’instance virtuelle à l’origine du problème peut être
difficile
• L’emploi d’un APM bien paramétré facilitera les diagnostics
o New Relic, Dynatrace, AppDynamics etc
Que retenir ?
Synthèse pour aider à la prise de décision
Eviter les instances virtuelles Liferay ?
Multiples facteurs à prendre en compte :
• Combien d’instances mutualisées sur la même plateforme ?
• Combien d’équipes d’équipe projet différentes ?
• Similitude des applications déployées ?
• Criticité des applications déployées ?
• Capacité à la mise en place des alternatives ?
• …
 Nécessite une
licence pour
chaque container
Alternative « isolation totale »
www.super-site.paris
web.hello-liferay.fr
delicious-tapas.es
Tomcat
JVM
Liferay
Tomcat
JVM
Liferay
Tomcat
JVM
Liferay
 Infrastructure
matérielle partagée
 Processus séparés
 Schémas de
données séparés
 Nécessite une
licence pour
chaque Tomcat
Alternative « isolation intermédiaire »
www.super-site.paris
web.hello-liferay.fr
delicious-tapas.es
Tomcat
JVM process
Liferay
Tomcat
JVM process
Liferay
Tomcat
JVM process
Liferay
Mes recommandations *
En amont du projet
 Tenter systématiquement de pousser une alternative aux instances
virtuelles
Au démarrage du projet
 Informer tous les intervenants des limites induites par le multi-instances
Pendant le projet
 Traiter au plus tôt les limites du multi-instances
* : subjectif
Sébastien Le Marchand
@slemarchand
linkedin.com/in/slemarchand
Merci !
Posez vos questions !

Contenu connexe

Similaire à Instances multiples : les pièges à éviter (Liferay User Group France)

Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesChristophe Furmaniak
 
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)Publicis Sapient Engineering
 
Serveurs core et virtualisation
Serveurs core et virtualisationServeurs core et virtualisation
Serveurs core et virtualisationChristophe Laporte
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrOxalide
 
Versionning et travail en équipe avec Salesforce - 27/11/2014
Versionning et travail en équipe avec Salesforce - 27/11/2014Versionning et travail en équipe avec Salesforce - 27/11/2014
Versionning et travail en équipe avec Salesforce - 27/11/2014Paris Salesforce Developer Group
 
Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?codedarmor
 
What’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontWhat’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontZenika
 
7 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 2016
7 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 20167 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 2016
7 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 2016Sébastien Le Marchand
 
Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...Identity Days
 
Liferay france symposium 2012 - montée de version d’une instance liferay
Liferay france symposium 2012 - montée de version d’une instance liferayLiferay france symposium 2012 - montée de version d’une instance liferay
Liferay france symposium 2012 - montée de version d’une instance liferaySébastien Le Marchand
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EESabri Bouchlema
 
AWS Paris Summit 2014 - T3 - Evolution des architectures VPC
AWS Paris Summit 2014 - T3 - Evolution des architectures VPCAWS Paris Summit 2014 - T3 - Evolution des architectures VPC
AWS Paris Summit 2014 - T3 - Evolution des architectures VPCAmazon Web Services
 
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
 
JSS2013 : Haute disponibilité
JSS2013 : Haute disponibilitéJSS2013 : Haute disponibilité
JSS2013 : Haute disponibilitéChristophe Laporte
 
Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lroxmed
 
Cloud Privé, Cloud Public...poursquoi choisir ?
Cloud Privé, Cloud Public...poursquoi choisir ?Cloud Privé, Cloud Public...poursquoi choisir ?
Cloud Privé, Cloud Public...poursquoi choisir ?Microsoft Décideurs IT
 
Xebicon architectures microservices azure v1.0
Xebicon   architectures microservices azure v1.0Xebicon   architectures microservices azure v1.0
Xebicon architectures microservices azure v1.0Michel HUBERT
 

Similaire à Instances multiples : les pièges à éviter (Liferay User Group France) (20)

Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
 
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
 
Serveurs core et virtualisation
Serveurs core et virtualisationServeurs core et virtualisation
Serveurs core et virtualisation
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.Fr
 
Versionning et travail en équipe avec Salesforce - 27/11/2014
Versionning et travail en équipe avec Salesforce - 27/11/2014Versionning et travail en équipe avec Salesforce - 27/11/2014
Versionning et travail en équipe avec Salesforce - 27/11/2014
 
Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?Codedarmor 2012 - 03/04 - Android, What else?
Codedarmor 2012 - 03/04 - Android, What else?
 
_JCVFr
_JCVFr_JCVFr
_JCVFr
 
What’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontWhat’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. Darmont
 
7 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 2016
7 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 20167 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 2016
7 plugins de la communauté à ne pas manquer ! - Liferay France Symposium 2016
 
Présentation Nano Server MS Afterwork Nouméa
Présentation Nano Server MS Afterwork NouméaPrésentation Nano Server MS Afterwork Nouméa
Présentation Nano Server MS Afterwork Nouméa
 
Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...
 
Liferay france symposium 2012 - montée de version d’une instance liferay
Liferay france symposium 2012 - montée de version d’une instance liferayLiferay france symposium 2012 - montée de version d’une instance liferay
Liferay france symposium 2012 - montée de version d’une instance liferay
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EE
 
AWS Paris Summit 2014 - T3 - Evolution des architectures VPC
AWS Paris Summit 2014 - T3 - Evolution des architectures VPCAWS Paris Summit 2014 - T3 - Evolution des architectures VPC
AWS Paris Summit 2014 - T3 - Evolution des architectures VPC
 
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 ...
 
JSS2013 : Haute disponibilité
JSS2013 : Haute disponibilitéJSS2013 : Haute disponibilité
JSS2013 : Haute disponibilité
 
Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lr
 
Cloud Privé, Cloud Public...poursquoi choisir ?
Cloud Privé, Cloud Public...poursquoi choisir ?Cloud Privé, Cloud Public...poursquoi choisir ?
Cloud Privé, Cloud Public...poursquoi choisir ?
 
Xebicon architectures microservices azure v1.0
Xebicon   architectures microservices azure v1.0Xebicon   architectures microservices azure v1.0
Xebicon architectures microservices azure v1.0
 

Plus de Sébastien Le Marchand

Client Extensions - Episode 2 : Custom Element - 2024-04-30 - Liferay France ...
Client Extensions - Episode 2 : Custom Element - 2024-04-30 - Liferay France ...Client Extensions - Episode 2 : Custom Element - 2024-04-30 - Liferay France ...
Client Extensions - Episode 2 : Custom Element - 2024-04-30 - Liferay France ...Sébastien Le Marchand
 
Let's revive the Liferay Marketplace together - /dev/24 2021
Let's revive the Liferay Marketplace together - /dev/24 2021Let's revive the Liferay Marketplace together - /dev/24 2021
Let's revive the Liferay Marketplace together - /dev/24 2021Sébastien Le Marchand
 
Convert to liferay forms! - Liferay DEVCON 2021
Convert to liferay forms! - Liferay DEVCON 2021Convert to liferay forms! - Liferay DEVCON 2021
Convert to liferay forms! - Liferay DEVCON 2021Sébastien Le Marchand
 
Convertissez vos formulaires ! - Liferay France Symposium 2020
Convertissez vos formulaires ! - Liferay France Symposium 2020Convertissez vos formulaires ! - Liferay France Symposium 2020
Convertissez vos formulaires ! - Liferay France Symposium 2020Sébastien Le Marchand
 
Let’s discover and extend the Content Dashboard - /dev/24 2020
Let’s discover and extendthe Content Dashboard - /dev/24 2020Let’s discover and extendthe Content Dashboard - /dev/24 2020
Let’s discover and extend the Content Dashboard - /dev/24 2020Sébastien Le Marchand
 
Relever les défis techniques d'un site internet multi-pays et multilingue - L...
Relever les défis techniques d'un site internet multi-pays et multilingue - L...Relever les défis techniques d'un site internet multi-pays et multilingue - L...
Relever les défis techniques d'un site internet multi-pays et multilingue - L...Sébastien Le Marchand
 
Liferay Gogo Scripts - Liferay France User Group - meetup #13
Liferay Gogo Scripts -  Liferay France User Group - meetup #13Liferay Gogo Scripts -  Liferay France User Group - meetup #13
Liferay Gogo Scripts - Liferay France User Group - meetup #13Sébastien Le Marchand
 
Back from Liferay DEVCON 2018 (Liferay France User Group Meetup #10 - 15/11/2...
Back from Liferay DEVCON 2018 (Liferay France User Group Meetup #10 - 15/11/2...Back from Liferay DEVCON 2018 (Liferay France User Group Meetup #10 - 15/11/2...
Back from Liferay DEVCON 2018 (Liferay France User Group Meetup #10 - 15/11/2...Sébastien Le Marchand
 
Developing faster than ever (Liferay DEVCON 2017)
Developing faster than ever (Liferay DEVCON 2017)Developing faster than ever (Liferay DEVCON 2017)
Developing faster than ever (Liferay DEVCON 2017)Sébastien Le Marchand
 
Développement : mettez le turbo ! - Liferay France Symposium 2017
Développement : mettez le turbo ! - Liferay France Symposium 2017Développement : mettez le turbo ! - Liferay France Symposium 2017
Développement : mettez le turbo ! - Liferay France Symposium 2017Sébastien Le Marchand
 
PhoneGap Paris Meetup #6 - Pix2know - Sencha Touch
PhoneGap Paris Meetup #6 - Pix2know - Sencha TouchPhoneGap Paris Meetup #6 - Pix2know - Sencha Touch
PhoneGap Paris Meetup #6 - Pix2know - Sencha TouchSébastien Le Marchand
 
Using MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - Berlin
Using MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - BerlinUsing MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - Berlin
Using MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - BerlinSébastien Le Marchand
 
Les2012 lightning talk_exporting_and_importing_company-level_data
Les2012 lightning talk_exporting_and_importing_company-level_dataLes2012 lightning talk_exporting_and_importing_company-level_data
Les2012 lightning talk_exporting_and_importing_company-level_dataSébastien Le Marchand
 

Plus de Sébastien Le Marchand (14)

Client Extensions - Episode 2 : Custom Element - 2024-04-30 - Liferay France ...
Client Extensions - Episode 2 : Custom Element - 2024-04-30 - Liferay France ...Client Extensions - Episode 2 : Custom Element - 2024-04-30 - Liferay France ...
Client Extensions - Episode 2 : Custom Element - 2024-04-30 - Liferay France ...
 
Let's revive the Liferay Marketplace together - /dev/24 2021
Let's revive the Liferay Marketplace together - /dev/24 2021Let's revive the Liferay Marketplace together - /dev/24 2021
Let's revive the Liferay Marketplace together - /dev/24 2021
 
Convert to liferay forms! - Liferay DEVCON 2021
Convert to liferay forms! - Liferay DEVCON 2021Convert to liferay forms! - Liferay DEVCON 2021
Convert to liferay forms! - Liferay DEVCON 2021
 
Convertissez vos formulaires ! - Liferay France Symposium 2020
Convertissez vos formulaires ! - Liferay France Symposium 2020Convertissez vos formulaires ! - Liferay France Symposium 2020
Convertissez vos formulaires ! - Liferay France Symposium 2020
 
Let’s discover and extend the Content Dashboard - /dev/24 2020
Let’s discover and extendthe Content Dashboard - /dev/24 2020Let’s discover and extendthe Content Dashboard - /dev/24 2020
Let’s discover and extend the Content Dashboard - /dev/24 2020
 
Relever les défis techniques d'un site internet multi-pays et multilingue - L...
Relever les défis techniques d'un site internet multi-pays et multilingue - L...Relever les défis techniques d'un site internet multi-pays et multilingue - L...
Relever les défis techniques d'un site internet multi-pays et multilingue - L...
 
Liferay Gogo Scripts - Liferay France User Group - meetup #13
Liferay Gogo Scripts -  Liferay France User Group - meetup #13Liferay Gogo Scripts -  Liferay France User Group - meetup #13
Liferay Gogo Scripts - Liferay France User Group - meetup #13
 
Back from Liferay DEVCON 2018 (Liferay France User Group Meetup #10 - 15/11/2...
Back from Liferay DEVCON 2018 (Liferay France User Group Meetup #10 - 15/11/2...Back from Liferay DEVCON 2018 (Liferay France User Group Meetup #10 - 15/11/2...
Back from Liferay DEVCON 2018 (Liferay France User Group Meetup #10 - 15/11/2...
 
Recap Liferay France Symposium 2018
Recap Liferay France Symposium 2018Recap Liferay France Symposium 2018
Recap Liferay France Symposium 2018
 
Developing faster than ever (Liferay DEVCON 2017)
Developing faster than ever (Liferay DEVCON 2017)Developing faster than ever (Liferay DEVCON 2017)
Developing faster than ever (Liferay DEVCON 2017)
 
Développement : mettez le turbo ! - Liferay France Symposium 2017
Développement : mettez le turbo ! - Liferay France Symposium 2017Développement : mettez le turbo ! - Liferay France Symposium 2017
Développement : mettez le turbo ! - Liferay France Symposium 2017
 
PhoneGap Paris Meetup #6 - Pix2know - Sencha Touch
PhoneGap Paris Meetup #6 - Pix2know - Sencha TouchPhoneGap Paris Meetup #6 - Pix2know - Sencha Touch
PhoneGap Paris Meetup #6 - Pix2know - Sencha Touch
 
Using MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - Berlin
Using MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - BerlinUsing MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - Berlin
Using MyBatis in Alfresco custom extensions - Alfresco Devcon 2012 - Berlin
 
Les2012 lightning talk_exporting_and_importing_company-level_data
Les2012 lightning talk_exporting_and_importing_company-level_dataLes2012 lightning talk_exporting_and_importing_company-level_data
Les2012 lightning talk_exporting_and_importing_company-level_data
 

Instances multiples : les pièges à éviter (Liferay User Group France)

  • 1. Instances multiples : les pièges à éviter Sébastien Le Marchand - @slemarchand 24 janvier 2018
  • 2. Le programme • Qui suis-je ? • Instances virtuelles : quésaco ? • Séquence déminage ! • Que retenir?
  • 3. Sébastien Le Marchand • 10 ans d’expérience sur la technologie Liferay o depuis Liferay version 4.3 (2007) • Dont 6 ans au sein d’un intégrateur “Gold Service Partner” Consultant Technique indépendant @slemarchand linkedin.com/in/slemarchand
  • 4. Instances virtuelles : quésaco ? Petits rappels sur la notion d’instance virtuelle dans Liferay
  • 5. Instance virtuelle Liferay a.k.a… versions antérieures à Liferay 7 modèle de données Liferay hors du monde Liferay (notion de « multi-tenancy ») = Portal Instance = Company = Tenant
  • 6.  Virtual hosts  Infrastructure partagée  Isolation logique des données Principes des instances virtuelles Users Sites Config Users Sites Config Users Sites Config www.super-site.paris web.hello-liferay.fr delicious-tapas.es Tomcat* JVM Liferay * : ou JBoss, Jetty, etc
  • 8.
  • 9. Use case « clones » • La plupart des modules custom déployés sont utilisés par chacune des instances virtuelles • Pilotage projet unique
  • 10. Use case « fourre-tout » • La plupart des modules custom déployés ne sont utilisés que par 1 seule des instances virtuelles • Une équipe projet par instance virtuelle
  • 11. Motivations : coût et délais ! • Réduction du délais de mise en place d’une nouvelle company • Réduction du coût d’infrastructure o Mise en place o Exploitation pendant le RUN • Réduction du coût de licences
  • 12. Séquence déminage ! Quelques mises en garde et astuces pour aborder les instances virtuelles plus sereinement
  • 13. Accès depuis un seul domaine • Utile temporairement dans des cas très particuliers • Dispositif à mettre en place sur le poste client o Soit modifier son fichier local /etc/hosts o Soit utiliser un proxy local comme Charles Proxy ou Fiddler
  • 15. Isolation des customisations via le code if(company.getWebId().equals("DeliciousTapas")) { // Code de la customisation ... }
  • 16. Upgrade et maintenance • Un upgrade de Liferay impactera toutes les instances o Nécessité de synchroniser la mise à niveau des développements spécifiques de l’ensemble des projets • Un redémarrage sur du serveur d’application impactera toutes les instances… • Etc.
  • 17. Portal properties • Les propriétés sont surchargées dans le portal-ext.properties et partagées entre toutes les instances… • ... Sauf quelques propriétés dans d’ éventuels fichiers de la forme portal-<companyId>.properties • Présent pour des raisons de comptabilité legacy mais déconseillé par Liferay • Limités à très peu de propriétés
  • 18. System settings • Partagés entre toutes les instances
  • 19.
  • 20. Identification des entrées de log • Pour des composants custom spécifiques à une instance virtuelle, le logger name fournit l’information • Plus compliqué pour des composants partagés custom ou natifs • Utilisation d’un filtre de servlet et du MDC* de Log4j pour injecter le virtual host dans les informations de log * : Mapped Diagnostic Context
  • 21. Rollback des données • En cas de nécessité de rollback data sur une instance… • … le rollback impactera l’ensemble des instances virtuelles !
  • 22. Isolation des problèmes de perf • Sur-consommation CPU ou fuite mémoire o Même lorsque lorsque le composant fautif est dédié à une instance virtuelle particulière, la dégradation de service touche toutes les instances • Diagnostiquer l’instance virtuelle à l’origine du problème peut être difficile • L’emploi d’un APM bien paramétré facilitera les diagnostics o New Relic, Dynatrace, AppDynamics etc
  • 23. Que retenir ? Synthèse pour aider à la prise de décision
  • 24. Eviter les instances virtuelles Liferay ? Multiples facteurs à prendre en compte : • Combien d’instances mutualisées sur la même plateforme ? • Combien d’équipes d’équipe projet différentes ? • Similitude des applications déployées ? • Criticité des applications déployées ? • Capacité à la mise en place des alternatives ? • …
  • 25.  Nécessite une licence pour chaque container Alternative « isolation totale » www.super-site.paris web.hello-liferay.fr delicious-tapas.es Tomcat JVM Liferay Tomcat JVM Liferay Tomcat JVM Liferay
  • 26.  Infrastructure matérielle partagée  Processus séparés  Schémas de données séparés  Nécessite une licence pour chaque Tomcat Alternative « isolation intermédiaire » www.super-site.paris web.hello-liferay.fr delicious-tapas.es Tomcat JVM process Liferay Tomcat JVM process Liferay Tomcat JVM process Liferay
  • 27. Mes recommandations * En amont du projet  Tenter systématiquement de pousser une alternative aux instances virtuelles Au démarrage du projet  Informer tous les intervenants des limites induites par le multi-instances Pendant le projet  Traiter au plus tôt les limites du multi-instances * : subjectif

Notes de l'éditeur

  1. Je vais commencer me présenter très brièvement On va faire un rappel sur la notion même d’instances virtuelles dans Liferay Puis, dans la partie « séquence déminage » on enchaînera sur la revue de différentes pièges liés aux instances virtuelles et on verra aussi bien sur comment les éviter ou au moins les atténuer !
  2. - 10 ans de Liferay au compteur - Freelance
  3. Petit point terminologie
  4. Exemple
  5. Rajouter derrière un slide avec un diagramme représentant le use-case « fourre-tout »