Panorama des Outils DevOps
Table des matières
- Cartographie des outils
- Gestion du code source
- CI/CD
- Conteneurisation et orchestration
- Infrastructure as Code
- Monitoring et observabilité
- Collaboration et communication
1 - Cartographie des outils
Vue d'ensemble de l'écosystème
Classification par phase du cycle
| Phase | Outils populaires |
|---|---|
| Plan | Jira, Azure Boards, Trello |
| Code | Git, VS Code, IntelliJ |
| Build | Maven, Gradle, npm |
| Test | JUnit, Selenium, Jest |
| Release | Jenkins, GitLab CI, Argo CD |
| Deploy | Kubernetes, Terraform, Ansible |
| Operate | Kubernetes, Consul, Vault |
| Monitor | Prometheus, Grafana, ELK |
🔝 Retour à la table des matières
2 - Gestion du code source
Git : le standard
Plateformes Git
| Plateforme | Type | Points forts |
|---|---|---|
| GitHub | SaaS/Enterprise | Communauté, Actions, Copilot |
| GitLab | SaaS/Self-hosted | CI/CD intégré, DevSecOps |
| Bitbucket | SaaS/DC | Intégration Atlassian |
| Azure Repos | SaaS | Intégration Azure DevOps |
Comparaison des fonctionnalités
| Fonctionnalité | GitHub | GitLab | Bitbucket |
|---|---|---|---|
| CI/CD intégré | Actions | CI/CD | Pipelines |
| Container Registry | Packages | Registry | N/A |
| Issue Tracking | Issues | Issues | Jira |
| Wiki | Wiki | Wiki | Confluence |
| Code Review | PR | MR | PR |
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ère | Jenkins | GitLab CI | GitHub Actions |
|---|---|---|---|
| Hébergement | Self-hosted | Both | SaaS |
| Configuration | Groovy/GUI | YAML | YAML |
| Runners | Agents | Runners | Runners |
| Courbe d'apprentissage | Élevée | Moyenne | Faible |
| Coût | Gratuit | Freemium | Freemium |
🔝 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
| Outil | Usage | Complexité |
|---|---|---|
| Docker Compose | Développement local | Faible |
| Docker Swarm | Petits clusters | Moyenne |
| Kubernetes | Production à grande échelle | Élevée |
| Nomad | Alternative légère | Moyenne |
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
| Aspect | Terraform | Ansible | CloudFormation |
|---|---|---|---|
| Approche | Déclaratif | Procédural/Déclaratif | Déclaratif |
| State | Remote | Agentless | AWS managed |
| Multi-cloud | Oui | Oui | AWS only |
| Langage | HCL | YAML | YAML/JSON |
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é.
| Composant | Rôle |
|---|---|
| Elasticsearch | Stockage et recherche |
| Logstash | Processing des logs |
| Kibana | Visualisation |
| Filebeat | Collecte des logs |
Solutions SaaS
| Solution | Type | Points forts |
|---|---|---|
| Datadog | APM complet | Tout-en-un |
| New Relic | APM | Facilité d'usage |
| Splunk | Logs | Enterprise-grade |
| PagerDuty | Alerting | On-call management |
Les 3 piliers de l'observabilité
🔝 Retour à la table des matières
7 - Collaboration et communication
Outils de communication
| Outil | Usage principal |
|---|---|
| Slack | Communication temps réel |
| Microsoft Teams | Suite Office intégrée |
| Discord | Communautés |
ChatOps
Automatisation via chat.
Documentation
| Outil | Type |
|---|---|
| Confluence | Wiki entreprise |
| Notion | Documentation moderne |
| GitBook | Documentation technique |
| Markdown | Simple et universel |
🔝 Retour à la table des matières
Comment choisir ses outils ?
Critères de sélection
| Critère | Questions à poser |
|---|---|
| Maturité | Depuis combien de temps existe-t-il ? |
| Communauté | Support communautaire actif ? |
| Intégration | Compatible avec l'écosystème existant ? |
| Coût | TCO sur 3 ans ? |
| Compétences | Équipe formée ou à former ? |
| Scalabilité | Adapté à la croissance ? |
Stack recommandée pour démarrer
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 →