Déployer votre code deploy-your-code
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 du code de manière transparente sur l’environnement intermédiaire, puis jusqu’à la production, est effectué via un pipeline de production. L’exécution du pipeline de production est divisée en deux phases logiques :
- Déploiement dans l’environnement intermédiaire : le code est créé et déployé dans l’environnement intermédiaire 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 que la version est validée à l’étape et approuvée pour la promotion en production, le même artefact de version 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 deployment-process
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 deploying-code-with-cloud-manager
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 Overview, dans la zone d’appel à l’action, cliquez sur Deploy.
-
Sur la page Déployer en production, cliquez sur Créer.
Le processus de création déploie votre code au cours des trois phases triées suivantes :
Phase de déploiement intermédiaire stage-deployment
La phase de déploiement dans l’environnement intermédiaire comprend les étapes suivantes :
Pour plus d’informations sur l’environnement de génération, voir Détails de l’environnement de génération .
Voir Test de qualité du code pour plus d’informations sur le processus de test.
Phase de test d’évaluation stage-testing
La phase Test d’évaluation comprend les étapes suivantes :
Voir aussi Tests fonctionnels du produit.
Voir aussi Tests fonctionnels personnalisés.
Les tests d’interface utilisateur sont basés sur Selenium et conditionnés dans une image Docker pour offrir une flexibilité en langage et en structures. Cette approche vous permet d’utiliser Java et Maven, Node et WebDriver.io, ou tout framework ou technologie Selenium.
Voir aussi Tests de l’interface utilisateur personnalisée.
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.
Voir Compréhension des résultats du contrôle de l’expérience.
Phase de déploiement de la production production-deployment
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 que précédemment décrites, mais de manière progressive. Ces étapes sont les suivantes :
- Déploiement des packages AEM sur l’instance de création.
- Désolidarisez
dispatcher1
de l’équilibreur de charge. - Déployez AEM packages sur
publish1
et le package Dispatcher surdispatcher1
, videz le cache Dispatcher. - Replacez
dispatcher1
dans l’équilibreur de charge. - Lorsque
dispatcher1
est de retour en service, désolidarisezdispatcher2
de l’équilibreur de charge. - Déployez AEM packages sur
publish2
et le package Dispatcher surdispatcher2
, videz le cache 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 pendant un déploiement timeouts
Les étapes suivantes expirent si elles attendent les commentaires des utilisateurs lors d’un déploiement :
Réexécuter un déploiement en production reexecute-deployment
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é ou non). La réexécution crée une nouvelle exécution à l’aide du même pipeline constitué des trois étapes suivantes :
- Validation : même validation qui survient lors de l’exécution normale d’un pipeline.
- Build - Dans le contexte d’une réexécution, l’étape de création copie les artefacts et n’exécute pas de 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 du 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.
Limites limitations
- 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 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 reexecute-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 reexecute-deployment-api
Pour déclencher une réexécution, envoyez une requête de PUT au lien HAL https://ns.adobe.com/adobecloud/rel/pipeline/reExecute
sur l’état de l’étape de déploiement de 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 n’est disponible que 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 de PUT à ce point de terminaison entraîne une réponse 201 en cas de réussite, et le corps de la réponse est 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 nouvelle exécution identify-reexecution
Le système identifie les réexécutions en définissant le champ trigger
sur la valeur RE_EXECUTE
.