Docker et Kubernetes: Guide DevOps
La containerisation est devenue essentielle pour les applications modernes.
Docker: Les Fondamentaux
Dockerfile Optimisé
CodeFROM node:22-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci --only=production FROM node:22-alpine WORKDIR /app COPY --from=builder /app/node_modules ./node_modules COPY . . EXPOSE 3000 CMD ["node", "server.js"]
Multi-stage Builds
- Images plus légères
- Sécurité améliorée
- Build cache optimisé
Kubernetes: Orchestration
Deployment
CodeapiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
spec:
containers:
- name: web
image: myapp:latest
ports:
- containerPort: 3000
resources:
limits:
memory: "256Mi"
cpu: "500m"
Auto-scaling
CodeapiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: web-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: web-app
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 70
Bonnes Pratiques
- Images minimales : Alpine ou Distroless
- Health checks : Liveness et Readiness probes
- Secrets management : Vault ou Sealed Secrets
- GitOps : ArgoCD ou Flux
Conclusion
Docker + Kubernetes = Infrastructure scalable et résiliente.