Certifications DevOps officielles

Formation DevOps écrite

Comment concevoir votre pipeline de livraison et de déploiement continus en DevOps ?


Dans de nombreuses organisations, probablement la vôtre aussi, les développeurs écrivent leur code isolément dans des branches distinctes. Cette façon de travailler semble favoriser leur productivité individuelle, mais elle nuit à celle de l’équipe.

Des branches distinctes compliquent la fusion du code de plusieurs développeurs. Pour intégrer les différents fragments de code, les faire fonctionner ensemble et livrer des fonctionnalités utiles à vos clients, il faut généralement mobiliser plusieurs développeurs, reprendre une grande partie du travail et résoudre des conflits qui auraient dû l’être depuis longtemps.

Sans intégration continue, la difficulté s’aggrave

Paradoxalement, parce que la fusion du code est difficile et fatigante pendant le développement, la plupart des équipes attendent de remettre leur application aux personnes chargées des tests d’intégration ou d’acceptation utilisateur pour fusionner leur code, ce qui aggrave le problème. Elles rendent les équipes d’assurance qualité seules responsables de la réussite de l’intégration et de la qualité du travail commun. Cela explique les retards, l’explosion des dépassements budgétaires, la baisse du moral et de la motivation, les objectifs et promesses non tenus, et les quelque 600 milliards USD que les entreprises du monde entier gaspillent chaque année en travaux informatiques non budgétés et non planifiés, c’est-à-dire en reprises et solutions de contournement.

Comment le développement fondé sur le tronc, la branche principale du code, peut-il vous aider ?

Pour résoudre ce problème, combinez le développement fondé sur le tronc (la branche principale du code) avec l’intégration continue et l’automatisation des tests. Il s’agit d’un modèle de gestion des branches dans lequel les développeurs collaborent sur le code dans une seule branche, appelée « tronc ». Ils résistent à toute pression visant à créer d’autres branches de développement de longue durée.

Le développement fondé sur le tronc facilite l’intégration continue et, par extension, la livraison continue. Quand les développeurs intègrent leurs changements au tronc plusieurs fois par jour, chacun satisfait facilement à l’exigence centrale de l’intégration continue, qui consiste à intégrer son code au tronc au moins une fois toutes les 24 heures. Le code source reste ainsi livrable à la demande, ce qui rend possible la livraison continue.


Branches partagées issues du tronc
Le tronc
Les changements de courte durée sont réintégrés au tronc. Les branches partagées figurent au-dessus.
Voir le schéma original ↗
Illustration de la gestion du code source dans le développement DevOps fondé sur le tronc
(Source : Trunk Based Development)

L’intégration continue permet de livrer de plus petits lots de code prêts à être déployés

Les intégrations fréquentes de vos développeurs permettent de réduire la taille des lots de développement et de livraison, ce qui améliore la qualité et facilite la résolution des problèmes et des conflits. L’intégration continue avec des intégrations quotidiennes encourage votre équipe à produire du code déployable et utile en plus petits lots, tout en préservant l’intégrité des dispositifs d’intégration et de livraison continues. Le dépôt commun facilite également la concertation, la prise de décision et les retours rapides.

Chaque fois que du code est intégré, votre système d’intégration continue exécute les tests automatisés pour les fonctions et fonctionnalités qui dépendent du module modifié ou sont touchées par celui-ci. En cas de problème, la personne qui a intégré le code est chargée de le corriger en priorité absolue. Cela permet aux autres membres de l’équipe de continuer à intégrer leur travail au tronc. Pour préserver la stabilité et la fiabilité du tronc, aucune autre modification de ce module n’est autorisée tant que la modification erronée n’a pas été rapidement corrigée ou annulée.

Si vous n’êtes pas d’accord avec ce principe DevOps, posez-vous cette question : pourquoi ajouter du nouveau code à un module qui contient déjà des erreurs ?

Vous pouvez avoir de bonnes raisons, mais veillez à éviter la dette technique et l’empilement de solutions de contournement.

Les validations de code soumises à des contrôles offrent une protection supplémentaire au développement fondé sur le tronc

Votre équipe DevOps peut également s’appuyer sur des validations de code soumises à des contrôles pour améliorer la qualité et ajouter une protection supplémentaire au tronc.

Chaque fois qu’un développeur tente d’intégrer du code, les tests automatisés s’exécutent d’abord pour le valider. Le code n’est officiellement intégré au tronc qu’en cas de réussite de la validation.

Utilisez des environnements proches de la production à toutes les étapes du flux de valeur logiciel

Un autre problème courant tient aux différences entre la production et les environnements de préproduction, dont le développement, l’intégration et les tests. Ces différences concernent les configurations, versions et niveaux de correctifs des systèmes d’exploitation, bases de données, outils tiers et API. Il peut aussi s’agir de versions différentes de votre propre code, dispersées entre divers environnements. Même de très faibles écarts entre les versions de la JVM en préproduction et en production peuvent déterminer la réussite de tout votre déploiement. Sans une maîtrise complète de vos environnements et de leur contenu, vous ne savez pas ce que vous en obtiendrez.

Intégrez la gestion des environnements à vos activités quotidiennes de développement et de livraison

Vos systèmes de préproduction devraient donc reproduire vos systèmes de production. Donnez à l’équipe les moyens de créer automatiquement des environnements en libre-service et à la demande pour effectuer son travail quotidien en toute sécurité dans des conditions proches de la production.

Le code de vos logiciels et les environnements où il s’exécute contribuent tous deux à votre flux de valeur informatique. Vos spécialistes du développement et de l’exploitation doivent reconnaître que ce flux repose sur deux composantes d’égale importance :

  1. Le code qui permet de produire les logiciels apportant de la valeur à vos clients internes ou externes, ou aux deux.
  2. Le code qui permet de construire les environnements de préproduction et de production qui hébergent vos logiciels.

Utilisez votre source unique de vérité (le tronc) pour gérer vos logiciels et vos environnements
(c’est-à-dire adoptez l’infrastructure en tant que code, ou IaC)

Avec le DevOps, les tâches de construction des environnements de préproduction et de production font partie du tronc. C’est la définition la plus pure de l’infrastructure en tant que code (IaC). Vos spécialistes du développement et de l’exploitation construisent ensemble cette infrastructure. Dans une organisation cloisonnée, les équipes d’exploitation connaissent souvent mal les particularités des logiciels à héberger.

Pour accorder la même importance au code des logiciels et à celui des environnements, stockez-les tous deux dans votre source unique de vérité, le tronc.

Pour construire vos systèmes de préproduction et de production et votre pipeline de déploiement, y compris les dispositifs d’intégration et de livraison continues, stockez dans votre système de gestion des versions le code logiciel, les configurations, les scripts et tout ce qui est nécessaire à votre chaîne de livraison de bout en bout. Pour modifier durablement un paramètre d’environnement, changez-le dans les scripts qui construisent l’environnement. Le prochain membre de l’équipe DevOps qui en créera un n’aura ainsi pas à tout refaire.

La plupart des documentations détaillées deviennent vite obsolètes. Vous avez donc intérêt à tenir à jour vos scripts de construction des environnements. Sans environnements en libre-service et à la demande, votre infrastructure cloud restera une plateforme d’hébergement sous-utilisée et votre initiative DevOps une démarche d’amélioration sous-exploitée de plus. Vous devriez pouvoir construire tous vos environnements de production et de préproduction à partir de votre système de gestion des versions. Avec le DevOps, il est plus simple et rapide de reconstruire un environnement que de le réparer. Les modifications manuelles ne sont plus permises. Seuls le code et la configuration doivent reconstruire, configurer et démarrer les environnements.

Vous avez une nouvelle définition de fini (DoD)

Une fois votre dispositif de livraison continue et votre pipeline opérationnels, vous avez besoin d’une nouvelle « définition de fini » (DoD).

Une tâche est désormais considérée comme « terminée » lorsque les fonctionnalités et avantages associés pour le client sont :

  • créés à partir du tronc automatiquement ou en un clic,
  • testés dans des environnements proches de la production avec des tests automatisés,
  • présentés en démonstration dans des environnements proches de la production,
  • prêts à être déployés ou, mieux encore, déjà déployés dans les environnements de production en service, automatiquement ou en un clic.

CONCLUSION

Avec le DevOps, l’intégration du code fait partie du travail quotidien, au lieu d’attendre la fin des projets. Les développeurs, les équipes d’exploitation et les spécialistes de la sécurité de l’information répètent de nombreuses fois le déploiement de leur travail dès le cycle de développement logiciel, ce qui augmente les chances d’un déploiement en production sans difficulté.

En adoptant l’intégration continue, vous bénéficierez aussi d’un débit métier plus élevé, de logiciels et d’environnements plus stables, d’une meilleure satisfaction au travail et d’un meilleur service à vos clients internes et externes.


Outils DevOps à tous les niveaux de la chaîne de livraison
Définition et développement des applications
Langages et cadres de développement, données, code source, définition des applications, registres, CI/CD et API tierces
Orchestration et gestion
Planification, coordination, découverte et gestion des services
Environnement d’exécution
Stockage natif du cloud, environnements d’exécution des conteneurs et réseaux natifs du cloud
Mise à disposition
Automatisation de l’infrastructure, gestion des hôtes et images sécurisées
Infrastructure
Fournisseurs cloud, machines virtuelles et infrastructure sous-jacente
Plateformes et observabilité
Plateformes de livraison, supervision, journalisation et traçage à tous les niveaux de la chaîne
Voir le panorama original et les noms des outils ↗
Panorama des outils DevOps pour créer votre pipeline de livraison et de déploiement continus
(Source : StackOverDrive)

VOTRE FORMATION DEVOPS

Table des matières

S’inscrire à la certification

Nous vous garantissons que votre formation en ligne gratuite vous permettra de réussir votre examen de certification DevOps !

  1. 01

    Inscrivez-vous en ligne

    Choisissez votre certification accréditée et terminez votre inscription.

  2. 02

    Recevez votre code d’accès

    Vous recevrez immédiatement par e-mail votre code personnel d’accès à l’examen.

  3. 03

    Préparez et passez l’examen

    Suivez votre formation gratuite et répondez aux 50 questions à choix multiples en ligne.

  4. 04

    Obtenez votre certification à vie

    Recevez un certificat valable dans le monde entier et un badge numérique vérifiable.

Exemple de certificat Certified DevOps Generalist™
S’inscrire à la certification

VOTRE FORMATION PREMIUM GRATUITE EN LIGNE

Obtenir DevOps Revealed, troisième édition

Nous avons créé votre formation avec un consortium de dirigeants d’entreprise et de responsables d’équipe reconnus, de coachs DevOps, de mentors, d’experts et d’autorités de référence issus des principaux secteurs. Toutes les personnes qui visitent l’International DevOps Certification Academy™ peuvent y accéder. Retrouvez les supports dans Votre livre DevOps gratuit et Votre formation DevOps gratuite de qualité du menu principal.

Ces supports sont la propriété intellectuelle de l’International DevOps Certification Academy™ et sont protégés par le droit d’auteur. Nous les partageons gratuitement avec tous, car diffuser notre expertise aide les professionnels du DevOps et contribue au développement du domaine.

Votre examen de certification comporte des questions à choix multiple. Consultez votre formation en ligne pour acquérir les connaissances nécessaires pour réussir votre examen et obtenir votre certification DevOps.

Nous vous garantissons que votre formation en ligne gratuite de qualité vous permettra de réussir votre examen de certification DevOps !