0% ont trouvé ce document utile (0 vote)
46 vues11 pages

Guide de Révision - Examen DevOps

Le guide de révision pour l'examen DevOps couvre les fondamentaux de DevOps, les méthodes agiles comme Scrum, et la gestion du code avec Git. Il aborde également les tests unitaires, la couverture de code, et l'intégration CI/CD avec Azure DevOps, tout en fournissant des bonnes pratiques et des questions types pour l'examen. Les différences entre Azure DevOps et GitHub ainsi que les spécificités d'Azure DevOps sont également discutées.

Transféré par

sami el
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)
46 vues11 pages

Guide de Révision - Examen DevOps

Le guide de révision pour l'examen DevOps couvre les fondamentaux de DevOps, les méthodes agiles comme Scrum, et la gestion du code avec Git. Il aborde également les tests unitaires, la couverture de code, et l'intégration CI/CD avec Azure DevOps, tout en fournissant des bonnes pratiques et des questions types pour l'examen. Les différences entre Azure DevOps et GitHub ainsi que les spécificités d'Azure DevOps sont également discutées.

Transféré par

sami el
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

Guide de Révision - Examen DevOps

1. DevOps - Agilité - Scrum

DevOps Fondamentaux
Définition : DevOps = Development + Operations. Philosophie qui favorise la collaboration entre les
équipes de développement et d'exploitation.

Principes clés :

Culture : Collaboration, communication, responsabilité partagée

Automatisation : CI/CD, tests automatisés, déploiement automatique


Mesure : Monitoring, métriques, feedback continu

Partage : Connaissances, outils, responsabilités

Avantages :

Déploiements plus fréquents et fiables

Réduction du time-to-market
Amélioration de la qualité
Meilleure collaboration équipes

Méthodes Agiles
Manifeste Agile - 4 valeurs :

1. Individus et interactions > processus et outils

2. Logiciel fonctionnel > documentation exhaustive


3. Collaboration client > négociation contractuelle

4. Adaptation au changement > suivi d'un plan

12 Principes Agiles (les plus importants) :

Satisfaire le client par des livraisons rapides

Accueillir positivement les changements


Livrer fréquemment un logiciel opérationnel

Collaboration quotidienne développeurs/métier

Scrum Framework
Rôles :

Product Owner : Définit les besoins, gère le Product Backlog

Scrum Master : Facilite le processus, supprime les obstacles


Development Team : Développe le produit (3-9 personnes)

Événements :

Sprint : Itération de 1-4 semaines


Sprint Planning : Planification du sprint (8h max pour 4 semaines)

Daily Scrum : Point quotidien (15 min max)


Sprint Review : Démonstration du produit (4h max)

Sprint Retrospective : Amélioration continue (3h max)

Artefacts :

Product Backlog : Liste des fonctionnalités priorisées

Sprint Backlog : Éléments sélectionnés pour le sprint

Increment : Version potentiellement livrable du produit

2. Gestion du Code - Git

Commandes Git Essentielles


bash

# Configuration
git config --global [Link] "Nom"
git config --global [Link] "email@[Link]"

# Initialisation et clonage
git init
git clone <url>

# Gestion des changements


git add <fichier> # Ajouter au staging
git add . # Ajouter tous les fichiers
git commit -m "message" # Valider les changements
git status # Voir l'état des fichiers
git diff # Voir les différences

# Historique
git log # Historique des commits
git log --oneline # Historique condensé
git show <commit-id> # Détails d'un commit

# Branches
git branch # Lister les branches
git branch <nom> # Créer une branche
git checkout <branche> # Changer de branche
git checkout -b <nom> # Créer et basculer
git merge <branche> # Fusionner une branche
git branch -d <nom> # Supprimer une branche

# Remote
git remote add origin <url>
git push origin <branche>
git pull origin <branche>
git fetch # Récupérer sans fusionner

Workflows Git
GitFlow :

main/master : Code de production

develop : Branche de développement principale

feature/ : Nouvelles fonctionnalités


release/ : Préparation des versions

hotfix/ : Corrections urgentes

GitHub Flow (plus simple) :

main : Code de production

feature branches : Pour chaque fonctionnalité

Pull Request pour intégrer

GitHub/Azure DevOps
Pull Request (PR) / Merge Request (MR) :

Processus de révision de code

Permet la discussion et l'amélioration

Tests automatiques avant fusion

Protection de la branche principale

Azure DevOps - Services Clés


Azure Repos :

Hébergement Git (similaire à GitHub)

Support Git et TFVC (Team Foundation Version Control)

Pull Requests avec révision de code

Politiques de branche (branch policies)

Azure Pipelines :

CI/CD intégré

Support multi-plateforme (Windows, Linux, macOS)

Agents hébergés ou auto-hébergés

Pipeline YAML ou interface graphique

Azure Boards :

Gestion des work items (User Stories, Tasks, Bugs)


Tableau Kanban et Scrum

Suivi des sprints et burndown charts


Intégration avec repos et pipelines
Azure Test Plans :

Tests manuels et automatisés

Gestion des cas de test

Rapports de test

Azure Artifacts :

Gestionnaire de packages privés

Support NuGet, npm, Maven, Python, etc.

Bonnes pratiques :

Messages de commit clairs et descriptifs

Commits atomiques (une modification = un commit)

Révision de code systématique

Branches courtes et focalisées

3. Qualité du Code - Tests - Couverture

Tests Unitaires
Définition : Tests qui vérifient le comportement d'une unité de code isolée (fonction, méthode, classe).

Caractéristiques :

Rapides : Exécution en millisecondes

Isolés : Indépendants les uns des autres

Répétables : Résultats identiques à chaque exécution


Auto-validants : Pass/Fail clair

Pattern AAA :

Arrange : Préparer les données et le contexte

Act : Exécuter l'action à tester

Assert : Vérifier le résultat

Exemple de Test Unitaire (JavaScript/Jest)


javascript

// Fonction à tester
function add(a, b) {
return a + b;
}

// Test unitaire
describe('add function', () => {
test('should add two positive numbers', () => {
// Arrange
const a = 2;
const b = 3;

// Act
const result = add(a, b);

// Assert
expect(result).toBe(5);
});
});

Couverture de Code
Métriques principales :

Line Coverage : % de lignes exécutées

Branch Coverage : % de branches conditionnelles testées


Function Coverage : % de fonctions appelées

Statement Coverage : % d'instructions exécutées

Objectifs recommandés :

Minimum : 70-80%
Bon : 80-90%

Excellent : 90%+

Important : La couverture élevée ne garantit pas la qualité, mais la faible couverture indique des risques.

Pyramide des Tests


/\
/ \ E2E Tests (Peu, lents, coûteux)
/____\
/ \ Integration Tests (Quelques-uns)
/________\
| | Unit Tests (Nombreux, rapides, bon marché)

Intégration CI/CD avec Azure DevOps


Pipeline YAML typique :
yaml

trigger:
- main

pool:
vmImage: 'ubuntu-latest'

stages:
- stage: Build
jobs:
- job: BuildJob
steps:
- task: NodeTool@0
inputs:
versionSpec: '16.x'
- script: npm install
- script: npm run build
- script: npm test
- task: PublishTestResults@2
inputs:
testResultsFormat: 'JUnit'
testResultsFiles: '**/[Link]'
- task: PublishCodeCoverageResults@1
inputs:
codeCoverageTool: 'Cobertura'
summaryFileLocation: '**/[Link]'

- stage: Deploy
dependsOn: Build
condition: succeeded()
jobs:
- deployment: DeployWeb
environment: 'production'
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
inputs:
azureSubscription: 'service-connection'
appName: 'my-web-app'
Pipeline traditionnel :

1. Commit → Déclenchement automatique

2. Build → Compilation du code

3. Test → Exécution des tests unitaires

4. Quality Gate → Vérification couverture/qualité

5. Deploy → Déploiement si tests OK

Outils de Qualité
SonarQube : Analyse statique du code

ESLint/JSHint : Linters JavaScript

[Link] : Couverture Python

JaCoCo : Couverture Java

Istanbul/NYC : Couverture JavaScript

Points Clés pour l'Examen

DevOps
Connaître les principes CALMS (Culture, Automation, Lean, Measurement, Sharing)

Comprendre la différence DevOps vs Agile


Savoir expliquer les bénéfices du DevOps

Git
Maîtriser les commandes de base

Comprendre les stratégies de branching

Connaître le processus de Pull Request

Tests
Expliquer l'importance des tests unitaires

Interpréter les métriques de couverture

Comprendre l'intégration dans CI/CD

Questions Types d'Examen


1. Quels sont les piliers du DevOps ?

2. Différence entre git merge et git rebase ?


3. Qu'est-ce qu'un Sprint en Scrum ?
4. Comment calculer la couverture de code ?

5. Avantages des tests unitaires ?


6. Rôles dans une équipe Scrum ?

7. Workflow GitFlow vs GitHub Flow ?


8. Différence entre Azure Repos et GitHub ?
9. Qu'est-ce qu'un pipeline YAML ?

10. Comment configurer une politique de branche dans Azure DevOps ?

Spécificités Azure DevOps pour l'Examen

Commandes Azure CLI DevOps

bash

# Extension Azure DevOps CLI


az extension add --name azure-devops

# Configuration
az devops configure --defaults organization=[Link] project=myproject

# Repos
az repos list
az repos create --name "nouveau-repo"

# Pipelines
az pipelines list
az pipelines run --name "pipeline-name"

# Work Items
az boards work-item create --title "New Task" --type Task
az boards work-item list --wiql "SELECT [[Link]], [[Link]] FROM WorkItems WHERE [Syste

 

Différences clés Azure DevOps vs GitHub


Aspect Azure DevOps GitHub

Repos Azure Repos (Git + TFVC) Git uniquement

CI/CD Azure Pipelines intégré GitHub Actions

Project Management Azure Boards (complet) Issues + Projects (basique)

Packages Azure Artifacts GitHub Packages

Pricing Gratuit jusqu'à 5 utilisateurs Gratuit pour public, payant pour privé

Enterprise Forte intégration Microsoft Racheté par Microsoft


 

Vous aimerez peut-être aussi