Académique Documents
Professionnel Documents
Culture Documents
DevOps
Elaboré par :
Boughanmi Rania et Nijaoui Oumaima
Encadrant :
Kouki Tarek
Figure 1 – DevOps
Remerciements
C’est avec un grand plaisir que nous réservons cette page, en signe de gratitude
et de profonde reconnaissance, afin d’exprimer nos vifs remerciements à toute
personne ayant contribué à un bon déroulement de projet de fin d’année 1 et son
achèvement dans les meilleures conditions.
Au terme de ce travail réalisé au sein de l’Ecole Nationale des Ingénieurs de
Tunis, on a l’honneur de remercier le cadre enseignant pour la qualité de leur
cours, pour leurs informations précieuses et pour leur patience.
Dans ce cadre, nous tiendrons également à remercier nos encadreur monsieur
" Kouki Tarek " d’avoir bien voulu encadrer ce travail ainsi que pour sa riche
contribution et ses précieux conseils. Enfin, nos remerciements sont adressés
aux membres de jury, pour avoir l’extrême gentillesse de bien vouloir évaluer ce
travail.
Table des matières
Introduction générale 6
1 Concept DevOps 7
1.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1 Le rôle du DevOps . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2 Pratiques DevOps . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Atouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Les principes du DevOps : . . . . . . . . . . . . . . . . . . . . . . . 10
2 La Notion De Conteneur 11
2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Comparaison entre les Conteneurs et les machines virtuelles : . . . . 11
2.3 DOCKER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 Kubernetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4 Avantages Du DevOps 23
4.1 Rapidité : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2 Livraison rapide : . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.3 Fiabilité : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.4 Évolutivité : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.5 Collaboration améliorée : . . . . . . . . . . . . . . . . . . . . . . . . 24
4.6 Sécurité : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2
5 DevSecOps 25
5.1 Qu’est-ce que DevSecOps ? . . . . . . . . . . . . . . . . . . . . . . . 25
5.2 La sécurité DevOps est automatisée : . . . . . . . . . . . . . . . . . 26
5.2.1 Mais que faut-il automatiser et comment ? . . . . . . . . . . 26
5.3 Quelle est l’ avantages de l’approche DevSecOps ? . . . . . . . . . . 26
5.3.1 -Définir et mettre en oeuvre la sécurité à tous les niveaux
et pour tous les environnements. . . . . . . . . . . . . . . . . 26
Conclusion générale 28
Les références 29
Table des figures
1 DevOps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
5.1 DevSecOps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2 Avec et Sans securité . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Liste des tableaux
6
Chapitre 1
Concept DevOps
1.1 Définition
DevOps authentifie à créer une culture et un entourage dans lesquels la concep-
tion, les tests et la diffusion de logiciels informatiques seront effectués plus rapi-
dement et d’une façon plus efficaces. Pour commencer, le terme DevOps est né
de l’union du "développement" et des "opérations" dont le but est de favoriser
une meilleure communication entre les équipes d’exploitation et de dévelop-
pements . Aujourd’hui, les entreprises tournent vers une approche dynamique
orientée client pour le développement et la livraison de leurs applications.Ce qui
nous amène à definir DevOps comme une culture, une station complétement dif-
férente,qui ne s’agit pas simplement d’adopter une planification agile ou des tests
automatisés ou une livraison continue, bien que ces pratiques soient certainement
importantes. La culture DevOps repose sur une compréhension partagée entre
les développeurs et les opérations, et sur le partage de la responsabilité du logi-
ciel qu’ils créent. Cela signifie accroître la transparence, la communication et la
collaboration entre le développement, l’informatique et les opérations. DevOps
est un mouvement culturel qui soutient la création d’équipes de développement
et d’exploitation multidisciplinaires pour unifier le développement logiciel (dev)
et la gestion de l’infrastructure informatique (ops), et utiliser des pratiques et
des outils partagés et efficaces pour travailler ensemble. Les principaux membres
de l’équipe DevOps sont des membres des équipes de développement, d’exploi-
tation et de sécurité. Ils travaillent ensemble tout au long du cycle de vie du
logiciel pour améliorer la qualité, le développement et la vitesse de livraison des
logiciels afin d’améliorer l’expérience client.
7
DevOps
1.2 Motivation
1.2.1 Le rôle du DevOps
Les tâches de DevOps sont multiples. D’une manière générale, ses tâches prin-
cipales comprennent la mise en place, la direction et la gestion des systèmes
informatiques. L’objectif est d’adapter ces systèmes à l’entreprise et de les rendre
plus agiles.
Les principales tâches de DevOps peuvent être résumées comme suit :
1. -Déploiement d’applications
2. -Mise en place de la phase de test, réalisée en amont du développement
3. -Mise en place d’un suivi qualité de fabrication
D’ailleurs, derrière cette notion on trouve les fondamentaux suivants :
*La réduction du cycle des livraisons : industrialisation complète de la chaîne de
production logicielle avec déploiement d’outils tels que Team foundation server
ou l’Edition cloud de Visual studio team services, l’intégration continue,qui est
un outil qu’on va bien développer plus tard, est souvent un objectif pertinent
pour la réduction du cycle .
*L’optimisation des ressources : standardiser, automatiser le déclenchement et
l’exécution du divers tâches. *L’amélioration de la qualité : mesurer la fiabilité,
les performances, l’évolutivité et la facilité d’utilisation en testant tout au long
du processus. *Replacer l’humain au cœur du dispositif : établir une organisa-
tion collaborative et basée sur l’amélioration continue afin qu’elle puisse être
réajustée si nécessaire.
8
DevOps
1.3 Atouts
la genèse de DevOps vient d’un besoin croissant d’innovation du côté des
systèmes du travail technologique et son mouvement hérité du celle du l’adminis-
tration système agile et du gestion des systèmes d’entreprise (ESM).
9
DevOps
10
Chapitre 2
La Notion De Conteneur
2.1 Définition
Un conteneur est une unité logicielle standard qui regroupe le code et toutes
ses dépendances afin que les applications puissent s’exécuter rapidement et de
manière fiable d’un environnement informatique à un autre. Une image de conte-
neur Docker est un progiciel(ensemble de logiciels munis d’une documentation)
léger, indépendant et exécutable qui contient tout le nécessaire pour exécuter
une application : code, runtime, outils système, bibliothèques système et para-
mètres.
11
DevOps
2.3 DOCKER
Qu’est-ce que Docker ? Docker est une plateforme de développement logiciel
pour la virtualisation avec plusieurs systèmes d’exploitation fonctionnant sur
le même hôte. Elle permet de séparer l’infrastructure et les applications afin
de fournir des logiciels rapidement. Contrairement aux hyperviseurs, qui sont
utilisés pour créer des machines virtuelles (VM), la virtualisation dans Docker
est effectuée au niveau du système, également appelé conteneur Docker.
12
DevOps
13
DevOps
2.4 Kubernetes
14
DevOps
— Capacités d’auto-réparation
— Déploiements et retours en arrière automatisés
— Mise à l’échelle horizontale et équilibrage de la charge
— Offre un environnement cohérent pour le développement, les tests et la
production.
— L’infrastructure est faiblement couplée et chaque composant peut
— agir comme une unité distincte.
— Offre une plus grande densité d’utilisation des ressources
— Offre des fonctionnalités adaptées aux entreprises
— Gestion centrée sur les applications
— Infrastructure auto-extensible
— Vous pouvez créer une infrastructure prévisible
15
DevOps
-Serveur API : le serveur API sert de point d’entrée pour toutes les commandes
REST utilisées pour contrôler le cluster.
-Planificateur : Le planificateur planifie les tâches sur les nœuds esclaves. Il
stocke des informations sur l’utilisation des ressources de chaque nœud esclave. Il
est responsable de la répartition de la charge de travail.
Il peut également vous aider à suivre la façon dont la charge de travail est utili-
sée sur les nœuds du cluster. Cela peut vous aider à mettre la charge de travail
sur les ressources disponibles et à accepter la charge de travail.
16
Chapitre 3
L’analyse des besoins : appelée aussi spécifications des besoins ,Cette phase
doit contenir la mise en contexte du logiciel et l’étude de ce qui existe déjà..
La recherche des moyens disponibles consiste à étudier des produits similaires
sur le marché et à étudier des processus ou des logiciels similaires au sein de
l’entreprise .Les besoins commerciaux peuvent contenir des besoins fonctionnels
et des besoins non fonctionnels . (disponibilité, rapidité de calcul. . . ).
17
DevOps
Le test : Les tests identifient les défauts techniques, les erreurs fonctionnelles
et la qualité du logiciel. Pour ce faire, nous pouvons utiliser des logiciels de test
et des techniques.
3.2 Méthodes
Afin d’accélérer et d’améliorer le développement et le lancement de leurs pro-
duits, les entreprises disposent d’un certain nombre de méthodologies et pra-
tiques DevOps de développement logiciel. Les méthodes Scrum, Kanban et Agile
sont les plus utilisées.
18
DevOps
i-Jenkins : Jenkins est l’un des outils DevOps open source les plus connus
pour prendre en considération l’intégration continue et la livraison via DevOps.
Il permet une intégration et une livraison continue des projets, quelle que soit la
plateforme sur laquelle les utilisateurs travaillent, en utilisant des différents pi-
pelines de construction et de déploiement. Jenkins peut être intégré à un certain
nombre d’outils de test et de déploiement.
ii-Bambou : Bambou est l’un des produits populaires développés par At-
lassian pour prendre en considération une intégration continue et transparente.
d’ailleurs , ses fonctionnalités sont en général prédéfinies, pour cela, n’est pas
nécessaire de télécharger divers plugins comme Jenkins.
Il prend aussi en considération une intégration transparente avec d’autres pro-
duits Atlassian tels que JIRA et Bitbucket.
19
DevOps
i-Slack : outils utilisés par les équipes pour collaborer efficacement sur des
projets. Cet outil de l’arsenal DevOps est utilisé par les organisations techniques
du monde entier pour faire tomber les barrières et donner à tous les membres de
l’équipe une vue d’ensemble claire du flux de travail. L’une des fonctionnalités
importante de Slack est qu’elle permet aux développeurs de collaborer en utili-
sant des outils dans le même environnement qu’ils communiquent avec d’autres
membres de la maintenance et du service.
ii-Jira : JIRA est l’un des diffèrent outils de gestion de projet développés
par Atlassian, utilisé pour suivre les problèmes, les bogues et les projets. aussi,Il
permet aux utilisateurs de suivre l’état des projets avec des problèmes. Il peut
facilement être intégré avec d’autres produits Atlassian comme Bitbucket et des
outils DevOps comme Jenkins.
20
DevOps
i-Azure : Azure est une plate-forme de cloud computing, conçue par Micro-
soft dans le but de créer, déployer, tester et gérer des applications et des services
sur un réseau mondial de ses centres de données. de plus ,Les services fournis par
Microsoft Azure sont disponibles sous la forme de PaaS et IaaS.
ii-AWS : AWS est une plate-forme d’hébergement Web censée a proposer des
solutions flexibles, fiables, faciles à utiliser, évolutives et rentables. en utilisant
cette plate-forme cloud, nous n’avons pas à nous soucier de la mise en place
d’une infrastructure informatique qui prend en général un temps précis de mise
en place.
5/POUR LA CONSTRUCTION :
21
DevOps
ii-Github : Grâce à cet outil, les développeurs peuvent effectuer des itéra-
tions de code rapides et instantanément informées vers les autres membres de
l’équipe.En cas d’erreur ou de plantage, une restauration immédiate de la ver-
sion précédente peut être effectuée en quelques secondes, avec l’historique des
modifications de branche stocké à côté de l’outil.
22
Chapitre 4
Avantages Du DevOps
4.1 Rapidité :
En mettant en œuvre DevOps, les entreprises peuvent utiliser des stratégies
DevOps pour déployer plus rapidement de nouveaux processus, systèmes et ap-
plications. Le déploiement de DevOps rendra vos opérations commerciales plus
efficaces. Au fur et à mesure que le temps de cycle diminue, le coût de fabrica-
tion du produit diminue également.
4.3 Fiabilité :
Assurance de la qualité des mises à jour des applications et des changements
d’infrastructure pour livrer en toute confiance vos produits à un rythme accé-
léré tout en continuant à offrir une expérience positive aux utilisateurs finaux.
Utilisez des méthodes telles que l’intégration et la livraison continues pour vous
assurer que chaque changement est fonctionnel . Les pratiques de suivi et de
journalisation vous aident à rester informé sur les performances en temps réel.
23
DevOps
4.4 Évolutivité :
Exploitez et gérez votre infrastructure et votre processus de développement à
grande échelle. L’automatisation et la cohérence vous aident à gérer la com-
plexité ou le changement de système d’une manière moins risquée et efficace. Par
exemple, l’infrastructure en tant que code vous aide à gérer vos environnements
de développement, de test et de production de manière plus itérative et efficace.
4.6 Sécurité :
Un autre avantage essentiel, c’est améliorer la sécurité.Nous vous recomman-
dons de livrer le produit à un rythme rapide pour des raisons vues aupara-
vant.Cependant, c’est en vain si vous ignorez l’aspect sécurité juste pour ga-
gner du temps .De plus, le taux de cybercriminalité augmente et les entreprises
disposent de millions de dollars de données.Alors, comment vous équipez-vous
pour y faire face ?C’est là qu’intervient le terme DevSecOps pour gérer l’aspect
sécurité d’une application.
24
Chapitre 5
DevSecOps
DevSecOps met l’accent sur la nécessité d’inviter les équipes de sécurité et les
partenaires le plus tôt possible dans le plan DevOps pour intégrer la sécurité
des informations et définir un plan d’automatisation de la sécurité. Il souligne
25
DevOps
26
DevOps
alertera en temps réel les équipes concernées sur les vulnérabilités bien avant que
le produit final n’atteigne l’environnement de production. Ce processus permet
de détecter rapidement les lacunes et les écarts en matière de sécurité des don-
nées. Cela vous permet de réagir rapidement afin de pouvoir déployer un produit
final qui aura bien moins de problèmes liés à la confidentialité et la sécurité des
données.
27
Conclusion générale
28
Les références
— aws.amazon.com
— www.netapp.com
— newrelic.com
— www.softfluent.fr
— www.redhat.com
— www.syloe.com
— www.splunk.com
— kinsta.com
— www.qrpinternational.fr
— www.slideshare.net
— devopssec.fr
29