CI/CD : Integration et Deploiement Continus
Workflow CI/CD typique :
git push
|
v
+------------------+
| Integration | Build, tests unitaires,
| Continue (CI) | analyse de code, securite
+------------------+
|
v
+------------------+
| Livraison | Image Docker construite,
| Continue (CD) | stockee dans un registry
+------------------+
|
v
+------------------+
| Deploiement | Deploy sur staging puis
| Continu | production (Kubernetes)
+------------------+
Infrastructure as Code (IaC)
L'infrastructure est decrite dans des fichiers versionnes, pas configuree manuellement.
# Terraform : creer l'infrastructure
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t3.medium"
tags = {
Name = "web-server"
}
}
# Ansible : configurer les serveurs
- hosts: web_servers
tasks:
- name: Installer nginx
apt:
name: nginx
state: present
Conteneurisation et Orchestration
Docker empaquete les applications, Kubernetes les orchestre en production.
# Docker : creer une image reproductible
FROM node:18-alpine
COPY . /app
RUN npm install
CMD ["npm", "start"]
# Kubernetes : deployer et scaler
kubectl apply -f deployment.yaml
kubectl scale deployment web --replicas=5
Monitoring et Observabilite
Les trois piliers de l'observabilite :
- Metriques : Prometheus collecte les donnees numeriques (CPU, requetes/s, erreurs)
- Logs : Centralises avec Loki ou ELK Stack
- Traces : Jaeger ou Tempo pour suivre les requetes entre microservices
Principe cle : "Si ce n'est pas automatise, ca n'existe pas." En DevOps, tout doit etre reproductible et versionne.