
Chaîne d'outils DevOps avec Atlassian - Partie 2 : Bitbucket
Cet article est consacré à Bitbucket, un outil de la suite Atlassian. Il explique l'importance de cet outil pour le développement logiciel et décrit son utilisation dans le contexte DevOps.
Un élément indispensable de toute chaîne d'outils DevOps est un référentiel de code pour tout type de code source logiciel, ainsi que pour le code de configuration et d'automatisation. Dans cet article, nous découvrirons les fonctionnalités et les modes de fonctionnement permettant de mettre en œuvre les principes DevOps dans la pratique, en nous appuyant sur Atlassian Bitbucket comme système central de contrôle de version (VCS).
Les thèmes abordés dans cet article sont les suivants :
- Collaboration et communication
- Transparence
- Gestion des connaissances
- Développement continu
- Automatisation
- « Shift Left »
- Gestion de la configuration
Intégration entre Jira et Bitbucket
Pour faire suite à notre dernier article de blog consacré à la chaîne d'outils DevOps avec Atlassian, nous allons commencer par Atlassian Jira. De manière générale, l’intégration de ces outils améliore la traçabilité des exigences et garantit une plus grande transparence tout au long du processus de développement. Cela permet, par exemple, d’éviter les contraintes floues. De plus, cela réduit le nombre d’erreurs dues à des affectations incorrectes ou à des informations manquantes.
Chaque ticket Jira peut être associé au dépôt Bitbucket correspondant, dans lequel se trouve la base de code du logiciel. Bitbucket s’appuie pour cela sur Git, le système de contrôle de version largement répandu. Il est ainsi possible de créer, directement depuis le ticket, une nouvelle branche de développement pour travailler sur une nouvelle fonctionnalité ou une correction de bug. Une branche est une ramification de la base de code constituant un espace de travail distinct. Dans cet espace, des modifications peuvent être apportées sans altérer la base de code des travaux parallèles ni celle du logiciel en production. Atlassian intègre particulièrement bien ces outils, de sorte que notre ticket peut, par exemple, passer automatiquement du statut « Ouvert » au statut « En cours » à mesure que le travail sur le code avance.

Le « Developer Panel »du ticket Jira affiche des informations importantes sur l’état d’avancement du développement : commits de code, branches, pull requests, mais aussi builds et déploiements d’un outil CI/CD avec leur statut respectif. Les erreurs dues à des informations manquantes ou à des hypothèses erronées appartiennent ainsi au passé.
Il est également très facile de basculer d’un outil à l’autre, par exemple vers les commits dans Bitbucket puis de revenir en arrière. Il suffit de mentionner le numéro de ticket correspondant dans le commit. Pendant la programmation, le développeur dispose de toutes les exigences associées qu’il doit mettre en œuvre à l’aide du code. Cette traçabilité des exigences est une fonctionnalité importante qui résulte de l’intégration des outils.
Les possibilités d’intégration garantissent ainsi, d’une part, une plus grande transparence et, d’autre part, une meilleure collaboration au sein de l’équipe.
Image : 1 Panneau développeur Atlassian Jira
Partage des connaissances et qualité du code
Un autre avantage de Bitbucket réside dans son interface web intégrée. Toutes les informations et fonctionnalités y sont présentées de manière très claire et facilement accessible pour les utilisateurs. Il est ainsi possible de consulter le code source via le navigateur, même sans connaître les commandes en ligne de commande Git.
Bitbucket permet d’afficher et de parcourir l’historique complet des versions du code directement dans le navigateur. Cela facilite notamment l’analyse des erreurs ou permet de récupérer une ancienne version du code en vue d’une restauration. De plus, le code peut également être comparé (diff) et fusionné (merge).
L’un des avantages souvent sous-estimés d’un système centralisé et performant de gestion de code tel que Bitbucket réside dans le partage des connaissances et la qualité du code. L’historique de développement du logiciel est consultable dans Bitbucket. Grâce à celui-ci, il est possible de réutiliser des solutions de référence ou de retracer leraisonnementquiaconduità certaines décisions. Cela facilite la prise en main pour les développeurs juniors et favorise l’échangede savoir-faire entre collègues dès le début.

Bitbucket offre la possibilité de réaliser des revues de code collaboratives via ce que l'on appelle des « pull requests ». Le développeur soumet ainsi son implémentation à la discussion au sein de l'équipe et peut ensuite la fusionner (merge) ou l'intégrer directement dans Bitbucket avec d'autres développements parallèles. Les fonctionnalités permettant de mettre en évidence les différences de code et d’ajouter des commentaires ou de mener des discussions sur des lignes de code spécifiques facilitent encore davantage le travail collaboratif sur le code. Les connaissances de l’ensemble de l’équipe, et même au-delà, peuvent désormais être mises à profit et circuler dans les deux sens entre développeurs et relecteurs. Les développeurs expérimentés peuvent facilement faire appel à des experts du domaine. Les solutions gagnent ainsi en efficacité et en fiabilité (principe du « Shift Left »). La qualité du code peut ainsi être considérablement améliorée.
Image : Révision de code Atlassian Bitbucket

Gestion des versions
Au sein des équipes DevOps, cette intégration doit avoir lieu aussi souvent que possible, de préférence avec un minimum de code. Les éventuelles erreurs sont détectées très tôt dans le processus de développement ou très peu de temps après la mise en production. Le nombre d’implémentations et de dépendances est alors moindre, ce qui réduit le temps nécessaire à l’analyse des erreurs. Les corrections ou les retours en arrière peuvent être effectués plus rapidement. C’est ce qui rend possible le développement continu et la publication régulière de nouvelles fonctionnalités ou de corrections de bogues.
De plus, avec des commits de petite taille, chaque modification peut être documentée de manière plus traçable. Leur genèse est ainsi plus compréhensible et plus transparente pour les autres.
Image : historique des versions d’Atlassian Bitbucket
Configuration en tant que code
Bitbucket ne doit pas se limiter à contenir uniquement le code du logiciel. Un haut niveau d’automatisation s’accompagne toujours de nombreux scripts ou de descriptions déclaratives. Citons par exemple les scripts de déploiement du logiciel (Bash, PowerShell, Ansible, Puppet, etc.), les définitions d’infrastructure (Terraform, CloudFormation, ARM, HELM, etc.) ou encore les descriptions de conteneurs (Dockerfiles, etc.). La définition d’un « pipeline », depuis le commit jusqu’au déploiement en passant par la compilation, les tests, l’intégration, la livraison et la mise en production, doit également être décrite de manière déclarative dans la mesure du possible. Toutes ces informations ou tous ces fichiers peuvent également être stockés dans Bitbucket. Les avantages décrits jusqu’à présent – collaboration, transparence, intégration, revues et partage des connaissances – sont ainsi immédiatement exploitables.

Préparation à l'utilisation en entreprise
Pour une utilisation en entreprise, de nombreuses fonctionnalités sont essentielles, grâce auxquelles Bitbucket étend de manière ciblée le système de contrôle de version Git. Parmi celles-ci figurent notamment les paramètres d’autorisation pour les utilisateurs et les groupes, une recherche en texte intégral dans les dépôts et les fichiers individuels, ainsi que différentes méthodes d’authentification, allant de SAML à SSH en passant par les jetons utilisateur.
Image : Recherche en texte intégral dans Atlassian Bitbucket
Bitbucket peut être facilement étendu grâce aux applications disponibles sur l’Atlassian Marketplace ou intégré à d’autres composants de la chaîne d’outils à l’aide de webhooks.
Dans le prochain article de blog, j'aborderai l'outil CI/CD Atlassian Bamboo et son intégration avec Bitbucket. Je m'attarderai notamment sur les phases de build et de déploiement, ainsi que sur le pipeline CI/CD dans le contexte DevOps.
Vous avez des questions ou souhaitez bénéficier de nos conseils ?
Prenez rendez-vous pour un entretien personnalisé et sans engagement avec nos experts commerciaux Atlassian

Votre interlocuteur
Romain MonnetNous vous aidons volontiers
- Chemin du Closel 5, 1020 Lausanne (Renens), Schweiz
- Tél. : +41 21 533 00 70
- sales@communardo.ch
