Foros de discusión

Multiples instances avec pages communes

Pierre Gonon, modificado hace 7 años.

Multiples instances avec pages communes

New Member Mensajes: 11 Fecha de incorporación: 31/08/16 Mensajes recientes
Bonjour,

Je ne maitrise pas vraiment Liferay et j'aimerais savoir si ce que je souhaite faire est possible. Merci d'avance de votre aide!

CONTEXTE:
Le site que je gère est un portail sur lequel les utilisateurs se connectent afin de gérer tout un tas de truc (de la configuration, des dashboards, etc.). Pas de CMS ici, juste des portlet java (en gros: 1 page = 1 portlet).
Je souhaite avoir deux modes: Sandbox (pour que les utilisateurs fassent des tests) et Live (pour la réalité^^). Les pages de mon site son donc "dupliquées" car elles visent soient les données Sandbox soit les données Live. Cependant certaines pages (comme la gestion des utlisateurs, infos générales) sont communes àces deux modes et ne nécessitent pas de duplication.
L'utilisateur pour switcher entre les deux modes via un bouton en haut de la page.

STRUCTURE SOUHAITEE:
Je souhaite que l'URL des pages reflètent cela:
- xxxx.sandbox.com: pour les pages en mode sandbox
- xxxx.live.com: pour les pages en mode live
- xxxx.com: pour les pages communes

QUESTIONS:
1. Dois-je créer trois instances de mon application ? Si oui, ca veut dire que je dois dupliquer des portlets comme le menu, le footer, etc...Ce qui me parait etre une erreur
2. Si je crée une seule instance, ca devient plus simple mais comment avoir des pages sur des domaines differents...?

J'ai cherché en ligne, et j'ai vu des choses relatives aux "virtual hosts", organisations etc.. mais je n'arrive pas a comprendre dans le détail.

Voila, j'espère que j'ai été a peu près clair...;)
thumbnail
Eric COQUELIN, modificado hace 7 años.

RE: Multiples instances avec pages communes

Expert Mensajes: 254 Fecha de incorporación: 3/11/13 Mensajes recientes
Bonjour Pierre,

Il me semble que le plus simple soit effectivement de capitaliser sur les virtual hosts.

Sur la même instance, à chaque site, vous attribuez une URL virtuelle différente conformément à la règle citée. Ainsi, vous gérez vos utilisateurs de façon transverse. En jouant sur les droits, vous autorisez vos utilisateurs à jouer sur les sites sandbox.

Quelques notes:
- Vous pouvez jouer avec les modèles de site ou de pages afin de ne pas avoir à dupliquer systématiquement les modifications effectuées ici ou là. Mais attention, comme le dit la doc de Liferay, si le site est modifié, la propagation s'interrompt ou devient partielle. A défaut, ça permet au moins d'avoir une base
- Vous pouvez avoir les mêmes portlets déployés sur les sites live et sandbox mais veillez à ce que chacun utilise des données différentes sinon vous allez avoir des problèmes. Dans ce modèle et si le code est bien pensé, les données sont indexées sur un groupId, ce groupId qui correspond finalement à l'identifiant du site, ceci vous permettra de segmenter les données et de ne pas les écraser d'un site à l'autre.

Bon courage.
Pierre Gonon, modificado hace 7 años.

RE: Multiples instances avec pages communes

New Member Mensajes: 11 Fecha de incorporación: 31/08/16 Mensajes recientes
Merci pour la réponse rapide.

Vous avez écrit: "Vous pouvez avoir les mêmes portlets déployés sur les sites live et sandbox"
En fait, j'aimerais avoir un code différent. Mon but avec "Sandbox" est en fait de déployer de nouvelles fonctionnalités 2 semaines avant de les déployer sur Live. Pour que les utilsateurs puissent les tester.
Pour les données, elles sont effectivement séparées mais je ne stocke rien dans la base de données de liferay (a part ce que liferay gère lui même); sur Sandbox mes portlets java appellent des API sandbox et sur Live mes mes portlets java appellent des API Live. Je suppose que chaque site a son propre "property file" dans lequel je peux configurer des URI différentes.

Pour être vraiment complet sur ma question: La bonne solution serait d'avoir deux instances séparées de liferay pour les deux environnements. La raison principale est que je dois isoler techniquement ces deux environnements l'un de l'autre (histoire de certification...). C'est d'ailleurs la solution qui a été choisie il y a plusieurs mois (avant que je sois responsable de cette application). Mon problème avec cette option, est que je ne vois pas comment gérer les quelques portlets qui sont communs aux deux environnements...En effet, le menu de navigation doit être identique, et certains portlets de l'appli visent des données communes a Sandbox et Live (via des API communes aux deux).
Il y a une forte probabilité que je choisisse l'option "2 instances", mais avant de me lancer la dedans je souhaite vérifier que c'est bien la seule solution viable.
Dans cette option, je compte mettre les portlets "communs" dans l'instance Sandbox.

Désolé pour le long message, j'espère être complet ^^
Pierre Gonon, modificado hace 7 años.

RE: Multiples instances avec pages communes

New Member Mensajes: 11 Fecha de incorporación: 31/08/16 Mensajes recientes
Petite précision:
avec une seule instance (+ virtual hosts), comment avoir deux versions déployées différentes d'un même portlet java
Darryl Kpizingui, modificado hace 7 años.

RE: Multiples instances avec pages communes

Junior Member Mensajes: 82 Fecha de incorporación: 10/01/13 Mensajes recientes
Bonjour Pierre,
A moins de changer le nom des portlets, encore si ils ne contiennent pas de service builder, je ne pense que l'on peut avoir deux versions déployés jusqu'en 6.2. Par nom du portlet, je veux dire le nom des fichiers war (portlet1.war, portlet2.war). Après il y a risque de se mélanger lors de la configuration des ces portlets sur les pages.
thumbnail
Eric COQUELIN, modificado hace 7 años.

RE: Multiples instances avec pages communes

Expert Mensajes: 254 Fecha de incorporación: 3/11/13 Mensajes recientes
Pierre,

A lire les deux derniers messages, je pense que vous devez opter pour deux instances distinctes (deux Liferay / deux processus) parce qu'en 6+ vous ne pourrez pas avoir deux versions distinctes d'un même portlet sans effectivement les nommer différemment. Je ne suis même pas sûr que ce soit possible en 7+.

De plus, le fichier de conf principal (portal-ext.properties) est le même pour les deux mais c'est possible de gérer ça avec des valeurs de custom field différentes selon le site ou par d'autres moyens détourné mais je crains que ce soit plus compliqué que nécessaire.

Je recommande donc deux instances. Et vous dupliquerez les déploiements, ce n'est pas non plus la mer à boire emoticon

Bonne journée.
Pierre Gonon, modificado hace 7 años.

RE: Multiples instances avec pages communes

New Member Mensajes: 11 Fecha de incorporación: 31/08/16 Mensajes recientes
Merci beaucoup Eric!
Je vais partir sur deux instances, ce qui me parait plus clair et aussi plus simple a maintenir pour nous qui ne maitrisons pas trop liferay...