0% ont trouvé ce document utile (0 vote)
196 vues29 pages

1 - Introduction DevOps

Le document présente un cours sur DevOps, détaillant son contenu, les horaires, et les méthodes d'évaluation. Il aborde l'évolution des méthodologies de développement, les définitions clés comme DevOps, l'intégration continue et la livraison continue, ainsi que les outils utilisés tels que Jenkins, Docker et Git. Le cours se concentre sur l'amélioration de la collaboration entre les équipes de développement et d'exploitation pour automatiser les processus et réduire le temps de mise sur le marché.

Transféré par

nada ajel
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)
196 vues29 pages

1 - Introduction DevOps

Le document présente un cours sur DevOps, détaillant son contenu, les horaires, et les méthodes d'évaluation. Il aborde l'évolution des méthodologies de développement, les définitions clés comme DevOps, l'intégration continue et la livraison continue, ainsi que les outils utilisés tels que Jenkins, Docker et Git. Le cours se concentre sur l'amélioration de la collaboration entre les équipes de développement et d'exploitation pour automatiser les processus et réduire le temps de mise sur le marché.

Transféré par

nada ajel
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

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

Vous aimerez peut-être aussi