0% ont trouvé ce document utile (0 vote)
63 vues1 page

DevOps Résumé

Le document présente les concepts fondamentaux du DevOps, y compris les outils de contrôle de version comme Git et les services d'Azure DevOps pour la gestion de projets. Il aborde également les pratiques d'intégration et de livraison continues, ainsi que l'utilisation de Docker et Kubernetes pour le déploiement d'applications dans le cloud. Enfin, il décrit les avantages et inconvénients des systèmes de contrôle de code source distribués et les principes de virtualisation et de cloud computing.

Transféré par

Mouad Benkhira
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
63 vues1 page

DevOps Résumé

Le document présente les concepts fondamentaux du DevOps, y compris les outils de contrôle de version comme Git et les services d'Azure DevOps pour la gestion de projets. Il aborde également les pratiques d'intégration et de livraison continues, ainsi que l'utilisation de Docker et Kubernetes pour le déploiement d'applications dans le cloud. Enfin, il décrit les avantages et inconvénients des systèmes de contrôle de code source distribués et les principes de virtualisation et de cloud computing.

Transféré par

Mouad Benkhira
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

DEVOPS : Définition et Concept Contrôleur de Code Source GIT Azure DevOps BASIC

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

Cloud Docker Créer des Images Docker Docker Compose Kubernetes


Le cloud désigne des serveurs accessibles via Internet, ainsi que les logiciels et bases de données qui y Interactivement Docker Compose est un outil qui simplifie la gestion des applications multi-conteneurs. Il permet de définir et exécuter ces Problématique
Docker est une plateforme open source de conteneurs permettant de créer, déployer et gérer des
fonctionnent, hébergés dans des datacenters mondiaux. Il libère les utilisateurs et entreprises de la 1. Créer un conteneur à partir de l'image de base applications à partir d'un fichier de configuration YAML. Compose contrôle le cycle de vie de tous les conteneurs de votre Détection des problèmes : Identifier et réagir aux containers défaillants ou en erreur.
conteneurs d'applications sur un système d'exploitation.
gestion des serveurs physiques et des applications locales. docker run -it ubuntu application avec une simple commande. Mise à l'échelle dynamique : Augmenter ou diminuer le nombre de réplicas des services pour gérer les variations de charge.
Composants Commandes clés : Solution
-it : Interactif et allocation d'un terminal.
Daemon Docker : Gère les conteneurs en arrière-plan. docker-compose up : Démarre l'application, télécharge les images, les construit (si nécessaire) et lance les conteneurs. Kubernetes automatise le déploiement, la gestion des ressources et la scalabilité des applications conteneurisées. Il est conçu pour orchestrer efficacement les conteneurs Docker, offrant :
Virtualisation 2. Installer le logiciel manuellement dans le conteneur
API REST : Permet de communiquer avec le daemon. docker-compose down : Arrête les conteneurs et supprime les réseaux créés par Compose. Surveillance et gestion des conteneurs : Kubernetes surveille en permanence les conteneurs et les pods, répliquant les instances selon les besoins.
Technologie permettant de faire fonctionner plusieurs systèmes sur un même serveur physique grâce à apt-get install -y cowsay
Client CLI : Interface en ligne de commande pour interagir avec Docker. docker-compose ps : Affiche les conteneurs en cours d'exécution. Maintien de la haute disponibilité : Assure la disponibilité continue des services en redéployant automatiquement les conteneurs en cas de défaillance.
un hyperviseur, créant plusieurs environnements (machines virtuelles) distincts avec leurs propres 3. Quitter la session interactive
Exit docker-compose scale <service>=<nombre> : Ajuste le nombre de réplicas d'un service.
ressources.
Dockerfile
Architecture de Kubernetes Composants du Maître Kubernetes
Cloud Computing Un Dockerfile est un fichier texte contenant des instructions pour créer une image Docker. Il utilise En utilisant un Dockerfile Exemple du fichier docker-compose.yml Cluster Kubernetes : Etcd :
Héberge et exploite des données sur des serveurs distants via Internet, fournissant des services des commandes spécifiques pour configurer l'image, en partant d'une image de base. 1. Créer un nouveau répertoire vide Services Composé de plusieurs nœuds, chacun pouvant être une Système de stockage distribué et persistant pour l'état du cluster.
informatiques à la demande. Images Docker mkdir my-docker-app web : machine physique ou virtuelle. Stocke la configuration et les données d'état de Kubernetes.
Les images sont des plans en lecture seule pour la création de conteneurs. Elles incluent les 2. Créer le Dockerfile build: . : Utilise le Dockerfile présent dans le répertoire courant (.) pour construire l'image du Chaque nœud exécute Kubernetes Node, capable API Server :
Virtualisation vs Cloud Computing instructions nécessaires à l'exécution des conteneurs. FROM ubuntu service web. d'héberger des pods. Point d'entrée pour l'administration du cluster Kubernetes via une API REST.
Union File System : Combine plusieurs couches de systèmes de fichiers en une vue unifiée. RUN apt-get update && apt-get install -y cowsay ports: Volumes : Gère les opérations CRUD (Create, Read, Update, Delete) sur les objets Kubernetes.
Virtualisation Cloud Computing
Couches : 3. Construire l'image "5000:5000" : Mappe le port 5000 de l'hôte sur le port 5000 du conteneur web, permettant Utilisés pour le stockage des données des pods. Scheduler :
Regroupe et automatise des ressources virtuelles à la Une image est composée de plusieurs couches, chaque couche correspondant à une instruction docker build -t my-cowsay-image . d'accéder à l'application web à travers ce port. Peuvent être persistants (stockés en dehors des pods Décide sur quel nœud exécuter les pods nouvellement créés en fonction des besoins de ressources et des
Environnements simulés sur un système physique
demande -t : Tag pour nommer l'image.
du Dockerfile. volumes: pour la persistance des données) ou non persistants contraintes de configuration.
Les couches sont partagées entre les conteneurs, optimisant l'espace de stockage et la vitesse . : Contexte de construction de l'image (le répertoire courant). ./code : Montre le répertoire ./code du système hôte dans le conteneur web. (stockés à l'intérieur des pods pour un usage temporaire).
Ressources dédiées pour des tâches spécifiques Ressources variables pour diverses tâches Composants du Worker Node
de démarrage. logvolume01:/var/log : Montre un volume nommé logvolume01 dans le chemin /var/log Déploiements :
Long terme (années) Court terme (heures ou mois) Docker Hub Éléments de syntaxe du conteneur web. Ce volume est persistant et peut être partagé entre différents Gère la création, la mise à jour et la suppression des pods. Kubelet :
Docker Hub est un dépôt public où les images Docker sont mises à disposition par Docker. FROM: Définit l'image de base pour la nouvelle image. conteneurs. Utilise des ReplicaSets pour maintenir le nombre désiré de Agent s'exécutant sur chaque nœud, responsable de l'état des pods et de leur gestion.
Conteneurs Docker Engine LABEL: Ajoute des métadonnées à l'image, comme l'auteur. depends_on: réplicas de pods en fonction de la configuration définie. Communique avec le maître pour rapporter l'état des nœuds et des pods.
Environnements légers et portables qui encapsulent une application et ses dépendances, permettant de Environnement d'exécution : Gère les conteneurs sur une machine. RUN: Exécute une commande dans la couche au-dessus de l'image courante lors - redis : Indique que le service web dépend du service redis. Cela signifie que Docker Namespaces : Kube-proxy :
les exécuter de manière isolée sur un même système d'exploitation. Client-Serveur : de la construction. Compose s'assurera que redis est démarré avant de démarrer web. Permet de segmenter virtuellement un cluster Kubernetes. Gère le routage du trafic réseau vers les services appropriés en fonction des règles de configuration.
Serveur : Daemon qui gère les conteneurs. CMD: Définit la commande à exécuter au démarrage du conteneur. redis : Utile pour cloisonner des services qui ne doivent pas Assure la connectivité réseau entre les pods et les services externes.
Client : Interface en ligne de commande. EXPOSE: Indique que le conteneur écoutera sur un port réseau spécifique. image: redis : Utilise l'image officielle Redis disponible sur Docker Hub pour le service redis. interagir ou pour gérer les droits d'accès des utilisateurs à cAdvisor :
Machines Virtuelles vs Conteneurs Registres d'images : Bibliothèque d'images Docker disponibles, comme Docker Hub. COPY: Copie un fichier ou répertoire depuis le contexte de construction de des services spécifiques. Agent de surveillance des ressources locales (CPU, mémoire, etc.) utilisées par les conteneurs.
Volumes
Caractéristique Machines Virtuelles Conteneurs l'image vers la nouvelle couche. volumes: Pods : Collecte et rapporte les statistiques de performance au planificateur pour une gestion efficace des ressources.
Avantages des Couches
Système d'exploitation Contiennent un OS complet Partagent le même OS hôte logvolume01: : Définit un volume nommé logvolume01. Ce volume est utilisé par le service Plus petite unité déployable dans Kubernetes.
Optimisation de l'espace de stockage : Les couches identiques sont partagées entre les conteneurs.
web pour stocker les logs dans le chemin /var/log. Peut contenir un ou plusieurs conteneurs Docker ou
Utilisent plus de ressources et d’espace Sont plus légers et démarrent Démarrage rapide : Un conteneur démarre rapidement en créant simplement une nouvelle couche Le build context est envoyé vers le démon docker
Utilisation des ressources d'autres types de conteneurs.
disque rapidement en écriture. Les modifications sont committées dans une nouvelle image (---> ...) CONTROLLER
Kubernetes interagit principalement avec des pods plutôt
Faible utilisation de l'espace disque : Les conteneurs partagent les couches en lecture seule. MANAGER
Nécessitent des mises à jour individuelles Nécessitent une seule mise à jour pour Un conteneur est créé pour exécuter l'étape (Running in ...) qu'avec des conteneurs individuels. API Server
Mises à jour Le conteneur est supprimé
pour chaque OS invité l'OS hôte Identification des Couches/Images Services : SCHEDULER

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.

Kubelet cAdvisor kube-proxy Kubelet cAdvisor kube-proxy

Pod Pod Pod Pod Pod Pod

Plugin Network (eg Flannel, Weavenet, ect)

Vous aimerez peut-être aussi