0% ont trouvé ce document utile (0 vote)
98 vues7 pages

Resume Devops

Le document présente une introduction au contrôle de version avec Git, les principes de DevOps, et les pratiques d'intégration et de déploiement continu. Il aborde également l'utilisation de Jenkins pour l'intégration continue, les commandes Docker pour la gestion des conteneurs, et l'analyse de code avec SonarQube. Enfin, il traite de la gestion des artefacts avec Nexus Repository Manager et l'importance des tests dans le pipeline CI/CD.

Transféré par

amani bougossa
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)
98 vues7 pages

Resume Devops

Le document présente une introduction au contrôle de version avec Git, les principes de DevOps, et les pratiques d'intégration et de déploiement continu. Il aborde également l'utilisation de Jenkins pour l'intégration continue, les commandes Docker pour la gestion des conteneurs, et l'analyse de code avec SonarQube. Enfin, il traite de la gestion des artefacts avec Nexus Repository Manager et l'importance des tests dans le pipeline CI/CD.

Transféré par

amani bougossa
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

A.

Git – Contrôle de version


1.​ Principes et outils​

○​ Systèmes distribués (Git) versus centralisés (CVS, SVN).​

○​ Chaque clone embarque tout l’historique.​

2.​ Initialisation et configuration​

○​ git init → crée le dépôt local (dossier .git).​

○​ git config user.name|email → identité des commits.​

○​ Toujours prévoir un README.md et un .gitignore.​

3.​ Cycle de vie d’un changement​

○​ git add <fichiers> → staging.​

○​ git commit -m "message" → snapshot local.​

○​ git status → état des modifications.​

4.​ Historique et comparaison​

○​ git log → liste chronologique des commits.​

○​ git diff [<base>..<comparé>] → différences entre états.​

○​ git show <commit> → détails d’un commit.​

5.​ Branches et fusions​

○​ git branch → lister ; git branch <nom> → créer.​

○​ git checkout <nom> / git switch <nom> → basculer.​

○​ git merge <branche> → fusionner, ou git rebase.​

○​ Workflow conseillé : une branche par fonctionnalité (“feature-branch”).​


6.​ Dépôts distants​

○​ git remote add origin <url> → lier un dépôt distant (GitHub,


GitLab…).​

○​ git push -u origin <branche> → publier.​

○​ git pull / git fetch && git merge → récupérer et intégrer.​

7.​ Intégration dans l’IDE​

○​ VS Code, IntelliJ, Eclipse… intègrent nativement un client Git.​

○​ Opérations de commit/push/pull, annotation et résolution de conflits en GUI.​

B. DevOps 1 – Introduction au DevOps


●​ Objectifs : rapprocher développement et exploitation, accélérer les livraisons,
améliorer la qualité et la réactivité.​

●​ Méthodologies : du cycle en V (RUP) à l’agilité (Scrum, XP), déploiement itératif.​

●​ Architecture : monolithe vs micro-services, conteneurisation, orchestration.​

●​ Outils clés du module :​

○​ VirtualBox / Vagrant​

○​ Git, Jenkins, Docker (Engine & Compose)​

○​ SonarQube, Nexus​

○​ Prometheus / Grafana​

CI / CD

1.​ Intégration Continue (Continuous Integration)​


Fusion fréquente des modifications dans la branche principale, déclenchement
automatique des builds, tests unitaires et analyses de qualité.​

2.​ Livraison Continue (Continuous Delivery)​


L’ensemble du chemin de validation (build + tests + packaging) est automatisé ; le
déploiement en production reste manuel et sous contrôle.​

3.​ Déploiement Continu (Continuous Deployment)​


Chaque modification validée automatiquement est directement déployée en
production, sans intervention humaine.​

Les environnements

1.​ Environnement de développement​


Poste local des développeurs pour écrire et tester le code.​

2.​ Environnement d’intégration​


Validation de la cohérence entre composants et branches avant les tests métier.​

3.​ Environnement de recette utilisateur​


Tests fonctionnels et acceptation par les utilisateurs finaux.​

4.​ Environnement de qualification​


Checks techniques et fonctionnels automatisés selon un référentiel de qualité.​

5.​ Environnement de pré-production​


Miroir de la production pour essais à l’échelle quasi réelle.​

6.​ Environnement de production​


Infrastructure en service, accessible aux utilisateurs finaux.​

C. DevOps 2 – Intégration Continue avec


Jenkins
1.​ Concept de la CI​
Automatisation du build et des tests à chaque commit pour détecter tôt les
régressions.​

2.​ Jenkins​

○​ Serveur Java open-source, interface web.​

○​ Plugins pour Git, Maven, SonarQube, Docker, Pipeline…​

3.​ Jobs et Pipelines​


○​ Freestyle vs Pipeline (déclaré en Jenkinsfile).​

○​ Multibranche, déclencheurs, étapes de build/test, post-actions (notifications).​

4.​ Cycle d’un build​


Récupération du code → Compilation → Tests unitaires (JUnit) → Analyse qualité
(SonarQube) → Packaging → Publication (Nexus).​

5.​ Retour d’état​


Dashboard coloré, historique des exécutions, alertes en cas d’échec.​

D. Docker – Commandes et Dockerfile


Gestion d’images et de conteneurs​

docker pull <image> # télécharger une image
docker images # lister les images
docker run -d -p hôte:conteneur --name mon_ctr image:tag
docker ps # conteneurs en cours
docker stop|rm <ctr> # arrêter / supprimer
docker exec -it <ctr> /bin/bash # shell dans le conteneur

Volumes et réseaux​

○​ -v /chemin/host:/chemin/ctr → partage de données​

○​ --network nom_reseau → rattacher à un réseau docker​

Construction d’images​


docker build -t nom_image:tag .

Fichier Dockerfile​


FROM <image_base>
RUN <commande> # shell ou exec form
COPY <src> <dst>
ADD <src> <dst>
ENV KEY=val
EXPOSE <port>
VOLUME <chemin>
WORKDIR <répertoire>
USER <utilisateur>
ENTRYPOINT ["…"]
CMD ["…"]

2.​
3.​ Bonnes pratiques​

○​ Minimiser les couches​

○​ Utiliser .dockerignore​

○​ Taguer et documenter clairement les images​

E. DevOps 5 – SonarQube
1.​ Objectif​
Analyse statique du code pour repérer bugs, vulnérabilités et “code smells”.​

2.​ Fonctionnalités​
Multi-langages, règles personnalisables, métriques (duplications, couverture,
complexité), historique.​

Mise en place​


docker pull sonarqube
docker run -d --name sonarqube -p 9000:9000 sonarqube

3.​ → accès http://<serveur>:9000 (admin/admin → changer le mot de passe).​

4.​ Intégration CI​


Ajout d’un stage Maven sonar:sonar ou étape de pipeline pour lancer l’analyse
automatiquement.​

5.​ Exploration des rapports​


Dashboard web : bugs, vulnérabilités, hotspots, couverture de tests, tendances.​

F. DevOps 6 – Testing within DevOps


1.​ Rôle du testing​
Qualité garantie tout au long du pipeline CI/CD.​

2.​ Types de tests​

○​ Unitaires (JUnit, NUnit…)​

○​ Intégration (assemblage de modules)​

○​ Régression (vérification après modification)​

○​ Performance / Montée en charge​

○​ Sécurité (scans, fuzzing)​

3.​ Automatisation​

○​ Exécution systématique en CI​

○​ Rapports clairs intégrés au pipeline​

○​ Balance vitesse de build vs couverture​

G. DevOps 7 – Nexus Repository


Manager
1.​ Finalité​
Gestion centralisée des artefacts (bibliothèques, packages, images Docker…).​

2.​ Fonctionnalités​
○​ Dépôts hébergés (hosted), proxy (caching), regroupés (group).​

○​ Séparation des versions “snapshots” vs “releases”.​

○​ Contrôle d’accès et journaux.​

Installation​

docker pull sonatype/nexus3
docker run -d --name nexus -p 8081:8081 sonatype/nexus3

3.​ → accès http://<serveur>:8081 (admin/admin → sécuriser).​

4.​ Connexion Maven​


Paramétrage de settings.xml et pom.xml pour déployer automatiquement les
artefacts via la phase mvn deploy.​

5.​ Intégration CI/CD​


Un stage Jenkins mvn deploy publie les builds vers Nexus dès qu’ils sont validés.

Vous aimerez peut-être aussi