Come si calcola l'accordo sul livello di servizio composto (SLA) per i servizi cloud?


27

I servizi cloud ospitati da Amazon Web Services , Azure , Google e molti altri pubblicano il S ervizio L evel A greement , o SLA, per i singoli servizi che forniscono. Architetti, ingegneri di piattaforma e sviluppatori sono quindi responsabili di metterli insieme per creare un'architettura che fornisca l'hosting per un'applicazione.

Presi in isolamento, questi servizi di solito forniscono qualcosa nell'intervallo da tre a quattro nove di disponibilità:

  • Azure Traffic Manager: 99,99% o "quattro nove".
  • SQL Azure: 99,99% o "quattro nove".
  • Servizio app di Azure: 99,95% o "tre nove cinque".

Tuttavia, se combinati insieme in architetture esiste la possibilità che un singolo componente possa subire un'interruzione con conseguente disponibilità complessiva che non è uguale ai servizi del componente.

Disponibilità del composto seriale

Disponibilità seriale

In questo esempio ci sono tre possibili modalità di errore:

  • SQL Azure non è attivo
  • Il servizio app non è attivo
  • Entrambi sono in calo

Pertanto la disponibilità complessiva di questo "sistema" deve essere inferiore al 99,95%. La mia logica per pensare questo è se lo SLA per entrambi i servizi era:

Il servizio sarà disponibile 23 ore su 24

Poi:

  • Il servizio app potrebbe essere disponibile tra 0100 e 0200
  • Il database esce tra 0500 e 0600

Entrambe le parti componenti sono nel loro SLA ma il sistema totale non è stato disponibile per 2 ore su 24.

Disponibilità seriale e parallela

Disponibilità seriale e parallela

In questa architettura ci sono un gran numero di modalità di errore, principalmente:

  • SQL Server in RegionA non è attivo
  • SQL Server in RegionB non è attivo
  • Il servizio app in RegionA non è attivo
  • Il servizio app in RegionB non è attivo
  • Gestione traffico non è attivo
  • Combinazioni di cui sopra

Poiché Traffic Manager è un interruttore, è in grado di rilevare un'interruzione in entrambe le regioni e instradare il traffico verso l'area di lavoro, tuttavia esiste ancora un singolo punto di errore sotto forma di Traffic Manager, quindi la disponibilità totale del "sistema" non può essere superiore al 99,99%.

In che modo è possibile calcolare e documentare la disponibilità composta dei due sistemi sopra indicati per l'azienda, potenzialmente richiedendo una nuova ricerca se l'azienda desidera un livello di servizio superiore a quello che l'architettura è in grado di fornire?

Se vuoi annotare i diagrammi, li ho creati in Lucid Chart e ho creato un collegamento multiuso, tieni presente che chiunque può modificarlo in modo da poter creare una copia delle pagine da annotare.


SLA più basso da SPOF, supponendo che la tua app sia in grado di affrontare l'interruzione della sessione?
Tensibai,

1
@Tensibai - Non credo che possa essere, basandomi sul mio primo esempio se lo SLA per entrambi i servizi fosse disponibile 23 ore su 24, il servizio app potrebbe essere tra 0100 e 0200 e il database tra 0500 e 0600, entrambi i componenti sono nel loro SLA ma il sistema totale non era disponibile per 2 ore su 24. Ha senso?
Richard Slater,

Sì, ha senso, ma in questo caso il risultato dovrebbe essere il prodotto di tutti i no?
Tensibai,

Voglio dire app 99,95 x sql 99,95 dovrebbe essere la disponibilità complessiva del gruppo
Tensibai

Tieni presente anche che puoi costruire un sistema più affidabile dei suoi componenti, attraverso tentativi o failover o degrado anziché un errore completo.
Xiong Chiamiov il

Risposte:


19

Lo prenderei come un problema di matematica con lo SLA che ha la probabilità di essere OK.

In questo caso possiamo fare affidamento sulle regole di probabilità per ottenere un totale.

Per il tuo primo caso, la probabilità che il servizio app (A) e il servizio Sql (B) siano inattivi contemporaneamente è il prodotto della loro probabilità:

P(A)*P(B) = 0.0005 * 0.0005 = 0,00000025

La probabilità che uno di questi sia in calo è la somma della loro probabilità:

P(A)+P(B) = 0.001

Quando due eventi sono indipendenti la formula risultante da prendere in considerazione la probabilità che entrambi siano in calo è:

P(A,B) = P(A) + P(B) - P(A)*P(B) = 0.001 - 0,00000025 = 0,00099975

Quindi lo SLA complessivo sarebbe 1 - 0,00099975 = 0,99900025in percentuale99.900025 %

Una semplificazione è il prodotto del primo probabilità: 0.9995 * 0.9995 = 0,99900025.

Applicato all'interruzione di 1h / 24h (4.166666% di un giorno) ciò dà (i decimali sono abbreviati):

0.0416 + 0.0416 - (0.0416 * 0.0416) = 0,081597222

Quindi la probabilità di essere OK è 1 - 0.0816 = 0.9184in percentuale:91,84%

24 * 0.0816 = 1.95 h

Questo è meno del caso peggiore di 2 ore perché c'è una possibilità che entrambi siano inattivi contemporaneamente.

Tenendo presente questo, potresti notare la disponibilità per ciascuno 95,84%e 0,958333333 * 0,958333333 = 0,918402778quale è il nostro 91.84%dall'alto (scusami per i decimali completi qui, ma sono necessari per la dimostrazione)

Ora per il tuo secondo caso, inizieremo a guadagnare dalla nostra probabilità composta per ogni regione (mi dispiace di aver ignorato la modifica per SQL per mantenerla ragionevole), supponendo che non ci sia probabilità indipendente per la regione stessa e che ogni regione sia isolata e come tale un errore DB ne riduce solo la regione.

Abbiamo la probabilità OK del gestore del traffico P(T) = 0.9999e ogni app + coppia DB con una probabilità OK P(G) = 0,99900025da

Quanta regione abbiamo un ruolo in quanto dobbiamo applicare il prodotto della probabilità di fallimento solo per ottenere la probabilità che entrambe le regioni siano in calo allo stesso tempo: il
0,00099975 * 0,00099975 = 0,0000009995000625che significa una disponibilità complessiva di almeno una regione di99,049375 %

Ora disponiamo della disponibilità complessiva delle regioni, il prodotto con il gestore del traffico ci fornisce la disponibilità complessiva del sistema:

0.9999 * 0,9999990004999375 = 0,99989900059988750625

La disponibilità complessiva è 99.989900 %

Un'altra fonte come spiegazione è disponibile sui documenti di Azure (link per gentile concessione di Raj Rao )


La disponibilità complessiva sembra molto bassa - infatti aggiungendo una regione e un gestore del traffico aggiuntivi lo SLA è un ordine di grandezza inferiore rispetto a se fosse solo una singola regione. Sto cercando di scavare come facevo per le reti dalla parte posteriore del mio cervello.
Richard Slater,

Accidenti! Ero sicuro che stavo impazzendo.
Richard Slater,

@RichardSlater matematica corretta
Tensibai

2
@BruceBecker probabilmente sì, sembra che l'IEEE abbia pubblicato ricerche sull'argomento, sospetto tuttavia, dato lo scopo di calcolare questi numeri, si tratta più di avere "prove" concrete che tu abbia, o non necessiti, capacità di alta disponibilità aggiunto a un sistema, ovvero utilizziamo questi numeri per guidare le decisioni costi-benefici basate sulla propensione al rischio delle aziende. Costruire un modello bayesiano potrebbe non rappresentare il miglior uso del nostro tempo.
Richard Slater,

1
@BruceBecker Sì, parte del prob è legata (lo stesso datacenter si sta scaricando ed entrambi i servizi sono al suo interno, il che deve essere basso), per il resto penso che possiamo tranquillamente presumere che i servizi app e i servizi sql funzionino su sistemi diversi e è improbabile che fallire allo stesso tempo per lo stesso motivo . Approfondire la matematica richiederebbe una documentazione precisa su come viene eseguita l'architettura di Azure e quindi può essere risposto solo da qualcuno di Microsoft.
Tensibai,

18

Dopo aver letto l'eccellente risposta di Tensibai , mi sono reso conto che ero in grado di calcolarlo ai fini dell'analisi della rete. Ho estratto la mia copia di Fondamenti di rete ad alta disponibilità di Chris Oggerino e ho avuto una crepa nel risolvere questo problema, non proprio i primi presidi.

Prendere il mio esempio seriale direttamente dalla risposta di Tensibai è semplicemente un caso di moltiplicazione della probabilità che ciascun componente sia disponibile all'altro:

Disponibilità seriale

Così

99,95% * 99,95% = 99,9%

Calcolarlo in parallelo è un po 'più complicato in quanto dobbiamo considerare quale sarà la percentuale di disponibilità non disponibile:

Disponibilità seriale e parallela

Il calcolo viene eseguito come segue:

  1. Moltiplicare il ONU disponibilità delle due regioni insieme.

    0,1% * 0,1% = 0,0001%

  2. Converti questo in disponibilità

    100% - 0,0001% = 99.9999%

  3. Moltiplicare la disponibilità di Gestione traffico per la disponibilità delle due aree.

    99,99% * 99,9999% = 99,9899%

  4. Il risultato è l'intera disponibilità del sistema.

    Il 99,9899% è vicino al 99,99%

Ho finito con Excel per eseguire i calcoli, ecco i valori:

Valori di Excel

... e le formule ...

Formule di Excel


1
Questo è tutto, in un modo più semplice del mio (ho sentito il bisogno di dimostrare la matematica dietro :))
Tensibai,

D'accordo, la tua risposta è davvero buona per la matematica.
Richard Slater,

SQL Azure è del 99,99% e non del 99,95%
Jeffery Tang,

1
@JefferyTang (probabilmente) era al momento della scrittura di domande / risposte (non ricordo esattamente) e il valore effettivo non cambia la metodologia per ottenere la risposta a "Come calcolare lo SLA composto dalle singole parti SLA" che è la vera domanda.
Tensibai,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.