Questions d'entretien pour un Ingénieur Fiabilité Site Junior : Guide Complet

Milad Bonakdar
Auteur
Maîtrisez les fondamentaux essentiels de SRE avec des questions d'entretien complètes couvrant la surveillance, la réponse aux incidents, les SLO, l'automatisation, le dépannage Linux et les pratiques de fiabilité pour les postes SRE juniors.
Introduction
L'ingénierie de la fiabilité des sites (SRE) combine l'ingénierie logicielle et l'administration des systèmes pour construire et exploiter des systèmes fiables à grande échelle. En tant que SRE junior, vous vous concentrerez sur la surveillance, la réponse aux incidents, l'automatisation et l'apprentissage des pratiques de fiabilité qui assurent le bon fonctionnement des services.
Ce guide couvre les questions d'entretien essentielles pour les SRE juniors, organisées par sujet pour vous aider à vous préparer efficacement. Chaque question comprend des réponses détaillées, des exemples pratiques et des scénarios concrets.
Principes fondamentaux de la SRE
1. Qu'est-ce que l'ingénierie de la fiabilité des sites et en quoi diffère-t-elle de DevOps ?
Réponse : La SRE est l'approche de Google pour exploiter des systèmes de production de manière fiable à grande échelle.
Principes clés :
- Traiter les opérations comme un problème logiciel
- Maximum 50 % du temps consacré au travail opérationnel (toil)
- Budgets d'erreur pour équilibrer la fiabilité et la vitesse
- Post-mortem sans blâme
- Déploiements progressifs et rollbacks automatisés
SRE vs DevOps :
La SRE met en œuvre les principes DevOps avec des pratiques et des métriques spécifiques.
Rareté : Très fréquent
Difficulté : Facile
2. Expliquez les SLI, SLO et les budgets d'erreur.
Réponse : Ce sont des concepts SRE fondamentaux pour mesurer et gérer la fiabilité :
SLI (Service Level Indicator) :
- Mesure quantitative du niveau de service
- Exemples : Latence, disponibilité, taux d'erreur
SLO (Service Level Objective) :
- Valeur cible pour un SLI
- Exemple : "99,9 % des requêtes aboutissent"
Budget d'erreur :
- Taux d'échec autorisé (100 % - SLO)
- Utilisé pour équilibrer la fiabilité et la vitesse de développement des fonctionnalités
Rareté : Très fréquent
Difficulté : Moyenne
3. Qu'est-ce que le toil et comment le réduire ?
Réponse : Le toil est un travail opérationnel répétitif et manuel qui :
- Est manuel (nécessite une action humaine)
- Est répétitif
- Peut être automatisé
- N'a pas de valeur durable
- Croît linéairement avec la croissance du service
Exemples de toil :
- Redémarrer manuellement les services
- Copier des fichiers entre les serveurs
- Mettre à l'échelle manuellement les ressources
- Réponses répétitives aux tickets
Stratégies de réduction du toil :
Objectif de la SRE : Maintenir le toil en dessous de 50 % du temps, automatiser le reste.
Rareté : Très fréquent
Difficulté : Facile-Moyenne
Surveillance et observabilité
4. Quelle est la différence entre la surveillance et l'observabilité ?
Réponse : Surveillance : Collecte de métriques et d'alertes prédéfinies
- Connues-inconnues : Vous savez ce qu'il faut surveiller
- Tableaux de bord, alertes, métriques
- Exemples : CPU, mémoire, taux de requêtes
Observabilité : Comprendre l'état du système à partir des sorties
- Inconnues-inconnues : Déboguer les problèmes que vous n'aviez pas anticipés
- Logs, métriques, traces combinés
- Peut répondre à des questions arbitraires
Trois piliers de l'observabilité :
- Métriques : Nombres agrégés (CPU, latence)
- Logs : Événements discrets
- Traces : Flux de requêtes à travers le système
Exemple : Prometheus + Grafana + Loki
Rareté : Fréquent
Difficulté : Moyenne
5. Comment configurer des alertes efficaces ?
Réponse : De bonnes alertes sont exploitables, significatives et ne causent pas de fatigue.
Meilleures pratiques pour les alertes :
1. Alerter sur les symptômes, pas sur les causes :
2. Inclure des liens vers des runbooks :
3. Utiliser des niveaux de gravité appropriés :
4. Éviter la fatigue des alertes :
- Utiliser
for:pour éviter les fluctuations - Grouper les alertes associées
- Définir des seuils appropriés
- Examiner et ajuster régulièrement
Rareté : Très fréquent
Difficulté : Moyenne
Réponse aux incidents
6. Décrivez votre processus de réponse aux incidents.
Réponse : Une réponse structurée aux incidents minimise l'impact et le temps de récupération :
Étapes de la réponse aux incidents :
1. Détection :
- Une alerte se déclenche ou un utilisateur signale un problème
- Accuser réception de l'alerte
- Créer un canal d'incident
2. Triage :
3. Atténuation :
4. Résolution :
- Corriger la cause première
- Vérifier que les métriques reviennent à la normale
- Surveiller la récurrence
5. Post-mortem (sans blâme) :
Rareté : Très fréquent
Difficulté : Moyenne
7. Comment dépanner un service qui connaît une latence élevée ?
Réponse : Approche de débogage systématique :
Causes courantes :
- Requêtes lentes de la base de données
- Délais d'attente des API externes
- Pression sur la mémoire (pauses GC)
- Problèmes de réseau
- Épuisement des ressources
- Chemins de code inefficaces
Rareté : Très fréquent
Difficulté : Moyenne
Automatisation et Scripting
8. Écrivez un script pour vérifier si un service est sain et le redémarrer si nécessaire.
Réponse : Script de contrôle de l'état et d'auto-remédiation :
Rareté : Fréquent
Difficulté : Moyenne
Pratiques de fiabilité
9. Qu'est-ce qu'un runbook et pourquoi est-ce important ?
Réponse : Un runbook est une procédure documentée pour gérer les tâches opérationnelles et les incidents.
Structure d'un runbook :
2. Identifier le goulot d'étranglement
- Vérifier le temps de requête de la base de données
- Vérifier les appels d'API externes
- Vérifier le taux de succès du cache
- Examiner les déploiements récents
3. Vérifier les dépendances
Étapes d'atténuation
Corrections rapides (< 5 minutes)
- Mettre à l'échelle les instances de l'application
- Augmenter temporairement le TTL du cache
Si le problème persiste
- Annuler le déploiement récent
- Activer la limitation du débit
Résolution
- Corriger la cause première (requête lente, code inefficace)
- Déployer la correction
- Surveiller pendant 30 minutes
- Réduire la capacité à la normale
Escalade
Si la résolution est impossible dans les 30 minutes :
- Escalader à : @backend-team
- Canal Slack : #incidents
- De garde : Utiliser la politique d'escalade de PagerDuty
Associé
2. Circuit Breaker :
3. Délais d'attente et tentatives de réexécution :
Rareté : Fréquent
Difficulté : Moyenne
Notions de base sur la conteneurisation
11. Qu'est-ce que Docker et en quoi diffère-t-il des machines virtuelles ?
Réponse : Docker est une plateforme de conteneurisation qui regroupe les applications avec leurs dépendances.
Conteneurs vs Machines virtuelles :
Principales différences :
Notions de base sur Docker :
Exemple de Dockerfile :
Construire et exécuter :
Docker Compose (Multi-conteneur) :
Exécuter avec Docker Compose :
Meilleures pratiques :
- Utiliser des images de base officielles
- Minimiser le nombre de couches
- Ne pas exécuter en tant que root
- Utiliser .dockerignore
- Étiqueter correctement les images
- Rechercher les vulnérabilités
Rareté : Très fréquent
Difficulté : Facile-Moyenne
Contrôle de version et déploiement
12. Expliquez les flux de travail Git et comment vous gérez les déploiements.
Réponse : Git est essentiel pour le contrôle de version et l'automatisation du déploiement.
Flux de travail Git courant :
Commandes Git de base :
Stratégie de branchement :
1. Gitflow :
main: Code prêt pour la productiondevelop: Branche d'intégrationfeature/*: Nouvelles fonctionnalitésrelease/*: Préparation de la versionhotfix/*: Corrections d'urgence
2. Développement basé sur le tronc :



