Meilleures pratiques d'intégration continue
L'intégration continue (CI) augmente la productivité des équipes de développement et améliore la qualité du code globale. Cependant, la mise en œuvre CI ne constitue qu'une seule des étapes qui mènent à des déploiements plus rapides. Pour tirer le meilleur parti de votre système CI, il est important d'intégrer les meilleures pratiques d'intégration continue dans votre workflow.
En règle générale, il est beaucoup plus facile de résoudre les petits problèmes que les gros. L'un des plus grands avantages de l'intégration continue est que le code est intégré dans un dépôt partagé et protégé des changements qui se produisent simultanément. Si une équipe de développement valide des modifications de code tôt et souvent, les bogues sont plus faciles à identifier, car il y a moins de code à trier.
Lorsque les tests sont effectués sur de petits lots, la qualité du code est améliorée et les équipes peuvent itérer plus efficacement.
Les systèmes d'intégration continue mettent à disposition la documentation, qui peut garder son utilité longtemps après la mise en place de l'approche CI dans votre workflow. Chez GitLab, nous disposons d'une documentation CI/CD complète qui est mise à jour fréquemment pour refléter les derniers processus.
Il peut être utile de rassembler la documentation dans des fichiers README ou d'autres formats accessibles. Encouragez les membres de l'équipe à lire d'abord la documentation, à ajouter des liens à leurs favoris, à créer des FAQ et à incorporer ces ressources dans l'intégration des nouveaux membres de l'équipe.
Les pipelines CI contiennent des jobs et des étapes : les jobs désignent les activités qui se déroulent au cours d'une étape spécifique ; une fois que tous les jobs sont terminés, le code passe à l'étape suivante. Pour tirer le meilleur parti de vos pipelines CI, optimisez les étapes afin que les échecs soient faciles à identifier et à corriger.
Les étapes sont un moyen simple d'organiser des jobs similaires. Toutefois, certains jobs de votre pipeline pourraient fonctionner en toute sécurité à une étape antérieure sans avoir un impact négatif sur votre projet en cas d'échec. Envisagez d'exécuter ces jobs plus tôt pour accélérer les pipelines CI.
Rien ne ralentit un pipeline comme la complexité. Concentrez-vous sur la rapidité des compilations. La simplicité est le mot d'ordre.
Chaque minute gagnée au moment de la compilation libère du temps pour les développeurs à chaque validation. Étant donné que CI exige des validations fréquentes, ce temps peut s'additionner. Martin Fowler propose une ligne directrice de la compilation en dix minutes que la plupart des projets modernes peuvent mettre en place. Étant donné que l'intégration continue exige des validations fréquentes, accélérer les validations peut permettre aux développeurs de gagner beaucoup de temps.
L'amélioration est un processus. Lorsque les équipes modifient leur réponse aux échecs, elles initient un changement culturel menant à une amélioration continue. Au lieu de demander qui a causé l'échec, demandez ce qui l'a entraîné. Cette démarche vous oblige à passer d'une culture du blâme à une culture de l'apprentissage.
Si les équipes effectuent des validations fréquentes, il devient beaucoup plus facile d'identifier les problèmes et de les résoudre. Si les échecs de compilation révèlent des schémas, examinez les causes sous-jacentes. Y a-t-il des erreurs sans lien avec le code qui causent des compilations inutiles ? Envisagez d'incorporer un paramètre allow_failure
. Cherchez des moyens de vous améliorer continuellement, d'analyser les échecs sans blâmer personne et de rechercher les causes (et non les coupables).
Dans l'intégration continue, chaque validation déclenche une compilation. Ces compilations exécutent ensuite des tests pour identifier si les modifications de code que vous introduisez risquent de casser le code. La [pyramide de tests]](https://martinfowler.com/bliki/TestPyramid.html) est un moyen pour les développeurs de réfléchir à la façon d'équilibrer les tests. Les tests de bout en bout sont principalement utilisés comme mesure de protection. Les tests unitaires sont les plus utilisés pour identifier les erreurs. Lors des tests, il convient de prêter attention à l'environnement. Lorsque les environnements de test et de production correspondent, les développeurs peuvent se fier aux résultats et effectuer le déploiement en toute confiance.
Dans GitLab, l'examen des applications permet de visualiser les modifications du nouveau code dans un environnement en direct semblable à celui de production. Cette fonctionnalité aide les développeurs à évaluer l'impact des modifications.
L'intégration continue aide les développeurs à déployer et à obtenir des retours plus rapidement. En fin de compte, le meilleur système d'intégration continue est celui que vous utilisez réellement. Trouvez la méthode CI adaptée à vos besoins, puis intégrez ces meilleures pratiques pour tirer parti de votre nouveau workflow CI.
En adoptant les meilleures pratiques présentées ici, les équipes de développement logiciel, y compris les équipes d'ingénierie de plateforme et les équipes DevOps, peuvent améliorer leurs efforts d'intégration continue, afin de rationaliser leur processus de développement et de déploiement. À mesure que ces pratiques sont intégrées à votre environnement de développement, l'alignement entre les objectifs de l'équipe d'ingénierie et l'exécution opérationnelle s'affine.
N'oubliez pas que le système d'intégration continue le plus solide ne concerne pas seulement les outils, mais également leur utilisation efficace par votre équipe pour favoriser les améliorations et obtenir des résultats rapides et fiables.
Lancez-vous dès maintenant
Découvrez comment la plateforme DevSecOps unifiée de GitLab peut aider votre équipe.