Il existe une distinction importante entre rendre un service hautement disponible et rendre une machine individuelle hautement disponible.
Dans la plupart des cas, l'objectif est de rendre le service hautement disponible, et la disponibilité des machines individuelles n'est qu'un moyen d'atteindre cet objectif. Cependant, il existe une limite dans la mesure dans laquelle vous pouvez atteindre l'objectif en améliorant la disponibilité des machines individuelles.
Même si vous pouviez supprimer tous les temps d'arrêt en raison de la nécessité de mettre à jour le logiciel, les machines individuelles ne seront toujours pas disponibles à 100%. Ainsi, pour augmenter la disponibilité du service au-dessus de la disponibilité des machines individuelles, vous devez concevoir la redondance à un niveau supérieur. La dernière phrase de votre question montre qu'au moins en principe vous le savez.
Si vous concevez un service pour qu'il soit plus disponible que les machines individuelles ne peuvent le fournir, il n'y a plus de pression pour atteindre une haute disponibilité des machines individuelles. Ainsi, pour les services hautement disponibles, il n'est pas nécessaire d'éviter les redémarrages. Au lieu de cela, vous pouvez sacrifier une certaine fiabilité des machines individuelles pour faire des économies qui peuvent être mises dans d'autres domaines où vous pouvez obtenir des gains de fiabilité beaucoup plus élevés.
Une fois que le système de haut niveau est conçu pour être fiable en cas de défaillance de composants matériels individuels, la correction en direct des noyaux passe d'un avantage à un risque.
C'est un risque car il peut y avoir de subtiles différences entre le comportement d'une machine qui a été corrigée en direct et une machine qui a été démarrée avec la dernière version du noyau. Cela peut introduire un bogue latent qui peut provoquer une panne au prochain redémarrage d'une machine. Ce risque est amplifié par le redémarrage pour obtenir une table rase vue comme une méthode pour atténuer certaines pannes.
Un jour, vous pourriez avoir une panne où vous pensez que le redémarrage de la machine pourrait aider. Mais lorsque vous redémarrez, vous êtes touché par le bug latent empêchant la machine de revenir dans l'état souhaité. Le patching en direct n'est pas le seul moyen pour qu'un tel bug latent puisse se produire, il pourrait aussi bien se produire en raison de quelque chose d'aussi banal qu'un service ayant été activé manuellement et jamais configuré pour démarrer au démarrage, ou ayant été configuré pour démarrer trop tôt de sorte qu'il ne se présente pas en raison de dépendances non satisfaites.
Pour ces raisons, un service hautement disponible peut être plus facile à réaliser avec des redémarrages réguliers de machines individuelles à un rythme suffisamment lent pour que vous puissiez détecter les problèmes et suspendre la séquence de redémarrages une fois que les problèmes surviennent.