Duplication d'environnements duplicating-environments
Introduction introduction
Vue d'ensemble overview
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 :
-
Créer une copie des bases de données de toutes les instances de l'environnement-source,
-
Restaurer ces copies sur toutes les instances de l'environnement-cible,
-
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.
note note NOTE 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é).note important IMPORTANT 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 before-you-start
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 implementation
Procédure de transfert transfer-procedure
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) step-1---make-a-backup-of-the-source-environment--prod--data
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) step-2---export-the-target-environment-configuration--dev-
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.
Etape 3 - Arrêter l'environnement cible (recette) step-3---stop-the-target-environment--dev-
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 :
code language-none net stop nlserver6
-
Sous Linux :
code language-none /etc/init.d/nlserver6 stop
Vérifiez que tous les processus sont bien arrêtés via la commande suivante :
nlserver pdump
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) step-4---restore-the-databases-in-the-target-environment--dev-
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) step-5---cauterize-the-target-environment--dev-
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 step-6---check-cauterization
-
Vérifier que le seul deliverypart est celui dont l'ID est égal à 0 :
code language-none SELECT * FROM neolane.nmsdeliverypart;
-
Vérifiez que la mise à jour des statuts des diffusions est correcte :
code language-none SELECT iState, count(*) FROM neolane.nmsdelivery GROUP BY iState;
-
Vérifiez que la mise à jour des statuts des workflows est correcte :
code language-none 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) step-7---restart-the-target-environment-web-process--dev-
Sur l'environnement-cible, redémarrez les processus Adobe Campaign sur tous les serveurs.
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) step-8---import-options-and-external-accounts-into-the-target-environment--dev-
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) :
-
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).
-
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 > Plateforme > Options.
-
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 > Plateforme > Comptes externes .
Etape 9 - Redémarrer l'ensemble des processus et changer les utilisateurs (recette) step-9---restart-all-processes-and-change-users--dev-
Pour démarrer les processus Adobe Campaign, les commandes sont les suivantes :
-
Sous Windows :
code language-none net start nlserver6
-
Sous Linux :
code language-none /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 plateforme de recette.