Introduction DevOps
© 2023-2024 – ESPRIT – Module DevOps – Introduction
1
Plan du Cours
– Horaires, Evaluation
– Contenu du Module DevOps
– Evolution des Méthodologies de Développement
– Apport de DevOps
– Définitions : DevOps, Intégration Continue, Déploiement /
Livraison Continue
– Environnement : Spring Boot, Angular, Virtual Box, Vagrant,
Ubuntu, Maven, JUnit, Git, Sonar, Nexus, Jenkins, Docker, Docker
Compose, Docker Volume, Prometheus, Grafana
– Solution Finale
© 2023-2024 – ESPRIT – Module DevOps – Introduction
2
Horaires
09h00
• Durée Totale : 30 heures
• Séances : 10 séances
11h00
• Cours : 9 heures
• TP : 15 heures 12h15
• Evaluation : 6 heures
13h30 *
• Durée de chaque Séance : 3 heures 15h30
• 2 heures synchrone + 1 heure asynchrone
16h45
• * Vendredi : 13h45
© 2023-2024 – ESPRIT – Module DevOps – Introduction
3
Evaluation
• La moyenne du module est calculée comme suit :
Moyenne = Note de la Validation du Projet Final.
• La validation se fait lors des deux dernières séances.
• L’enseignant tiendra compte aussi de l’avancement du projet tout
au long du cours.
• Travail en équipe (5 à 6 personnes par équipe)
© 2023-2024 – ESPRIT – Module DevOps – Introduction
4
Contenu du Module DevOps
• Introduction DevOps (installation Virtual Box / Vagrant / Ubuntu)
• Jenkins (Orchestrateur)
• Docker
• Git (Projet Spring Boot et Projet Angular)
• Nexus (Gestion des livrables)
• JUnit (Test unitaire)
• Sonar (Qualité de code)
• Docker compose + Docker volume
• Grafana + Prometheus
• Validation projet final
© 2023-2024 – ESPRIT – Module DevOps – Introduction
5
Evolution des Méthodologies
• Méthodologie Classique / Lourde (Méthode RUP, 2TUP, …) =>
Méthodologie Agile (Méthode Scrum, XP, …)
• Une méthode agile est un ensemble de pratiques de pilotage
et de réalisation de projets, qui met en avant la communication
entre les membres de l’équipe de Développement, la
communication avec le client, l’adaptation au changement, et
s'affranchit (se libère) des outils et des process lourds.
• Il s’agit de travailler en mode itératif (Sprint). Chaque Sprint peut
être considéré comme un projet dont le Cycle de vie est en V.
© 2023-2024 – ESPRIT – Module DevOps – Introduction
6
Apport du DevOps
• Utiliser une méthode Agile, et une architecture en Microservice
résout énormément de problèmes. Mais …
• Comment faire travailler étroitement les équipes de production
avec les équipes de développement?
• Comment automatiser au maximum les différentes phases du
Projet?
• Comment pouvoir livrer régulièrement et fréquemment
(comment éviter les retards et les risques liés au déploiement)?
• Comment diminuer la peur du changement (comment
augmenter la confiance de l’équipe de Production en l’équipe
de Développement)?
© 2023-2024 – ESPRIT – Module DevOps – Introduction
7
Définition DevOps
• Le nom « DevOps » vient de la contraction du mot «
development » (développement) et «operation » (exploitation).
• DevOps est une culture qui vise à améliorer la communication
entre les développeurs et l’équipe d’exploitation.
• C’est aussi un ensemble de bonnes pratiques pour automatiser
les différentes phases du projet (test, monitoring, déploiement, ..)
• => Réduction du Time To Market (TTM)
© 2023-2024 – ESPRIT – Module DevOps – Introduction
8
Environnements
DEV INT UAT QUALIF PREPROD PROD
© 2023-2024 – ESPRIT – Module DevOps – Introduction
9
Définition DevOps
• L’agilité et les pratiques DevOps interviennent pour briser les
frontières entre les différents collaborateurs. C’est
complémentaire.
© 2023-2024 – ESPRIT – Module DevOps – Introduction
10
Définition DevOps
Création d’un pipeline automatisé entre les deux équipes appelées CI/CD
(Continuous Integration/ Continious Delivery (ou Deployement)
© 2023-2024 – ESPRIT – Module DevOps – Introduction 11
Définition Intégration Continue
• L’Intégration Continue ou Continuous Integration est un
processus orienté études consistant à compiler, tester et
déployer sur un environnement d’intégration.
• Le but est de tester aussi souvent et autant que possible les non-
régressions du livrable pour détecter les bugs plus tôt possible.
• La plupart du travail est réalisé par des outils de test. Le
déploiement sur la plateforme d’intégration devient simple et
peut être réalisé par les études sans faire intervenir l’exploitation.
© 2023-2024 – ESPRIT – Module DevOps – Introduction
12
Définition Livraison Continue / Déploiement Continu
• La Livraison Continue ou Continuous Delivery est un processus
orienté production consistant à déployer automatiquement sur
un environnement donné (UAT, Qualification, Pré-
Préproduction), à l'exception de la Production où la livraison
reste manuelle.
• Le Déploiement Continu ou Continuous Deploiment est un
processus orienté production consistant à déployer
automatiquement sur tous les environnements y compris sur
l’environnement de production.
© 2023-2024 – ESPRIT – Module DevOps – Introduction
13
Cycle de Vie Projet DevOps
© 2023-2024 – ESPRIT – Module DevOps – Introduction
14
Outils DevOps
• Lien important qui montre les outils les plus utilisés en DevOps,
suivant les technologies utilisées :
• [Link]
• Il suffit de choisir la technologie : Java, Python, .NET … pour avoir
les outils DevOps les plus utilisés pour ces technologies.
© 2023-2024 – ESPRIT – Module DevOps – Introduction
15
Quelques Outils de DevOps
• Dans ce cours, nous allons nous intéresser à :
• Virtual Box / Vagrant / Ubuntu
• Jenkins
• Docker
• Maven
• JUnit
• Git
• Sonar
• Nexus
• Docker Compose, Docker Volume
• Grafana / Prometheus
• Ces outils seront appliqués à deux projets Spring Boot et Angular
déjà existants, que nous allons enrichir.
© 2023-2024 – ESPRIT – Module DevOps – Introduction
16
Outils : Jenkins
• Jenkins est un outil open source d’intégration continue
• A chaque modification de code d'une application dans le gestionnaire de
version, Jenkins se charge automatiquement de la recompiler, et de la tester
© 2023-2024 – ESPRIT – Module DevOps – Introduction
17
Outils : Docker
• Docker est un outil qui peut packager une application et ses
dépendances dans un conteneur isolé, qui pourra être exécuté sur
n'importe quel serveur.
© 2023-2024 – ESPRIT – Module DevOps – Introduction
18
Outils : Maven
• Maven est un outil de construction de projets (build) open source développé
par la fondation Apache.
© 2023-2024 – ESPRIT – Module DevOps – Introduction
19
Outils : JUnit
• JUnit est un framework de test unitaire pour le langage de
programmation Java.
© 2023-2024 – ESPRIT – Module DevOps – Introduction
20
Outils : Git
• Git est un logiciel de gestion de versions décentralisé
© 2023-2024 – ESPRIT – Module DevOps – Introduction
21
Outils : Sonar
• SonarQube est un logiciel libre permettant de mesurer la qualité du
code source en continu (Revue de code automatique).
© 2023-2024 – ESPRIT – Module DevOps – Introduction
22
Outils : Nexus
• Nexus est un gestionnaire de référentiel qui organise, stocke et
distribue les artefacts nécessaires au développement
© 2023-2024 – ESPRIT – Module DevOps – Introduction
23
Outils : Docker Compose
© 2023-2024 – ESPRIT – Module DevOps – Introduction
24
Outils : Grafana / Prometheus
Grafana / Prometheus
• Grafana est un logiciel libre qui permet la visualisation de données. Il permet
de réaliser des tableaux de bord et des graphiques depuis plusieurs sources
dont des bases de données temporelles comme Graphite, InfluxDB et
OpenTSDB.
• Prometheus est un logiciel libre de surveillance informatique et générateur
d'alertes. Il enregistre des métriques en temps réel dans une base de données
de séries temporelles en se basant sur le contenu de point d'entrée exposé à
l'aide du protocole HTTP.
© 2023-2024 – ESPRIT – Module DevOps – Introduction 25
Outils : Grafana / Prometheus
Grafana / Prometheus
• L'exemple suivant montre un tableau de bord Grafana qui interroge
Prometheus pour obtenir des données :
© 2023-2024 – ESPRIT – Module DevOps – Introduction 26
Solution finale
© 2023-2024 – ESPRIT – Module DevOps – Introduction 27
Installation des outils
Pour la prochaine séance, suivre le tuto « 1- Installation
[Link]» (voir Drive du cours), pour installer :
• Virtual box
• Vagrant
• Une machine virtuelle Ubuntu dans Vagrant
© 2023-2024 – ESPRIT – Module DevOps – Introduction 28
Introduction DevOps
© 2023-2024 – ESPRIT – Module DevOps – Introduction 29