DevOps Résumé
DevOps Résumé
Définition Système de contrôle de version distribué gratuit, permettant aux devs de suivre les modifications du code Azure DevOps est une plateforme complète de services de développement qui permet aux équipes de planifier, de collaborer sur Lorsque l’équipe souhaite le modèle le plus simple
Le DevOps est un ensemble de techniques et d’outils Définition via des commits. Il facilite la collaboration, le test et la création de nouvelles fonctionnalités. Epics
le code, et de déployer des applications de manière efficace et sécurisée.
facilitant le passage du développement à la production. Le contrôle de code source (Source Control) est la gestion des modifications du Issues
Concepts Clés Services
Modèle de fonctionnement de l’entreprise code, fournissant un historique de développement, aidant à résoudre les conflits Tasks
Espace de travail : Zone où les fichiers sont manipulés sur l’ordinateur. Azure Repos
Modèle d’interactions entre les équipes lors des fusions, et protégeant contre les erreurs humaines.
Dépôt local : Espace de travail associé à l'historique des modifications. Description : Plateforme pour le partage du code source.
Intégration du retour sur expérience Commit : Instantané de l’état des fichiers à un moment donné avec un message descriptif.
Fonctionnalités Fonctionnalités : Hébergement sécurisé du code, gestion des branches, intégration avec Git.
Culture d’entreprise Historique : Suite de tous les commits, montrant l’évolution du projet.
Conservation du code source : Tout le code source est sauvegardé. Azure Boards
Relation entre Dev et Ops Objectifs Dépôt distant : Référentiel sur un serveur distant pour collaboration et sauvegarde.
Suivi des changements : Note tous les changements effectués au code et à Description : Outils de planification et de suivi du travail. CMMI
Dev (Développeurs) : Modifications à moindre coût, Confiance entre équipes
la documentation, permettant de revenir à une version antérieure Zones Fonctionnalités : Tableaux Kanban configurables, backlogs interactifs, gestion des sprints, traçabilité des travaux. Destiné aux méthodes de projet formelles nécessitant un cadre d'amélioration des processus et une
le plus rapidement possible. Accélération des livraisons et déploiements
fonctionnelle. Répertoire de travail : Où les fichiers sont créés, modifiés, supprimés et organisés. Azure Pipelines documentation rigoureuse des décisions.
Ops (Opérations) : Stabilité et qualité du système. Résolution rapide des tickets
Identification des modifications : Repère quels fichiers ont été modifiés et Zone de transit : Où les modifications sont listées avant d’être validées. Description : Workflow de build, test et déploiement continu. Epic
-> Objectifs souvent conflictuels. Gestion efficace des tâches non planifiées
par qui. Référentiel : Où les modifications sont stockées de façon permanente sous différentes versions. Fonctionnalités : Automatisation des builds, intégration avec différents environnements et plateformes. Feature
Principales Pratiques : Automatisation Comparaison des versions : Permet de comparer différentes versions du Objets dans Git Azure Test Plans Exigence (Requirement) : Comme user story ou fonctionnalité.
Intégration Continue : code. Blob : Stocke le contenu d’un fichier compressé, identifié de manière unique par une clé SHA-1. Description : Outils pour l'automatisation et l'exécution des tests. Revue (Review) : Validation du travail accompli.
Intégration automatique des modifications du code. Fusion des versions : Permet de fusionner des versions développées de Tree : Représente un répertoire, contenant des entrées pointant vers des blobs et des sous-arbres. Fonctionnalités : Gestion des plans de test, exécution de tests manuels et automatisés, suivi des résultats. Risque (Risk) : Élément potentiellement négatif affectant le projet.
Reconstruction et tests fréquents du logiciel. manière concurrente. Commit : Stocke l’état d’une partie du dépôt, avec des pointeurs vers un Tree et des commits Azure Artifacts Task
Détection rapide des problèmes et amélioration de la qualité du code. Gestion des releases, versions et branches de développement : précédents, ainsi que des informations sur l’auteur et une description. Description : Gestion des packages pour le déploiement. Cas de Test
Livraison Continue : Releases : Versions stables et officielles destinées aux utilisateurs Tag : Utilisé pour marquer des commits spécifiques. Fonctionnalités : Stockage et publication de packages, intégration avec les workflows de développement.
Déploiement rapide et fiable des modifications validées. finaux. Concepts
Réduction des délais entre développement et mise en production. Versions : Différentes itérations du logiciel avec des fonctionnalités Gestion des Branches Boards (Tableaux) : Espaces de travail visuels avec des colonnes personnalisables pour organiser les tâches.
ajoutées et des bogues corrigés. Une branche est un pointeur vers un commit, chaque commit pointant vers son prédécesseur. HEAD
Réactivité accrue aux besoins des utilisateurs. Work Item (Éléments de travail) : Unité de gestion des tâches, problèmes, fonctionnalités, etc.
Branches de développement : Versions du code évoluant séparément pointe sur la branche active.
Déploiement Continu : Backlog : Liste hiérarchisée d'éléments comme les user stories, les bugs, et les tâches, triés par priorité.
Automatisation complète de la mise en production. pour travailler sur de nouvelles fonctionnalités ou corriger des bogues. Merge Sprint : Période de temps définie pendant laquelle une équipe travaille sur un ensemble spécifique de tâches et de
Mise à jour en temps réel sans interruptions. Fast-Forward Merge : fonctionnalités.
Réponse rapide aux évolutions du marché. Types de Systèmes de Contrôle de Code Source Se produit lorsqu'il n'y a pas de commits supplémentaires sur la branche de destination depuis la Queries (Requêtes) : Permettent de filtrer et interroger les données dans Azure DevOps, notamment pour le backlog.
SCCS Centralisé : dernière fois que les branches ont divergé.
Étapes de la Livraison Continue Pratiques d'Intégration Continue L’historique des changements est conservé sur un serveur central. Git déplace simplement le pointeur de la branche de destination vers le commit le plus récent de la SCRUM
Construction quotidienne d’une version Agile
1. Commit d'une modification Permet à n’importe qui d’obtenir la version la plus récente ou d’envoyer les branche source, ce qui donne l'impression que les commits de la branche source ont été ajoutés Pour suivre les éléments du backlog de produit (PBI) et les bogues.
2. Exécution des tests unitaires (Intégration continue) fonctionnelle : Disponibilité d’une version changements les plus récents. directement après les commits de la branche de destination. Lorsque l’équipe utilise des méthodes de planification Agile Epic
3. Tests de validation fonctionnelle (acceptance tests) testable du logiciel. SCCS Distribué : Aucun commit de fusion n'est créé, ce qui maintient un historique linéaire. et suit séparément les activités de développement et de test. Feature
4. Tests black-box (automatisables) Exécution quotidienne des tests : Chaque utilisateur a une copie locale de tout l’historique des changements. No-Fast-Forward Merge : Obstacle (Impediment) : Élément bloquant le progrès de l'équipe.
5. Tests de performances : Vérification de la capacité Détection rapide des erreurs. Utilisé pour créer explicitement un commit de fusion même si une avance rapide est possible. 1. Epic (Épopée) : Ensemble de fonctionnalités ou de tâches
Pas besoin d’être connecté à un réseau/serveur pour sauvegarder des Product Backlog : Liste ordonnée de toutes les fonctionnalités, exigences et bugs
du logiciel à répondre à la charge. Commit quotidien des changements : Ceci est réalisé en ajoutant l'option --no-ff à la commande git merge. de haut niveau, divisibles en user stories.
changements. potentiels.
6. Tests exploratoires : Effectués par des experts. Favorise la collaboration et la gestion des Un commit de fusion est créé, conservant une trace explicite de la fusion dans l'historique du projet. 2. Feature (Fonctionnalité) : Partie spécifique d'un épic,
N’importe quel utilisateur peut se synchroniser avec n’importe quel autre. Tâche
7. Déploiement en production versions. regroupant des fonctionnalités liées.
Rebase 3. Issue (Problème) : Élément de suivi pour signaler des
Cas de Test
Système d’observation des changements :
Avantages et Inconvénients du SCCS Distribué : Réalignement des commits pour simplifier l’historique sans créer de commit de fusion
Vérification automatique des problèmes techniques ou des demandes d'amélioration.
Avantages DevOps Avantages : supplémentaire.
modifications. 4. User Story : Unité de travail centrée sur l'utilisateur final,
Accélération de la fourniture des produits Chaque développeur dispose de son espace privé (sandbox). Utilisé pour rendre l’historique linéaire et plus clair.
décrivant une fonctionnalité à implémenter.
Résolution rapide des problèmes Possibilité de travailler et de faire des commits hors ligne. Rebase Interactif :
5. Task (Tâche) : Action spécifique nécessaire pour réaliser
Stabilité accrue des environnements d'exploitation Opérations rapides grâce à l’exécution locale. Permet de réécrire l’historique à partir d’un CommitID avec des actions comme :
une user story, souvent assignée à un membre de l'équipe.
Meilleure utilisation des ressources Création et fusion de branches efficace. reword : Éditer le message du commit.
6. Test Case (Cas de Test) : Documentation détaillant les Les Users Story et les Tasks sont utilisés pour le suivi du
Automatisation accrue Inconvénients : squash : Fusionner un commit avec le précédent.
étapes, préconditions et résultats attendus pour tester une travail.
Meilleure visibilité sur les résultats Préférence pour un dépôt central pour la sauvegarde. drop : Supprimer un commit.
fonctionnalité. Les Bugs sont utilisés pour les defects.
Innovation renforcée Pas nécessairement une version « la plus récente ».
Epics et Features sont utilisés pour suivre le travail des gros
scénario
Digest : Chaque couche est identifiée par un digest, un hash du contenu de la couche. Abstraction au-dessus des pods qui permet la
Avantages des Conteneurs Metadonnées : Une image est définie par un ensemble de métadonnées, principalement une liste communication entre différentes parties d'une application. etcd
Performance : Accès direct au matériel. ordonnée des digests des couches. Utilise un IP et un port fixes pour offrir une connectivité
Démarrage rapide : Pas besoin de démarrer un système complet. Identifiant d'image : Créé en calculant un hash de ces métadonnées. La nouvelle image est utilisée pour la prochaine étape stable, évitant les problèmes liés aux adresses IP
Images légères : Moins de stockage requis, transfert rapide. dynamiques des pods.