Questions d'entretien DevOps
1. Qu'est-ce que le DevOps et quels problèmes resout-il ?
Le DevOps est une culture et un ensemble de pratiques qui rapprochent les équipes de développement (Dev) et d'opérations (Ops). Il résout le problème historique du "mur de la confusion" ou les devs livrent du code et les ops doivent le faire tourner en production sans contexte. Les piliers : collaboration entre équipes, automatisation des processus, mesure continue des performances, et partage des responsabilités. Résultat : des livraisons plus rapides, plus fiables et plus fréquentes.
2. Expliquez la différence entre CI, CD (Continuous Delivery) et CD (Continuous Deployment).
Continuous Intégration (CI) : chaque commit est automatiquement construit et teste. L'objectif est de détecter les erreurs rapidement. Continuous Delivery : le code est toujours dans un état déployable en production. Le déploiement en production reste une décision manuelle (un clic). Continuous Deployment : chaque changement qui passe les tests est automatiquement deploye en production sans intervention humaine. La majorité des entreprises pratiquent la Continuous Delivery plutôt que le Deployment complet.
3. Comment concevez-vous un pipeline CI/CD ?
Un pipeline typique : Build (compilation, résolution des dépendances), Tests unitaires (rapides, première ligne de défense), Analyse statique (linting, sécurité SAST), Tests d'intégration (avec services externes), Build de l'artefact (image Docker, package), Déploiement en staging (environnement de pre-production), Tests end-to-end et smoke tests, Déploiement en production (avec stratégie canary ou blue-green), Vérification post-deploiement (health checks, métriques).
4. Qu'est-ce que l'Infrastructure as Code et quels sont ses avantages ?
L'IaC consiste à définir l'infrastructure dans des fichiers de configuration versionnes plutôt que par des actions manuelles. Outils : Terraform (multi-cloud, HCL), CloudFormation (AWS), Pulumi (langages de programmation), Ansible (configuration). Avantages : reproductibilite (un même code cree le même environnement), versionnement (git), revue de code pour l'infrastructure, automatisation des tests, documentation vivante, et capacité à reconstruire l'infrastructure en cas de sinistre.
5. Expliquez les stratégies de déploiement (blue-green, canary, rolling).
Blue-Green : deux environnements identiques. Le trafic est bascule de l'ancien (blue) au nouveau (green) instantanément. Rollback instantané en rebasculant. Canary : le nouveau code est deploye sur un petit pourcentage de serveurs/utilisateurs. Si les métriques sont bonnes, le déploiement est progressivement etendu. Rolling : mise à jour progressive serveur par serveur. Chaque stratégie à ses avantages : blue-green pour le rollback rapide, canary pour la détection de problèmes, rolling pour l'économie de ressources.
6. Comment surveillez-vous une application en production ?
Les quatre signaux dores (Golden Signals de Google SRE) : latence, trafic, taux d'erreur, saturation. Outils de monitoring : Prometheus + Grafana pour les métriques et dashboards, ELK/OpenSearch pour les logs centralises, Jaeger/Zipkin pour le tracing distribue, PagerDuty/OpsGenie pour l'alerte et l'astreinte. Implémentez des health checks, des alertes basées sur les SLOs, et des dashboards par service.
7. Qu'est-ce que GitOps et comment fonctionne-t-il ?
GitOps utilise Git comme source de verite unique pour l'infrastructure et les deployements. Un opérateur (ArgoCD, Flux) surveille un repository Git et reconcilie l'état réel du cluster avec l'état desire dans Git. Workflow : le développeur modifie un fichier de configuration, cree une pull request, l'équipe revise, le merge declenche le déploiement automatique. Avantages : audit complet via l'historique Git, rollback simple (revert un commit), collaboration via les PR.
8. Comment gerez-vous les secrets en environnement DevOps ?
Ne jamais stocker de secrets en clair dans le code ou les fichiers de configuration. Solutions : HashiCorp Vault (gestion centralisée des secrets avec rotation automatique), AWS Secrets Manager / Azure Key Vault / GCP Secret Manager (services cloud natifs), SOPS (chiffrement de fichiers dans Git), External Secrets Operator (synchronise les secrets cloud vers Kubernetes). Les variables d'environnement dans les pipelines CI/CD doivent aussi être chiffrees.
9. Expliquez le concept de Site Reliability Engineering (SRE).
Le SRE est l'approche de Google pour les opérations, appliquant les principes d'ingénierie logicielle aux problèmes d'infrastructure. Concepts clés : SLO (objectif de fiabilité mesurable), Error Budget (budget d'indisponibilite tolere), Toil (travail répétitif à automatiser), Blameless Post-Mortems (analyse d'incidents sans blame), On-Call (astreinte structurée). L'objectif est d'equilibrer fiabilité et velocite de livraison grace aux budgets d'erreur.
10. Comment optimisez-vous les coûts d'infrastructure cloud ?
Stratégies : Right-sizing (adapter la taille des instances à la charge réelle), Reserved Instances / Savings Plans (engagement à long terme pour des remises), Spot/Preemptible Instances (instances a prix réduit pour les charges tolerantes aux interruptions), Auto-scaling (adapter les ressources à la demande), nettoyage des ressources inutilisees, monitoring des coûts (AWS Cost Explorer, tags de facturation), et serverless pour les charges intermittentes.