Aller au contenu principal

Panorama des Outils DevOps


Table des matières

  1. Cartographie des outils
  2. Gestion du code source
  3. CI/CD
  4. Conteneurisation et orchestration
  5. Infrastructure as Code
  6. Monitoring et observabilité
  7. Collaboration et communication


1 - Cartographie des outils

Vue d'ensemble de l'écosystème

Classification par phase du cycle

PhaseOutils populaires
PlanJira, Azure Boards, Trello
CodeGit, VS Code, IntelliJ
BuildMaven, Gradle, npm
TestJUnit, Selenium, Jest
ReleaseJenkins, GitLab CI, Argo CD
DeployKubernetes, Terraform, Ansible
OperateKubernetes, Consul, Vault
MonitorPrometheus, Grafana, ELK

🔝 Retour à la table des matières



2 - Gestion du code source

Git : le standard

Plateformes Git

PlateformeTypePoints forts
GitHubSaaS/EnterpriseCommunauté, Actions, Copilot
GitLabSaaS/Self-hostedCI/CD intégré, DevSecOps
BitbucketSaaS/DCIntégration Atlassian
Azure ReposSaaSIntégration Azure DevOps

Comparaison des fonctionnalités

FonctionnalitéGitHubGitLabBitbucket
CI/CD intégréActionsCI/CDPipelines
Container RegistryPackagesRegistryN/A
Issue TrackingIssuesIssuesJira
WikiWikiWikiConfluence
Code ReviewPRMRPR
astuce

Le choix de la plateforme dépend souvent de l'écosystème existant. GitLab offre une solution tout-en-un, GitHub excelle en communauté open source.

🔝 Retour à la table des matières



3 - CI/CD

Jenkins

Le vétéran, extensible à l'infini.

Avantages :

  • Très flexible et extensible
  • Énorme écosystème de plugins
  • Auto-hébergé

Inconvénients :

  • Maintenance requise
  • Configuration complexe
  • Interface vieillissante

GitLab CI/CD

CI/CD natif dans GitLab.

stages:
- build
- test
- deploy

build:
stage: build
script:
- npm ci
- npm run build

test:
stage: test
script:
- npm test

deploy:
stage: deploy
script:
- ./deploy.sh
only:
- main

GitHub Actions

CI/CD intégré à GitHub.

name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm ci
- run: npm test

Comparaison CI/CD

CritèreJenkinsGitLab CIGitHub Actions
HébergementSelf-hostedBothSaaS
ConfigurationGroovy/GUIYAMLYAML
RunnersAgentsRunnersRunners
Courbe d'apprentissageÉlevéeMoyenneFaible
CoûtGratuitFreemiumFreemium

🔝 Retour à la table des matières



4 - Conteneurisation et orchestration

Docker

Standard de facto pour les conteneurs.

Concepts clés :

  • Image : template immuable
  • Container : instance d'une image
  • Registry : stockage d'images
  • Dockerfile : recette de l'image

Kubernetes

Orchestration de conteneurs à grande échelle.

Concepts clés :

  • Pod : plus petite unité déployable
  • Deployment : gestion des replicas
  • Service : exposition réseau
  • Ingress : routage HTTP

Alternatives à Kubernetes

OutilUsageComplexité
Docker ComposeDéveloppement localFaible
Docker SwarmPetits clustersMoyenne
KubernetesProduction à grande échelleÉlevée
NomadAlternative légèreMoyenne
attention

Kubernetes est puissant mais complexe. Évaluez si votre cas d'usage le justifie avant de l'adopter.

🔝 Retour à la table des matières



5 - Infrastructure as Code

Terraform

Infrastructure déclarative multi-cloud.

provider "aws" {
region = "eu-west-1"
}

resource "aws_instance" "web" {
ami = "ami-12345678"
instance_type = "t3.micro"

tags = {
Name = "WebServer"
}
}

Ansible

Configuration management et automation.

- name: Configure webserver
hosts: webservers
tasks:
- name: Install nginx
apt:
name: nginx
state: present

- name: Start nginx
service:
name: nginx
state: started

Comparaison IaC

AspectTerraformAnsibleCloudFormation
ApprocheDéclaratifProcédural/DéclaratifDéclaratif
StateRemoteAgentlessAWS managed
Multi-cloudOuiOuiAWS only
LangageHCLYAMLYAML/JSON
remarque

Terraform pour créer l'infrastructure, Ansible pour la configurer. Ils sont complémentaires.

🔝 Retour à la table des matières



6 - Monitoring et observabilité

La stack Prometheus + Grafana

ELK Stack

Logging centralisé.

ComposantRôle
ElasticsearchStockage et recherche
LogstashProcessing des logs
KibanaVisualisation
FilebeatCollecte des logs

Solutions SaaS

SolutionTypePoints forts
DatadogAPM completTout-en-un
New RelicAPMFacilité d'usage
SplunkLogsEnterprise-grade
PagerDutyAlertingOn-call management

Les 3 piliers de l'observabilité

🔝 Retour à la table des matières



7 - Collaboration et communication

Outils de communication

OutilUsage principal
SlackCommunication temps réel
Microsoft TeamsSuite Office intégrée
DiscordCommunautés

ChatOps

Automatisation via chat.

Documentation

OutilType
ConfluenceWiki entreprise
NotionDocumentation moderne
GitBookDocumentation technique
MarkdownSimple et universel

🔝 Retour à la table des matières



Comment choisir ses outils ?

Critères de sélection

CritèreQuestions à poser
MaturitéDepuis combien de temps existe-t-il ?
CommunautéSupport communautaire actif ?
IntégrationCompatible avec l'écosystème existant ?
CoûtTCO sur 3 ans ?
CompétencesÉquipe formée ou à former ?
ScalabilitéAdapté à la croissance ?

Stack recommandée pour démarrer

astuce

Commencez simple. Un bon processus avec des outils basiques vaut mieux qu'une stack complexe mal maîtrisée.

🔝 Retour à la table des matières



Points clés à retenir

  • L'écosystème DevOps est vaste et en évolution constante
  • Git est incontournable pour le source control
  • Docker et Kubernetes dominent la conteneurisation
  • Terraform est le leader de l'IaC multi-cloud
  • Prometheus/Grafana est la stack monitoring open source de référence
  • Choisissez les outils en fonction de votre contexte, pas des tendances

🔝 Retour à la table des matières


← Chapitre précédent | Chapitre suivant : Rôles et Compétences →