Show Menu
SUJETS×

Duplication d'environnements

Introduction

Présentation

Si vous n'avez pas accès au serveur et à la base de données (environnements hébergés), vous ne serez pas en mesure d'effectuer les procédures décrites ci-dessous. Veuillez contacter Adobe.
L'utilisation d'Adobe Campaign requiert l'installation et le paramétrage d'un ou plusieurs environnements : développement, test, pré-production, recette, production, etc.
Chaque environnement contient une instance Adobe Campaign et chaque instance Adobe Campaign est liée à une ou plusieurs bases de données. Le serveur applicatif peut exécuter un ou plusieurs processus : la quasi totalité de ces processus accèdent directement à la base de données de l'instance.
Cette section présente les procédures à appliquer pour dupliquer un environnement Adobe Campaign, c'est-à-dire pour restaurer un environnement-source dans un environnement-cible, et ainsi disposer de deux environnements de travail identiques.
Pour cela, les étapes sont les suivantes :
  1. Créer une copie des bases de données de toutes les instances de l'environnement-source,
  2. Restaurer ces copies sur toutes les instances de l'environnement-cible,
  3. Exécutez le script de cautérisation nms:freezeInstance.js sur l'environnement-cible avant sa mise en route.
    Les serveurs et leur configuration ne sont pas impactés par cette procédure.
    Dans Adobe Campaign, une cautérisation regroupe les actions qui permettent l'arrêt des processus qui interagissent avec l'extérieur : logs, tracking, diffusions, workflows de campagnes, etc. Cette étape est nécessaire afin de ne pas diffuser des messages plusieurs fois (une fois depuis l'environnement nominal, une fois depuis l'environnement dupliqué).
    Un environnement peut contenir plusieurs instances. Chaque instance Adobe Campaign est sujette à un contrat de licence. Le nombre d'environnements autorisés est mentionné dans votre contrat de licence. La procédure proposée ci-après vous permet de transférer un environnement sans pour autant impacter le nombre d'environnements et d'instances installées.

Avant de commencer

Il est vivement recommandé de réaliser des sauvegardes complètes des bases de données de toutes les instances des environnements-source et cible avant toute manipulation. En cas de problème, vous pourrez ainsi restaurer ces sauvegardes et retrouver la configuration initiale.
Afin de mettre en oeuvre la procédure décrite ci-dessous, l'environnement-source et l'environnement-cible doivent disposer du même nombre d'instances. Elles doivent avoir la même finalité (instance marketing, de diffusions) et une configuration similaire. La configuration technique doit correspondre aux pré-requis logiciels. Les mêmes composants doivent être installés dans les deux environnements.

Mise en œuvre

Procédure de transfert

Nous vous proposons ici de comprendre les étapes de transfert d'un environnement-source vers un environnement-cible à travers un cas pratique : l'objectif est de restaurer un environnement de production (instance prod ) dans un environnement de développement (instance recette ) afin de travailler dans un contexte qui soit le plus proche possible de la plateforme 'live'.
Les étapes ci-dessous doivent être réalisées avec précaution : certains processus peuvent être en cours lors de la copie des bases de données de l'environnement-source. La procédure de cautérisation (Etape 3 ci-après) permet de ne pas diffuser les messages plusieurs fois aux mêmes destinataires et de conserver la cohérence des données.
  • La procédure ci-dessous est valide en langage PostgreSQL, si le langage SQL est différent (Oracle, par exemple), les requêtes SQL doivent être adaptées.
  • Dans les exemples de commandes proposés ci-après, on considère une instance prod et une instance recette existantes sous PostgreSQL.

Etape 1 - Sauvegarder les données de l'environnement-source (prod)

Copier les bases de données
Vous devez au préalable copier toutes les bases de données de l'environnement-source. Le mode de réalisation de cette opération dépend du moteur de la base de données et est sous la responsabilité de l'administrateur des bases de données.
Sous PostgreSQL, la commande est la suivante :
pg_dump mydatabase > mydatabase.sql

Etape 2 - Exporter la configuration de l'environnement cible (recette)

La plupart des éléments de configuration diffèrent d'un environnement à l'autre : comptes externes (mid-sourcing, routing, etc.), options techniques (nom de la plateforme, DatabaseId, adresses email et URL par défaut, etc.).
Avant de restaurer la base source sur la base cible, vous devez exporter la configuration de l'environnement cible (recette). Vous devez exporter le contenu des deux tables suivantes : xtk:option et nms:extaccount .
Cet export permet de conserver la configuration de la recette et de ne rafraîchir que les données de la recette (workflows, modèles, applications Web, detinataires, etc.).
Pour cela, effectuez un export de package pour les deux éléments suivants :
  • Dans un fichier 'options_recette.xml', exporter la table xtk:option , sans les enregistrements avec les noms internes suivants : 'WdbcTimeZone', 'NmsServer_LastPostUpgrade' et 'NmsBroadcast_RegexRules'.
  • Dans un fichier 'extaccount_recette.xml', exporter la table nms:extAccount pour tous les enregistrements dont l'ID est différent de 0 (@id <> 0).
Vérifiez dans chaque fichier que le nombre d'options/de comptes exportés est égal au nombre de lignes à exporter.
Le nombre de lignes à exporter dans un export de package est de 1000 lignes. Si le nombre d'options ou de comptes externes est supérieur à 1000, il faut procéder à plusieurs exports.
Voir à ce sujet cette section .
Lors de l’export de la table nmsextaccount, les mots de passe associés aux comptes externes (par exemple les mots de passe pour Mid-sourcing, Message Center, SMPP, IMS et d’autres comptes externes) ne sont pas exportés. Assurez-vous d’avoir préalablement accès aux mots de passe corrects, car ils devront peut-être être entrés de nouveau une fois les comptes externes réimportés dans l’environnement.

Etape 3 - Arrêter l'environnement cible (recette)

Vous devez arrêter les processus Adobe Campaign sur tous les serveurs de l'environnement-cible. Le mode de réalisation de cette opération dépend de votre système d'exploitation.
Vous pouvez arrêter tous les processus ou seulement ceux qui écrivent dans la base de données.
Pour arrêter tous les processus, les commandes sont les suivantes :
  • Sous Windows :
    net stop nlserver6
    
    
  • Sous Linux :
    /etc/init.d/nlserver6 stop
    
    
Vérifiez que tous les processus sont bien arrêtés via la commande suivante :
nlserver pdump

Sous Windows, le processus webmdl peut être encore actif sans impacter le reste des opérations.
Vous pouvez également vérifier qu'aucun processus système ne subsiste.
Pour cela :
  • Sous Windows : ouvrez le Gestionnaire des tâches et vérifiez l’absence de tout processus nlserver.exe .
  • Sous Linux : exécutez la commande ps aux | grep nlserver et vérifiez l’absence de tout processus nlserver .

Etape 4 - Restaurer les bases de données dans l'environnement-cible (recette)

Pour restaurer les bases de données-sources dans l'environnement-cible, la commande est la suivante :
psql mydatabase < mydatabase.sql

Etape 5 - Cautériser l'environnement-cible (recette)

Afin d'éviter tout dysfonctionnement, les processus relatifs à l'envoi des diffusions et à l'exécution des workflows ne doivent pas s'exécuter automatiquement au moment de l'activation de l'environnement-cible.
Pour cela, exécutez la commande suivante :
nlserver javascript nms:freezeInstance.js -instance:<dev> -arg:run

Etape 6 - Vérifier la cautérisation

  1. Vérifier que le seul deliverypart est celui dont l'ID est égal à 0 :
    SELECT * FROM neolane.nmsdeliverypart;
    
    
  2. Vérifiez que la mise à jour des statuts des diffusions est correcte :
    SELECT iState, count(*) FROM neolane.nmsdelivery GROUP BY iState;
    
    
  3. Vérifiez que la mise à jour des statuts des workflows est correcte :
    SELECT iState, count(*) FROM neolane.xtkworkflow GROUP BY iState;
    SELECT iStatus, count(*) FROM neolane.xtkworkflow GROUP BY iStatus;
    
    

Etape 7 - Redémarrer le processus Web de l'environnement-cible (recette)

Sur l'environnement-cible, redémarrez les processus Adobe Campaign sur tous les serveurs.
Avant de redémarrer Adobe Campaign sur l'environnement recette , il est possible d'appliquer une procédure de sécurité supplémentaire : ne démarrer que le module web .
Pour cela, éditez le fichier configuration de votre instance ( config-dev.xml ), puis ajoutez le caractère « _ » devant les options autoStart="true" pour chaque module (mta, stat, etc.).
Exécuter la commande suivant afin de démarrer le processus web :
nlserver start web

Vérifier que seul le processus web est démarré à l'aide de la commande suivante :
nlserver pdump

Vérifer visuellement que l'accès à la console client fonctionne.

Etape 8 - Importer les options et les comptes externes dans l'environnement-cible (recette)

Seul le processus web doit être lancé à cette étape. Dans le cas contraire, arrêtez les autres processus en cours d’exécution avant de continuer.
Vérifier avant toutes choses les valeurs de plusieurs lignes des fichiers avant l'import (par exemple : 'NmsTracking_Pointer' pour la table des options et les comptes d'envoi ou de mid-sourcing pour la table des comptes externes).
Pour importer la configuration de la base de données de l'environnement-cible (recette) :
  1. Ouvrir la console d'administration de la base de données et purger les comptes externes (table nms:extAccount) dont l'ID est différent de 0 (@id <> 0).
  2. Au niveau de la console Adobe Campaign, importer le package options_recette.xml précédemment créé via la fonctionnalité d'import de package.
    Vérifier que les options ont bien été mises à jour dans le noeud Administration > Plate-forme > Options .
  3. Au niveau de la console Adobe Campaign, importer le package extaccount_recette.xml précédemment créé via la fonctionnalité d'import de package.
    Vérifier que les comptes externes ont bien été importés dans le noeud Administration > Plate-forme > Comptes externes .

Etape 9 - Redémarrer l'ensemble des processus et changer les utilisateurs (recette)

Pour démarrer les processus Adobe Campaign, les commandes sont les suivantes :
  • Sous Windows :
    net start nlserver6
    
    
  • Sous Linux :
    /etc/init.d/nlserver6 start
    
    
Vérifier que les processus sont bien démarrés via la commande suivante :
nlserver pdump

Changer les utilisateurs pour retrouver les utilisateurs qui existaient auparavant sur la plate-forme de recette.