0% ont trouvé ce document utile (0 vote)
77 vues47 pages

Dev Ops

devops

Transféré par

elmatazihicham
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
77 vues47 pages

Dev Ops

devops

Transféré par

elmatazihicham
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd

DEVOPS 6.

53

El matazi hicham
SOMMAIRE

 Introduction au DevOps

 Lien entre l’agilite et DevOps

 Definition des motions CI/CD

 Mettre en place CI/CD Gitlab


INTRODUCTION AU DEVOPS
CONCEPT

DevOps combine le développement et les


opérations pour augmenter l'efficacité, la vitesse
et la sécurité du développement et de la livraison
de logiciels par rapport aux processus
traditionnels. Un cycle de vie de développement
logiciel plus agile se traduit par un avantage
concurrentiel pour les entreprises et leurs clients.

7/1/20XX Pitch deck title 4


DÉFINITION DE DEVOPS
DevOps est une combinaison de
développement logiciel (dev) et d'opérations
(ops). Issu d'une approche Agile du
développement de logiciels, DevOps peut être
mieux expliqué par le fait que des personnes
travaillent ensemble pour concevoir, créer et
fournir des logiciels sécurisés à toute vitesse.
Les pratiques DevOps permettent aux
équipes de développement logiciel (dev) et
d'opérations (ops) d'accélérer la livraison
grâce à l'automatisation, la collaboration, un
feedback rapide et une amélioration itérative.
Elle est définie comme une méthodologie
d'ingénierie logicielle qui vise à intégrer le
travail des équipes de développement et des
équipes d'exploitation en faciliter une culture
de collaboration et de responsabilité
partagée.
SCHEMA DE DEVOPS

7/1/20XX Pitch deck title 6


AVANTAGES DE DEVOPS
LIVRAISON DE PRODUITS PLUS UNE PLUS GRANDE ÉVOLUTIVITÉ
RAPIDE ET MEILLEURE ET DISPONIBILITÉ
DevOps accélère les versions de logiciels, DevOps garantit que les systèmes
conduisant à des produits plus rapides et peuvent évoluer et rester disponibles en
améliorés. cas de forte demande.

RÉSOLUTION DES PROBLÈMES ENVIRONNEMENTS


PLUS RAPIDE ET COMPLEXITÉ D'EXPLOITATION PLUS STABLES
RÉDUITE
DevOps identifie et résout les problèmes DevOps crée des environnements
plus rapidement, simplifiant ainsi le système cohérents et fiables.
dépannage et améliorant la stabilité du
système.
AVANTAGES DE DEVOPS
MEILLEURE UTILISATION DES MEILLEURE VISIBILITÉ SUR LES
RESSOURCES RÉSULTATS DU SYSTÈME
DevOps optimise l'utilisation des DevOps fournit des informations sur les
ressources et réduit le gaspillage. performances du système, facilitant ainsi
la prise de décision et la résolution des
problèmes.

UNE PLUS GRANDE UNE PLUS GRANDE INNOVATION


AUTOMATISATION

DevOps automatise les tâches répétitives, DevOps favorise une culture de tests
réduisant ainsi les erreurs et accélérant rapides et d'innovation, permettant
les processus. l'introduction de nouvelles fonctionnalités
et améliorations.
OUTILS DE DEVOPS
Git
DevOps Stage :

• Code

• Build
OUTILS DE DEVOPS
Jenkins
DevOps Stage :

• Build

• Test

• Deploy
OUTILS DE DEVOPS
Docker
DevOps Stage :

• Build

• Operate

• Deploy
LIEN ENTRE L’AGILITE ET DEVOPS
LIEN ENTRE L'AGILITÉ
ET DEVOPS

INTRODUCTION
La méthode agile et l'approche Devops
sont intimement liées. Le Devops permet
une meilleure collaboration entre
les équipes de développement (dev) et les
équipes de mise en production (ops), et
cette approche permet en réalité de
rendre la DSI agile
LES RELATIONS
L'agilité et DevOps sont deux concepts étroitement liés, et ils sont souvent mis en œuvre
ensemble pour améliorer l'efficacité et la qualité des processus de développement logiciel. Voici
comment ces deux approches sont liées :

• OBJECTIF COMMUN • ITÉRATIONS RAPIDES

L'agilité et DevOps partagent un objectif commun, qui L'agilité promeut des cycles de développement
est d'accélérer la livraison de logiciels de haute qualité. courts et itératifs, avec des versions de logiciels

L'agilité se concentre sur la flexibilité et la réactivité fonctionnels livrées fréquemment.


aux changements des exigences, tandis que DevOps
DevOps complète cela en automatisant les
vise à améliorer la collaboration
processus de déploiement, ce qui permet une
entre les équipes de développement et d'exploitation livraison continue et des mises en production plus
pour rendre les déploiements plus rapides et plus fréquentes.
fiables.
LES RELATIONS

• COLLABORATION • AUTOMATISATION

L'agilité met l'accent sur la collaboration étroite Les deux approches mettent fortement l'accent sur
entre les membres de l'équipe de développement l'automatisation. L'agilité encourage
et les parties prenantes du projet. l'automatisation des tests,

DevOps étend cette collaboration à l'équipe des intégrations et des déploiements, tandis que
d'exploitation, favorisant une approche intégrée du DevOps va plus loin en automatisant également les
développement et de l'exploitation. opérations d'infrastructure et de déploiement.
LES RELATIONS

• RÉTROACTION CONTINUE • CULTURE COLLABORATIVE

L'agilité encourage la rétroaction continue à partir Les deux approches favorisent une culture
des utilisateurs finaux et des membres de l'équipe. collaborative au sein de l'organisation. L'agilité
DevOps étend cette idée en encourage la collaboration entre

incorporant également la rétroaction continue des les équipes de développement, tandis que DevOps
opérations, permettant d'identifier rapidement et élargit cette collaboration à l'équipe d'exploitation,
de résoudre les problèmes dans le processus de établissant ainsi une culture de responsabilité
déploiement. partagée.
DFINITION DES NOTIONS CI/CD
DEFINITON

CI/CD, ou Continuous Integration/Continuous


Delivery,

est une approche méthodologique du


développement logiciel visant à automatiser et à
optimiser le processus de livraison

des applications en utilisant plusieurs outils et


pratiques.

7/1/20XX Pitch deck title 18


DEFINITION
INTÉGRATION CONTINUE (CI)
Intégration régulière des modifications du
code pour détecter rapidement les conflits
et les erreurs grâce à
l'automatisation des tests lors de chaque
modification.

LIVRAISON CONTINUE (CD)


Automatisation du processus de mise en
production, assurant que chaque modification
validée peut être déployée en production sans
effort supplémentaire, garantissant un flux de
livraison continu et fiable.
POURQUOI CI/CD?
• Réduisez le temps et les coûts

• Plus de fiabilité des tests

• Isolement d'anomalie

• Sorties plus fréquentes

• Amélioration de la collaboration
d'équipe

• Amélioration de la qualité du logiciel


LIFECYCLE DE CI/CD

7/1/20XX Pitch deck title 21


LIFECYCLE DE CI/CD

PLAN
Planifier - Définir la valeur attendue et les
exigences commerciales, en utilisant Jira.

7/1/20XX Pitch deck title 22


LIFECYCLE DE CI/CD

CODE
Écrire le Code - Concevoir et écrire le code
source avec GitHub, GitLab, Bitbucket, ou
Stash.
LIFECYCLE DE CI/CD

BUILD
Créer la Version - Gestion automatisée des
builds et des versions, notamment avec
Jenkins, Docker, Ansible, Puppet, Chef.
LIFECYCLE DE CI/CD

TEST
Tester - Tests continus pour assurer la
qualité, avec JUnit, Codeception, Selenium.
LIFECYCLE DE CI/CD

DEPLOY
Déployer en Production - Automatisation du
déploiement, en particulier avec Jenkins,
Puppet, Chef.
LIFECYCLE DE CI/CD

OPERATE
Exploiter - Gestion continue en production
avec Ansible, Puppet, Jenkins.
LIFECYCLE DE CI/CD

MONITOR
Surveiller - Surveillance continue de
l'application en production, incluant Jenkins,
New Relic, Datadog.
RESUME
En résumé, la CI/CD est une approche qui
favorise l'automatisation, la collaboration, la
qualité et la rapidité dans le développement
logiciel. Elle permet aux équipes de
développer, tester et déployer des
applications de manière plus efficace, ce qui
améliore la fiabilité et la satisfaction des
utilisateurs tout en réduisant les erreurs et les
coûts.
METTRE EN PLACE CI/CD GITLAB
DEFINITION
GitLab Cl/CD est un outil
puissant intégré à GitLab
qui vous permet
d'appliquer l'intégration
continue, la livraison
continue etDéploiement
continu sur votre logiciel
sans application ou
intégration
tierce nécessaire.
DEFINITION DE
PIPELINE

un pipeline GitLab est un ensemble d'étapes


automatisées qui permettent d'automatiser le
processus de construction, de test et de
déploiement de logiciels, garantissant ainsi une
intégration continue et une livraison continue
plus efficaces et fiables. Ces pipelines sont
essentiels pour assurer la qualité, la cohérence
et la rapidité du développement logiciel.
INTECET DE PIPELINE:
• AUTOMATISATION DES TÂCHES • DÉTECTION PRÉCOCE DES ERREURS
RÉPÉTITIVES
Les pipelines permettent d'automatiser des tâches En exécutant des tests automatiques à chaque
telles que la compilation du code, les tests modification de code, les pipelines permettent de
unitaires, les tests d'intégration, la création de détecter les erreurs plus tôt dans le processus de
paquets, et le déploiement. développement, ce qui facilite leur correction
rapide et réduit les coûts de réparation.
Cela réduit les erreurs humaines, accélère le
processus de développement et libère les
développeurs des tâches manuelles fastidieuses.
INTECET DE PIPELINE:
• AMÉLIORATION DE LA QUALITÉ DU • LIVRAISON CONTINUE ET
CODE DÉPLOIEMENT CONTINU
Les pipelines encouragent les bonnes pratiques de Les pipelines CI/CD permettent de mettre en
développement en intégrant des vérifications de œuvre des processus de livraison continue (CD) en
qualité, telles que l'analyse statique du code, les automatisant le déploiement des nouvelles
normes de codage, et la détection des versions du logiciel. Cela permet de mettre
vulnérabilités, ce qui contribue à améliorer la rapidement à la disposition des utilisateurs des
qualité globale du code. fonctionnalités et des correctifs, ce qui améliore
l'agilité de l'organisation.
INTECET DE PIPELINE:
• SUIVI ET VISIBILITÉ • GESTION DES VERSIONS

Les pipelines offrent une visibilité complète sur Les pipelines aident à gérer les versions du logiciel
l'état des builds et des déploiements. Les équipes en associant des builds spécifiques à des
de développement, de test et d'exploitation étiquettes ou des branches, ce qui simplifie la
peuvent suivre l'avancement du processus à gestion des versions et des mises à jour.
chaque étape.
INTECET DE PIPELINE:
COLLABORATION FACILITÉE

Les pipelines sur GitLab encouragent la


collaboration en permettant aux équipes de
travailler sur le même code source de manière
synchronisée et en intégrant des workflows de
développement plus efficaces.
ARCHITECTURE
DU PIPELINE
DEFINITION

Lorsque l'on parle de l'architecture d'un pipeline dans


le contexte du développement logiciel et de DevOps,
on fait référence généralement à l'architecture
du pipeline de livraison continue (Continuous Delivery)
ou du pipeline de déploiement (Continuous
Deployment). Ces pipelines sont des ensembles
automatisés
de processus qui facilitent le développement, les tests
et le déploiement continu de logiciels.
COMPOSANTS GÉNÉRAUX D'UNE
ARCHITECTURE DE PIPELINE
TYPIQUE
CODE SOURCE INTÉGRATION CONTINUE (CI)
C'est le point de départ du pipeline. Le À chaque modification du code source, le
code source est généralement stocké processus d'intégration continue est
dans un système de gestion de code déclenché.
source tel que Git. Il peut inclure des étapes telles que la
Des modifications dans le code compilation du code, l'exécution de tests
déclenchent le pipeline. unitaires, et la création d'artefacts
binaires.
COMPOSANTS GÉNÉRAUX D'UNE
ARCHITECTURE DE PIPELINE
TYPIQUE
RÉFÉRENTIEL D'ARTÉFACTS TESTS AUTOMATISÉS
Les résultats de l'intégration continue Les pipelines incluent généralement des
sont souvent stockés dans un référentiel tests automatisés, tels que des tests
d'artéfacts, comme un gestionnaire de unitaires, des tests d'intégration et des
packages. tests fonctionnels.
Ces artéfacts peuvent inclure des Ces tests garantissent la qualité du code
binaires exécutables, des bibliothèques, avant le déploiement.
etc.
COMPOSANTS GÉNÉRAUX D'UNE
ARCHITECTURE DE PIPELINE
TYPIQUE
DÉPLOIEMENT AUTOMATISÉ TESTS DANS
L'ENVIRONNEMENT
Une fois que les tests sont réussis, le Des tests supplémentaires sont effectués
pipeline peut déclencher un déploiement dans les environnements déployés pour
automatique vers des environnements s'assurer que le logiciel se comporte
de test. correctement
Cela peut inclure des environnements de dans un environnement similaire à la
développement, de test, de pré- production.
production, etc.
COMPOSANTS GÉNÉRAUX D'UNE
ARCHITECTURE DE PIPELINE
TYPIQUE
DÉPLOIEMENT DANS SURVEILLANCE ET GESTION DES
L'ENVIRONNEMENT DE INCIDENTS
PRODUCTION
Si tous les tests réussissent, le pipeline Une fois déployé, le système doit être
peut déployer automatiquement le surveillé en continu. Les outils de
logiciel dans l'environnement de surveillance aident à détecter et à
production. résoudre les problèmes rapidement. En
cas d'incident, un processus de gestion
des incidents peut être déclenché.
COMPOSANTS GÉNÉRAUX D'UNE
ARCHITECTURE DE PIPELINE
TYPIQUE
FEEDBACK ET AMÉLIORATION SÉCURITÉ
CONTINUE
Les retours d'utilisateurs, les données de La sécurité est intégrée à chaque étape
surveillance, et les performances du du pipeline pour s'assurer que les
système fournissent des informations vulnérabilités sont identifiées et résolues
pour améliorer continuellement le dès que possible.
pipeline et le processus de
développement.
RESUME
L'architecture exacte d'un
pipeline peut varier en
fonction des outils et des
technologies utilisés par une
organisation spécifique.
Les outils couramment
utilisés pour la mise en œuvre
de pipelines incluent Jenkins,
GitLab CI/CD et des services
cloud tels que
AWS CodePipeline et Azure
DevOps.
LES ETAPES DE PIPELINE
CONFIGURATION DE EXTRACTION DU CODE SOURCE
L'ENVIRONNEMENT
Vous spécifiez l'image de la machine de GitLab récupère le code source du
base et d'autres paramètres, comme les référentiel.
variables d'environnement.

BUILD TESTS

Cette étape peut inclure la compilation de Les tests automatisés sont exécutés pour
votre code source, la génération vérifier la qualité du code. Cela peut inclure
d'artéfacts, la création de conteneurs des tests unitaires, des tests d'intégration,
Docker, etc. des tests de performance, etc.
LES ETAPES DE PIPELINE
DÉPLOIEMENT TESTS DE DÉPLOIEMENT

Si les tests réussissent, le code peut être Une fois déployé sur un environnement de
déployé sur un environnement de préproduction, des tests supplémentaires
préproduction ou de staging. Cette étape peuvent être effectués pour s'assurer que
peut également inclure des déploiements tout fonctionne correctement.
sur plusieurs environnements en fonction
de votre configuration.

APPROBATIONS DÉPLOIEMENT EN PRODUCTION

Dans certaines configurations, il est Après approbation, le code est déployé


possible d'ajouter une étape sur l'environnement de production.
d'approbation manuelle pour autoriser le
déploiement en production.
RESUME
Ces étapes peuvent varier en fonction de vos
besoins et de la configuration spécifique de
votre projet. Vous pouvez personnaliser votre
fichier .gitlab-ci.yml pour adapter le pipeline
à votre flux de travail. L'automatisation des
pipelines permet d'améliorer l'intégration
continue, de réduire les erreurs humaines et
d'accélérer le déploiement de logiciels de
manière cohérente.
THANK YOU
Aimane Jaghda
Bilal El-haoudar
Saad Elhafyan
Ferdaous El Souini

Vous aimerez peut-être aussi