Nouvelle fonctionnalité : Utilisation de dépôts Git privés avec AEM as a Cloud Service
Dans AEM as a Cloud Service ou dans le produit AEM 6.5 hébergé par Adobe (AEM Managed Services ou "AMS"), le déploiement d' un code dans un environnement hébergé par Adobe exige depuis longtemps que ce code soit d'abord enregistré dans le dépôt git hébergé par Adobe.
Le raisonnement est assez simple - le cadre CI/CD Cloud Manager d'Adobe doit effectuer un certain nombre de vérifications sur le code, puis exécuter des constructions sur ce code à partir de leur service de construction conteneurisé, et enfin être en mesure de marquer les versions dans le repo une fois que les déploiements de production sont terminés.
Dépôts privés ou Adobe - Contexte
Les clients d'AEMaaCS et d'AMS ont longtemps dû faire face à un certain nombre de complexités et de limitations lors de l'utilisation de ce système, ce qui a fait de la possibilité d'utiliser un repo git privé avec AEM hébergé dans le nuage une fonctionnalité très souhaitable et recherchée :
Gestion de deux dépôts
Le dépôt Adobe git n'est qu'un dépôt de déploiement. Il n'est pas destiné à être le git principal à partir duquel vous travaillez pour développer votre site AEM. Il n'y a pas d'accord de niveau de service pour la disponibilité ou les sauvegardes. Ainsi, dans le cadre de votre projet, vous devez maintenir votre propre dépôt interne ainsi que le dépôt d'Adobe pour le déploiement, et gérer la synchronisation entre ces dépôts.
Le repo d'Adobe manque de fonctionnalités comme les demandes d'extraction (pull requests)
L'implémentation d'Adobe git manque d'un certain nombre de fonctionnalités, ce qui complique quelque peu la mise en place de certains pipelines à un stade précoce. Par exemple, le git d'Adobe n'a pas de threading ou de pull requests.
Cela devient un problème lorsque le pipeline Adobe CI/CD est le seul endroit où vous pouvez vraiment exécuter la suite complète de tests d'automatisation de la construction qui montrerait des choses comme les violations de sécurité, la dégradation des performances, les violations des règles Sonarqube, etc.
Donc, si vous avez une nouvelle fonctionnalité sur laquelle vous voulez ouvrir un PR qui - disons - rend le site plus rapide, vous devez ouvrir ce PR sur votre propre Github, votre responsable doit l'"approuver" même si nous ne savons pas s'il passe les contrôles de construction, vous le livrez ensuite à travers le git d'Adobe à un moment où il peut échouer et votre PR était alors en quelque sorte sans valeur.
Sécurité & Gestion des utilisateurs
Il n'y a pas de contrôles fins sur Adobe git pour contrôler l'accès à la gestion des utilisateurs &. Vous devez donc mettre en place votre propre sécurité sur votre propre git, puis vous appuyer sur l'automatisation de la construction que vous créez de votre côté pour tenter de limiter les branches, les commits, les changements, etc. qui arrivent sur le git d'Adobe. C'est possible, mais cela ne fait qu'ajouter un niveau de complexité Rube Goldberg propice aux erreurs.
Dépôts Git privés pour AEM as a Cloud Service & AMS : Qu'est-ce qu'Adobe a publié ?
Pour être clair, il s'agit de la première version générale de cette fonctionnalité (annoncée lors du sommet Adobe de cette année et testée en avant-première auprès de plusieurs clients au cours de l'année écoulée). En tant que tel, il ne prend pas en charge TOUTES les fonctionnalités que vous pourriez souhaiter, et il existe un certain nombre de limitations dont vous devez être conscient. Mais c'est un grand pas en avant pour ceux qui vivent dans ce monde, et je vais donc essayer d'esquisser un certain nombre de choses qu'il peut et ne peut pas faire.
Ce que vous pouvez faire maintenant :
-
Utiliser Github.com dans les pipelines de Cloud Manager : Vous pouvez désormais ajouter un dépôt github.com en tant que dépôt de déploiement dans Adobe Cloud Manager.
Remarque : il s'agit spécifiquement du site public https://github.com/ et non de Github ou d'autres fournisseurs git auto-hébergés. Adobe utilise une application Github pour pouvoir authentifier et maintenir l'accès à Git, et c'est une partie obligatoire du processus à l'heure actuelle.C'est probablement l'un des principaux obstacles à la mise en œuvre d'autres fournisseurs git.
-
Exécuter des pipelines de qualité du code sur les RP : Une partie très utile de ce "déplacement vers la gauche" dans le pipeline que cela vous permet de faire, est d'ouvrir des PR dans github qui peuvent alors lancer un Code Quality Pipeline de Cloud Manager, qui peut alors rapporter ses résultats DIRECTEMENT DANS LE PR. Il s'agit d'un élément essentiel pour pouvoir déterminer si une RP est réellement approuvable ou si elle doit être renvoyée pour être retravaillée.
-
Les pipelines de RP sont créés et exécutés automatiquement : Lorsque vous ouvrez une RP qui déclenche un pipeline de qualité du code dans votre Cloud Manager, un pipeline est créé spécifiquement pour cette RP et exécute & spécifiquement pour cette RP. Lorsque ce PR est fermé, Cloud Manager supprime automatiquement ce pipeline afin d'éviter qu'il ne soit encombré par un million de pipelines de PR.
Ce comportement est configurable dans votre projet. -
Exécuter des pipelines complets : Après avoir vérifié la qualité du code et approuvé les PR, il est possible de configurer les pipelines full-stack de Cloud Manager pour qu'ils puissent être exécutés directement à partir de votre repo Github, sans transiter par le repo Adobe de Cloud Manager.
Ces déploiements peuvent aller jusqu'à la production. -
Fonctionne à la fois sur AMS (AEM 6.5) et sur AEM as a Cloud Service: Cette solution prend en charge les deux types d'infrastructures, avec les mêmes mises en garde.
Ce que vous ne pouvez pas encore faire :
-
Utiliser des dépôts Git autres que ceux de Github : Cette fonctionnalité ne fonctionne que sur https://github.com. Ainsi, si vous avez "company.github.com" ou "gitlab.com" ou "bitbucket.com" ou Azure repos ou tout autre fournisseur git non-Github, cela ne fonctionnera pas encore pour vous.
Adobe a déclaré qu'il travaillait activement sur la priorisation et l'activation d'autres fournisseurs git en fonction des besoins des clients - donc si vous avez un BESOIN, ne perdez pas de temps à contacter un employé d'Adobe que vous connaissez et qui est à l'écoute. -
Pas de pipeline de configuration, de Front-End ou de Web-Tier : Actuellement, cette fonctionnalité ne fonctionne qu'avec le "Full-Stack pipeline" qui déploie tout dans votre projet AEM. Si vous utilisez les autres pipelines de sous-modules tels que le pipeline Web-Tier pour déployer du code dispatcher uniquement, ou le pipeline Config pour déployer vos configurations CDN, cette fonctionnalité n'est pas encore pour vous.
-
Le déclencheur Git ne fonctionne pas encore : Si vous essayez de faire démarrer un pipeline (qualité du code ou déploiement) sur un déclencheur git, de sorte qu'il démarre le déploiement une fois que le code est livré, cela ne fonctionne pas encore.
À ce stade, même si l'option "Deployment Trigger : Sur les changements Git" est cochée, vous devrez toujours déclencher manuellement le déploiement. Ce point est désormais également mentionné dans la section "Limitations" de la documentation. (Un coup de chapeau à Sathish Balan pour avoir signalé ce point !)
Perfectionner votre pipeline AEM
Si cela vous semble quelque chose à essayer vous-même, la documentation est ici sur la façon de démarrer avec Github autogéré dans AEM.
Cependant, si vous n'êtes pas sûr de vouloir mettre en œuvre cette solution, ou si vous avez d'autres problèmes de déploiement ou de CI/CD dont vous voulez discuter, je suis à votre disposition !
Par ailleurs, pour en savoir plus sur le sujet (si vous aimez les podcasts), notre CTO Dwayne Hale et moi-même discutons ici des mérites et des inconvénients de l'utilisation d'un équipement AEM hébergé dans le nuage par rapport à un équipement AEM auto-hébergé.

Tad Reeves
Architecte principal chez Arbory Digital
Architecte AEM & DevOps avec 14 ans d'expérience sur AEM/CQ et plus de 25 ans dans l'infrastructure des systèmes. Il pratique le VTT depuis plus longtemps qu'il n'administre des systèmes et, bien qu'originaire du Maine, il vit dans les montagnes du nord-ouest de la Géorgie.
Vous avez aimé ce que vous avez entendu ? Vous avez des questions sur ce qui vous convient le mieux ? Nous aimerions en parler ! Contact avec nous
Episodes de podcast & Articles de blog

Qu'est-ce que l'AEM ? À quoi sert Adobe Experience Manager ? Nous avons tenté d'expliquer ce qu'est et ce que fait l'AEM en 30 minutes ou moins - et nous avons réussi à le faire, même si le service des incendies est apparu au hasard après 19 minutes d'enregistrement du podcast !

Que savez-vous des outils à votre disposition pour optimiser les performances de votre site en Chine continentale ? Et même si vous n'avez pas de site en chinois, devez-vous vous préoccuper des performances en Chine ? VOUS LE FAITES !

Dans la guerre actuelle entre le rapatriement du cloud et les nouveaux services Edge Delivery ultra-rapides, revenons sur la question suivante : l'AEM auto-hébergé est-il toujours d'actualité ?