Esiste un'importante distinzione tra rendere altamente disponibile un servizio e rendere altamente disponibile una singola macchina.
Nella maggior parte dei casi l'obiettivo è rendere il servizio altamente disponibile e la disponibilità delle singole macchine è solo un mezzo per raggiungere tale obiettivo. Tuttavia, esiste un limite a quanto è possibile raggiungere l'obiettivo migliorando la disponibilità delle singole macchine.
Anche se è possibile eliminare tutti i tempi di inattività dovuti alla necessità di aggiornare il software, le singole macchine non saranno ancora disponibili al 100%. Pertanto, per aumentare la disponibilità del servizio al di sopra della disponibilità delle singole macchine, è necessario progettare la ridondanza a un livello superiore. L'ultima frase della tua domanda mostra che almeno in linea di principio lo sai.
Se si progetta un servizio per essere più disponibile di quello che le singole macchine sono in grado di offrire, non c'è più la pressione per ottenere un'alta disponibilità delle singole macchine. Pertanto, per i servizi a disponibilità elevata non è necessario evitare i riavvii. Invece puoi sacrificare un po 'di affidabilità delle singole macchine per realizzare risparmi che possono essere destinati ad altre aree in cui puoi ottenere guadagni molto più alti in termini di affidabilità.
Una volta che il sistema di alto livello è stato progettato per essere affidabile nel caso in cui singoli componenti hardware non funzionino, il patching live dei kernel cambia da un vantaggio a un rischio.
È un rischio perché possono esserci sottili differenze tra il comportamento di una macchina con patch live e una macchina che è stata avviata con la versione del kernel più recente. Questo può introdurre un bug latente che può causare un'interruzione al successivo riavvio di una macchina. Questo rischio è amplificato dal riavvio per vedere una lavagna pulita come un metodo per mitigare alcune interruzioni.
Un giorno potresti avere un'interruzione in cui pensi che potrebbe essere utile riavviare il computer. Ma al riavvio si viene colpiti dal bug latente che impedisce alla macchina di tornare nello stato desiderato. Il patching in tempo reale non è l'unico modo in cui può verificarsi un bug così latente, potrebbe anche accadere a causa di qualcosa di banale come un servizio che è stato abilitato manualmente e non è mai stato configurato per l'avvio durante l'avvio, o essendo stato configurato per l'avvio troppo presto in modo tale che non riesce a venire a causa di dipendenze insoddisfatte.
Per tali motivi, un servizio a disponibilità elevata potrebbe effettivamente essere più semplice da ottenere con i riavvii regolari dei singoli computer a una velocità sufficientemente bassa da poter rilevare i problemi e mettere in pausa la sequenza dei riavvii quando si verificano problemi.