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

Guide Intro Devops

Le DevOps est une culture et un ensemble de pratiques visant à améliorer la collaboration entre les équipes de développement et d'exploitation pour livrer des logiciels plus rapidement et de manière fiable. Il repose sur trois piliers : la culture, les pratiques et les outils, et se matérialise à travers un cycle continu d'intégration et de déploiement. Le DevSecOps intègre également la sécurité dans chaque étape du processus, garantissant ainsi une approche holistique du développement logiciel.

Transféré par

angeloworkstudy
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)
0 vues5 pages

Guide Intro Devops

Le DevOps est une culture et un ensemble de pratiques visant à améliorer la collaboration entre les équipes de développement et d'exploitation pour livrer des logiciels plus rapidement et de manière fiable. Il repose sur trois piliers : la culture, les pratiques et les outils, et se matérialise à travers un cycle continu d'intégration et de déploiement. Le DevSecOps intègre également la sécurité dans chaque étape du processus, garantissant ainsi une approche holistique du développement logiciel.

Transféré par

angeloworkstudy
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 au DevOps

Culture, pratiques et outils pour livrer du logiciel plus vite et plus sûrement

1. Qu'est-ce que le DevOps ?


Le DevOps (contraction de Development et Operations) est une culture et un ensemble de pratiques visant à
rapprocher les équipes de développement (qui écrivent le code) et les équipes d'exploitation (qui font tourner ce
code en production). L'objectif : livrer des logiciels plus rapidement, plus fréquemment et de manière plus fiable,
en réduisant les frictions entre les deux mondes.
Historiquement, développeurs et opérationnels travaillaient en silos : les développeurs livraient du code "qui
marche chez moi", et les équipes ops devaient le déployer et le maintenir sans toujours en comprendre les
rouages. Le DevOps casse cette frontière en partageant la responsabilité de bout en bout, du code jusqu'à la
production.

Les trois piliers du DevOps


• Culture : collaboration, responsabilité partagée, apprentissage continu à partir des échecs ("blameless
postmortems").

• Pratiques : intégration continue, déploiement continu, infrastructure as code, monitoring.

• Outils : automatisation à chaque étape (build, test, déploiement, supervision) pour réduire les tâches manuelles
et les erreurs humaines.

DevOps n'est pas...


• ...un poste unique appelé "DevOps Engineer" qui ferait tout à la place des autres (même si ce titre existe dans
les faits).

• ...un simple ensemble d'outils : sans changement de culture et de collaboration, les outils seuls ne suffisent pas.

• ...réservé aux grandes entreprises : les principes s'appliquent à des équipes de toute taille.

Guide - Introduction au DevOps Page 1


2. Le cycle DevOps (boucle infinie)
Le DevOps est souvent représenté par une boucle infinie en huit étapes, illustrant un flux continu plutôt qu'un
processus linéaire avec un début et une fin.

Étape Objectif Exemples d'outils

Plan Définir les besoins, prioriser Jira, Trello, Linear

Code Écrire et versionner le code Git, GitHub, GitLab

Build Compiler / packager l'application Maven, Gradle, npm, Docker

Test Valider automatiquement la qualité JUnit, pytest, Selenium

Release Préparer la mise en production Jenkins, GitLab CI, GitHub Actions

Deploy Déployer en environnement cible Ansible, Kubernetes, Terraform

Operate Faire fonctionner en production Kubernetes, AWS/Azure/GCP

Monitor Surveiller, détecter les anomalies Prometheus, Grafana, ELK, Datadog

Après Monitor, les retours d'observation (bugs, performances, retours utilisateurs) alimentent à nouveau la phase
Plan : c'est ce qui ferme la boucle et permet une amélioration continue.

Guide - Introduction au DevOps Page 2


3. Intégration et déploiement continus (CI/CD)
Le CI/CD est le cœur technique du DevOps : il automatise le chemin entre "le code est écrit" et "le code tourne en
production".

Intégration continue (CI)


Chaque modification de code poussée sur le dépôt déclenche automatiquement une compilation et une suite de
tests. Objectif : détecter les régressions le plus tôt possible, plutôt qu'à la fin d'un long cycle de développement.

Livraison / déploiement continu (CD)


• Continuous Delivery : le code est automatiquement préparé pour être déployé, mais la mise en production
reste déclenchée manuellement (validation humaine).

• Continuous Deployment : chaque changement validé par les tests est déployé automatiquement en production,
sans intervention humaine.

Exemple de pipeline CI/CD (GitHub Actions)


name: CI
on: [push]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Installer les dependances
run: pip install -r [Link]
- name: Lancer les tests
run: pytest

À chaque push, ce pipeline installe les dépendances puis exécute automatiquement les tests. En cas d'échec,
l'équipe est notifiée avant que le code ne soit fusionné.

Guide - Introduction au DevOps Page 3


4. Infrastructure as Code et conteneurisation
Infrastructure as Code (IaC)
Plutôt que de configurer manuellement des serveurs, l'IaC décrit l'infrastructure (serveurs, réseaux, bases de
données) sous forme de fichiers de configuration versionnés. Avantages : reproductibilité, traçabilité (via Git), et
possibilité de recréer un environnement identique à volonté.

# extrait Terraform : creation d'une instance cloud


resource "aws_instance" "serveur_web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "[Link]"
tags = {
Name = "serveur-web-prod"
}
}

Conteneurisation avec Docker


Un conteneur empaquette une application avec toutes ses dépendances dans une unité isolée et portable,
garantissant qu'elle fonctionne de la même façon partout (poste de dev, test, production).

# Dockerfile minimal pour une application Python


FROM python:3.12-slim
WORKDIR /app
COPY [Link] .
RUN pip install -r [Link]
COPY . .
CMD ["python", "[Link]"]

Orchestration avec Kubernetes


Quand une application se compose de nombreux conteneurs (microservices), Kubernetes automatise leur
déploiement, leur mise à l'échelle et leur résilience (redémarrage automatique en cas de panne).

Guide - Introduction au DevOps Page 4


5. Monitoring, sécurité (DevSecOps) et bonnes pratiques
Monitoring et observabilité
Une fois en production, il faut savoir si l'application fonctionne correctement. L'observabilité repose sur trois types
de données :

• Métriques : indicateurs chiffrés (CPU, latence, taux d'erreur) — outils : Prometheus, Grafana.

• Logs : traces textuelles des événements — outils : ELK Stack (Elasticsearch, Logstash, Kibana).

• Traces : suivi d'une requête à travers plusieurs microservices — outils : Jaeger, OpenTelemetry.

DevSecOps : intégrer la sécurité dès le départ


Le DevSecOps étend le DevOps en intégrant la sécurité à chaque étape du pipeline, plutôt que de la traiter
comme une vérification finale isolée — particulièrement pertinent dans un parcours cybersécurité.

• Analyse statique du code (SAST) : détection de vulnérabilités dans le code source avant compilation.

• Analyse des dépendances (SCA) : détection de bibliothèques tierces vulnérables (ex. Dependabot, Snyk).

• Scan d'images de conteneurs : vérifier qu'une image Docker ne contient pas de failles connues (ex. Trivy).

• Tests de sécurité dynamiques (DAST) sur l'application déployée en environnement de test.

Bonnes pratiques générales pour débuter


• Tout versionner : code, configuration d'infrastructure, pipelines eux-mêmes.

• Automatiser progressivement : commencer par les tests, puis le build, puis le déploiement.

• Petits déploiements fréquents plutôt que de grosses releases rares et risquées.

• Mettre en place un monitoring dès le premier déploiement, pas après un incident.

• Documenter les procédures et favoriser une culture sans recherche de coupable ("blameless") après un incident,
pour encourager le signalement rapide des problèmes.

Fin du guide — Introduction au DevOps

Guide - Introduction au DevOps Page 5

Vous aimerez peut-être aussi