1 - Introduction DevOps
1 - Introduction DevOps
1 - Introduction DevOps
Département Informatique
UP JavaEE / .NET
UP ASI (Ex JavaEE .Net)
Bureau E204
- Dev vs Ops
- Technologies DevOps
- Pratiques DevOps
- Culture DevOps
- Avantages DevOps
- Outils
- Solution finale
• Introduction à Docker
• Git
• Grafana et Prometheus
• Validation projet
© 2022-2023 – Module DevOps – Introduction DevOps 3
Horaires
• Séances : 10 séances
– Cours : 09 heures
– TP : 15 heures
– Examen : 06 heures
0
Demande (Besoin)
3. Environnement de Test (UAT - User Acceptance Testing): L'environnement de test est utilisé pour effectuer
des tests approfondis de l'application, généralement par des testeurs. L'objectif est de s'assurer que
l'application répond aux exigences spécifiées par les utilisateurs et de corriger les erreurs avant la mise en
production.
4. Environnement de Qualification (QUALIF): L'environnement de qualification est principalement utilisé
pour effectuer des tests de qualification. L'objectif est de vérifier que l'application répond à un ensemble
spécifique de normes, de réglementations ou de critères de qualité définis. Ces normes peuvent varier en
fonction de l'industrie ou du domaine d'application.
© 2022-2023 – Module DevOps – Introduction DevOps 9
Introduction – Environnements
• 3 équipes sont indispensables pour la bonne conduite d’un projet : équipe business,
équipe développement et équipe opérationnelle.
• L’interaction entre ces 3 équipes est loin d’être évidente
Développement Opérations
Planning et la date de livraison Qualité de service et disponibilité
Couts de développement Cout d’exploitation
Releases planning Changements, Incidents
Dernières technologies Technologies standards
Environnement de développement Environnements de production
Fréquents et importants changements Minimise le changement en production
• La culture DevOps joue le rôle de médiateur entre les deux équipes dev
et ops.
• L’objectif est de transformer la tension entre les deux équipes en une
collaboration saine
L’agilité et les pratiques DevOps interviennent pour briser les frontières entre
les différents collaborateurs.
© 2022-2023 – Module DevOps – Introduction DevOps 20
Dev && Ops
La solution parfaite à intérêt mutuel entre les deux parties est de coordonner
les efforts pour que tous les objectifs des équipes soient réalisé avec moindre
cout et dans le plus bref des délais
Le changement est le point de désaccord entre les deux équipes. DevOps intervient
pour assurer à la fois la possibilité d’innover les fonctionnalités tout en étant sûr que la
solution déployée est stable sans erreurs
Création d’un pipeline automatisé entre les deux équipes appelées CI/CD
(continuous integration/ continious delivery (ou deployement)
• Intégration continue
• Livraison continue
• Déploiement continu
Intégration continue :
Intégration continue :
Livraison continue
C’est la suite logique à l’étape d’intégration continue
La livraison continue est une discipline où l'application est construite de manière
à pouvoir être mise en production à n'importe quel moment.
C’est un processus automatisé visant à compiler, tester et livrer (déployer) une
application à chaque modification apportée par un programmeur
Déploiement continu :
Il est primordiale de mesurer les impacts suite au déploiement grâce à des outils
de supervision. En cas de détection de problèmes, un processus de retour en
arrière doit être exécuté
Déploiement continu :
• Lien important qui montre les outils les plus utilisés en DevOps,
suivant les technologies utilisées :
https://www.devopsschool.com/path/
Jenkins
• Jenkins est un outil logiciel open source d’intégration continue
• A chaque modification de code d'une application dans le gestionnaire de
configuration, Jenkins se charge automatiquement de la recompiler, et de la
tester
Docker
Docker est un outil qui peut empaqueter une application et ses dépendances
dans un conteneur isolé, qui pourra être exécuté sur n'importe quel serveur
GIT
Git est un logiciel de gestion de versions décentralisé.
GIT
Nexus
Nexus est un gestionnaire de référentiel qui organise, stocke et distribue les artefacts
nécessaires au développement
Junit
JUnit est un framework de test unitaire pour le langage de programmation java.
Sonar
SonarQube est un logiciel libre permettant de mesurer la qualité du code source
en continu (Revue de code automatique).
Maven
C’est un outil de construction de projets (build) open source développé par la
fondation Apache.
Grafana / Prometheus
• Grafana est un logiciel libre sous licence GNU Affero General Public License 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.
Grafana / Prometheus
• L'exemple suivant montre un tableau de bord Grafana qui interroge
Prometheus pour obtenir des données :
Département Informatique
UP Architectures des Systèmes d'Information
Bureau E204