« L'outil le plus puissant dont disposent les développeurs, c'est l'automatisation ». Scott Hanselman, célèbre programmeur, blogueur et intervenant tech, n'est pas le seul à le dire. C'est en fait l'une des principales tendances des entreprises en 2021 et pour les années à venir.
Dans le monde du développement, l'un des processus d'automatisation les plus importants est la livraison continue, c'est-à-dire la préparation automatique du code en vue de sa publication avec une mise à disposition entièrement automatisée.
Elle requiert au préalable la mise en œuvre de l'intégration continue par laquelle chaque modification de code est testée automatiquement dans un environnement de test avant d'être incluse dans une version.
Avec la livraison continue, une équipe peut décider de lancer le processus de publication n'importe quand. Un pipeline crée et teste automatiquement le code en vérifiant qu'aucune erreur n'a été engendrée par les dernières modifications. Ensuite le code, sous la forme d'un artefact prêt a être publié, est déployé dans un environnement de test où quelques vérifications manuelles pourront être réalisées en plus avant la validation finale.
La validation finale est manuelle alors qu'elle est automatisée dans le déploiement continu. C'est là que se situe la différence entre livraison continue et déploiement continu. Les tests automatisés s'exécutent dans l'environnement de test, et une fois ces tests réussis, la mise en production du code est planifiée.
La livraison continue élargit le concept de l'intégration continue. Elle inclut non seulement les tests du code prêt à être publié, mais également l'exécution de tests automatisés sur chaque modification du code base. Si le résultat est négatif, elle sera bloquée jusqu'à ce qu'elle obtienne un feedback positif.
Dans un contexte de livraison continue, le déploiement dans un environnement de production ou de test devrait être automatisé dans son ensemble. Il comprend l'installation des packages, l'exécution des tests de cohérence après publication, mais aussi les mécanismes automatiques de retour arrière en cas d'échec des tests.
Les feature flags sont également importants en livraison continue. Ils donnent la possibilité de désactiver du code si besoin afin d'éviter tout problème de production lors de la publication.
Pourquoi la livraison continue est-elle importante ?
Lorsqu'une équipe décide de procéder à une nouvelle publication, toutes les phases préalables sont exécutées automatiquement. Les deux seules étapes manuelles sont le lancement de la publication et la validation pour production, elle-même automatisée en déploiement continu.
Par conséquent, il n'existe quasi plus de rapport de dépendance entre la mise à disposition et l'expérience des développeurs en publication. Il ont donc plus de temps à consacrer au développement de nouvelles fonctionnalités, ce qui améliore l'efficacité opérationnelle de l'entreprise.
Voici plus en détail les quatre principaux avantages :
1. Diminution des risques d'erreur
Les processus de montages, tests et déploiement automatiques réduisent les risques d'erreur. Un pipeline d'intégration continue/livraison continue peut facilement exécuter des centaines de tests en quelques minutes alors que le workflow manuel prend beaucoup plus de temps. Les mêmes paramètres sont appliqués à chaque fois. Cette condition est plus difficile à respecter sur les tests manuels.
2. Accélération de la boucle de feedback
Comme chaque modification de code est automatiquement testée, les erreurs possibles sont détectées à un stade précoce dans le cycle de développement. Les développeurs obtiennent très rapidement un feedback et corrigent les bugs immédiatement après les tests.
3. Retour arrière automatique
Si la publication avant mise en production génère des problèmes, la publication sera annulée et la version précédente sera restaurée. De cette manière, l'environnement de production reste opérationnel.
4. Baisse du nombre de modifications par publication
Comme il n'y a quasiment plus de processus manuels, la fréquence de publication augmente car l'automatisation simplifie la livraison. S'il y a le moindre problème, il est facilement identifié.
Deux conseils en guise de conclusion
1. Testez, testez, testez !Pour réduire le nombre de bugs dans une publication (qui est toujours nul de toute façon 😉), il faut réaliser suffisamment de tests. Exécutez des tests sur toute modification de code : des tests unitaires, fonctionnels, etc. Ils doivent s'appliquer au code base dans son ensemble. Il faut les compléter lors du développement de nouvelles fonctionnalités. Prévoyez également des tests de bout en bout et vérifiez que les nouvelles fonctionnalités ne perturbent pas celles qui sont déjà disponibles.
2. Automatisez !C'est la solution. Vous devez mettre en place une procédure standard de tests et de déploiement qui exclut le risque d'erreurs humaines. L'automatisation du déploiement garantit la (quasi) disparition des mauvaises surprises pendant et après la publication en raison de l'application des mêmes paramètres.
Si vous suivez ces conseils, vous ne voudrez plus revenir en arrière et ne pourrez plus vous passer des avantages de la livraison continue. Si vous cherchez d'autres moyens de vous simplifier la vie avec AEM, lisez notre article sur les composants de base. Vous ne savez pas encore si la plateforme Adobe Experience Manager correspond à vos exigences ? Contactez-nous ! Ensemble, nous élaborerons une solution au plus près de vos besoins.