Une vérification de santé est une sonde périodique automatisée envoyée à un service ou à un endpoint pour déterminer s'il est sain, non sain ou dégradé. Les équilibreurs de charge, les systèmes de basculement DNS et les orchestrateurs de conteneurs utilisent les vérifications de santé pour router le trafic uniquement vers les instances fonctionnelles et pour déclencher des actions de basculement ou de récupération quand les services deviennent indisponibles.
Les mécanismes courants de vérification de santé incluent :
- Vérification TCP : Tente une poignée de main TCP vers un hôte et un port spécifiques. Le succès indique que le service écoute ; aucune validation au niveau de la couche application n'est effectuée.
- Vérification ICMP : Envoie un ping standard (Echo Request/Reply selon RFC 792) pour tester la connectivité réseau de base.
- Vérification HTTP(S) : Envoie une requête GET ou HEAD vers un chemin spécifique (tel que
/healthou/status) et valide le code de réponse HTTP (généralement 200) et le contenu optionnel du corps de la réponse. - Vérification de protocole personnalisé : Sondes spécifiques à l'application qui vérifient la logique du service ou la disponibilité des données.
Les vérifications de santé s'exécutent à intervalles fixes (souvent toutes les 5–30 secondes). Après un nombre configuré d'échecs ou de succès consécutifs, le système marque une instance comme non saine ou saine. Si un équilibreur de charge détecte un backend non sain, il cesse d'envoyer de nouvelles requêtes à cette instance jusqu'à sa récupération.
TipDéfinissez des endpoints de vérification de santé significatifs qui reflètent la véritable disponibilité du service—pas seulement que le processus s'exécute. Un service peut retourner HTTP 200 mais être incapable d'accéder à sa base de données, par exemple.
Les vérifications de santé sont essentielles pour maintenir le temps d'activité et réduire le MTTR en automatisant la détection et l'isolation des défaillances.