Déployer votre code
- S'applique à :
- Experience Manager as a Cloud Service
- Rubriques :
- Cloud Manager
- Développement
Créé pour :
- Administration
- Développeur
Découvrez comment déployer votre code vers la Production à l’aide des pipelines Cloud Manager dans AEM as a Cloud Service.
Le déploiement transparent du code vers les environnements d’évaluation, puis de production s’effectue via un pipeline de production. L’exécution du pipeline de production est divisée en deux phases logiques :
- Déploiement dans l’environnement d’évaluation - Le code est créé et déployé dans l’environnement d’évaluation pour les tests fonctionnels automatisés, les tests de l’interface utilisateur, le contrôle de l’expérience et les tests d’acceptation utilisateur (UAT).
- Déploiement dans l’environnement de production - Une fois la version validée à l’étape d’évaluation et approuvée pour le passage en production, le même artefact de build est déployé dans l’environnement de production.
Seul le type de pipeline Code full stack prend en charge l’analyse de code, les tests de fonction, les tests d’interface utilisateur et le contrôle de l’expérience.
Processus de déploiement
Tous les déploiements de Cloud Service suivent un processus continu pour garantir un temps d’arrêt nul. Pour en savoir plus, voir Fonctionnement des déploiements en continu.
Déploiement de votre code avec Cloud Manager dans AEM as a Cloud Service
Une fois que vous avez configuré votre pipeline de production, y compris le référentiel, l’environnement et l’environnement de test, vous êtes prêt à déployer votre code.
-
Connectez-vous à Cloud Manager à l’adresse my.cloudmanager.adobe.com et sélectionnez l’organisation appropriée.
-
Sur la console Mes programmes, cliquez sur le programme pour lequel vous souhaitez déployer du code.
-
Sur la page Aperçu, dans la zone call-to-action, cliquez sur Déployer.
-
Sur la page Déployer en production, cliquez sur Créer.
Le processus de création déploie votre code par le biais des trois phases ordonnées suivantes :
Phase de déploiement dans l’environnement intermédiaire
La phase Déploiement dans l’environnement intermédiaire comprend les étapes suivantes :
Voir Détails de l’environnement de création pour plus d’informations sur l’environnement de création.
Voir Test de qualité du code pour plus d’informations sur le processus de test.
Phase de test d’évaluation
La phase de test d’évaluation comprend les étapes suivantes :
Voir aussi Tests fonctionnels du produit.
Voir aussi Tests fonctionnels personnalisés.
sont basés sur Selenium et conditionnés dans une image Docker afin d’offrir une flexibilité au niveau du langage et des structures. Cette approche vous permet d’utiliser Java et Maven, Node et WebDriver.io, ou tout framework ou technologie basé sur Selenium.
Voir aussi Test d’interface utilisateur personnalisé.
Cette étape du pipeline est toujours exécutée et ne peut pas être ignorée. Lorsqu’un pipeline de production est exécuté, une étape de contrôle de l’expérience est incluse après les tests fonctionnels personnalisés qui exécutent les contrôles.
- Les pages configurées sont envoyées au service et évaluées.
- Les résultats sont informatifs et affichent les scores et le changement entre les scores actuels et précédents.
- Ces informations sont utiles pour déterminer si une régression est introduite avec le déploiement actuel.
Phase de déploiement en production
Le processus de déploiement des topologies de production diffère légèrement afin de minimiser l’impact sur les visiteurs d’un site AEM.
Les déploiements en production suivent généralement les mêmes étapes décrites précédemment, mais par roulements. Ces étapes sont les suivantes :
- Déploiement des packages AEM sur l’instance de création.
- Désolidarisez le
dispatcher1
de l’équilibreur de charge. - Déployez les packages AEM sur
publish1
et le package Dispatcher surdispatcher1
, videz le cache de Dispatcher. - Replacez-
dispatcher1
dans l’équilibreur de charge. - Lorsque
dispatcher1
est de nouveau en service, désolidarisez ledispatcher2
de la répartition de charge. - Déployez les packages AEM sur
publish2
et le package Dispatcher surdispatcher2
, videz le cache de Dispatcher. - Replacez-
dispatcher2
dans l’équilibreur de charge.
Ce processus se poursuit jusqu’à ce que le déploiement ait atteint tous les éditeurs et Dispatchers dans la topologie.
Délais d’expiration lors d’un déploiement
Les étapes suivantes expirent s’ils sont en attente de commentaires de l’utilisateur lors d’un déploiement :
Réexécution d’un déploiement en production
Dans de rares cas, les étapes de déploiement en production peuvent échouer pour des raisons transitoires. Dans ce cas, la réexécution de l’étape de déploiement en production est prise en charge tant que l’étape de déploiement en production est terminée, quel que soit le type d’achèvement (par exemple, annulée ou infructueuse). La réexécution crée une nouvelle exécution à l’aide du même pipeline, composée des trois étapes suivantes :
- Validation - La même validation qui se produit lors de l’exécution normale d’un pipeline.
- Version - Dans le contexte d’une réexécution, l’étape de création consiste à copier des artefacts, sans réellement exécuter un nouveau processus de création.
- Déploiement en production - Utilise la même configuration et les mêmes options que l’étape de déploiement en production dans une exécution normale de pipeline.
Dans de telles circonstances, si une réexécution est possible, la page de statut du pipeline de production fournit l’option Réexécuter en regard de l’option habituelle Télécharger le journal de création.
Remarques sur l’utilisation
- La réexécution de l’étape de déploiement en production n’est disponible que lors de la dernière exécution.
- La réexécution n’est pas disponible pour les exécutions de mise à jour des notifications push. Si la dernière exécution est une exécution de mise à jour push, la réexécution n’est pas possible.
- Si la dernière exécution a échoué à un moment donné avant l’étape de déploiement en production, une nouvelle exécution n’est pas possible.
Exécuter à nouveau l’API
En plus d’être disponible dans l’IU, l’API Cloud Manager peut servir à déclencher de nouvelles exécutions et à identifier les exécutions déclenchées comme nouvelles exécutions.
Déclencher une nouvelle exécution
Pour déclencher une réexécution, envoyez une requête PUT au https://ns.adobe.com/adobecloud/rel/pipeline/reExecute
HAL Link à l’état d’étape de déploiement en production.
- Si ce lien est présent, l’exécution peut être redémarrée à partir de cette étape.
- En cas d’absence, l’exécution ne peut pas être redémarrée à partir de cette étape.
Ce lien est disponible uniquement pour l’étape de déploiement en production.
{
"_links": {
"https://ns.adobe.com/adobecloud/rel/pipeline/logs": {
"href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530/logs",
"templated": false
},
"https://ns.adobe.com/adobecloud/rel/pipeline/reExecute": {
"href": "/api/program/4/pipeline/1/execution?stepId=2983530",
"templated": false
},
"https://ns.adobe.com/adobecloud/rel/pipeline/metrics": {
"href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530/metrics",
"templated": false
},
"self": {
"href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530",
"templated": false
}
},
"id": "6187842",
"stepId": "2983530",
"phaseId": "1575676",
"action": "deploy",
"environment": "weretail-global-b75-prod",
"environmentType": "prod",
"environmentId": "59254",
"startedAt": "2022-01-20T14:47:41.247+0000",
"finishedAt": "2022-01-20T15:06:19.885+0000",
"updatedAt": "2022-01-20T15:06:20.803+0000",
"details": {
},
"status": "FINISHED"
La syntaxe de la valeur href du lien HAL n’est qu’un exemple. La valeur réelle doit toujours être lue à partir du lien HAL et non générée.
L’envoi d’une requête PUT vers ce point d’entrée entraîne la génération d’une réponse 201 en cas de réussite, le corps de la réponse étant la représentation de la nouvelle exécution. Ce workflow est similaire au démarrage d’une exécution régulière via l’API.
Identifier une exécution de réexécution
Le système identifie les réexécutions en définissant le champ trigger
sur la valeur RE_EXECUTE
.