Dichiarazione di non responsabilità: le informazioni riportate di seguito forniscono alcune indicazioni di carattere generale in merito al prodotto. Ha esclusivamente scopo informativo e non può essere incorporato in alcun contratto. Non rappresenta un impegno nel fornire materiale, codice o funzionalità e non vi si deve fare affidamento durante le decisioni di acquisto. Lo sviluppo, il rilascio, i tempi e i prezzi di tutte le funzioni o funzionalità descritte per i prodotti Oracle possono cambiare e rimangono a esclusiva discrezione di Oracle Corporation.
Questa sezione di domande e risposte risponde a domande comuni sul modo in cui Oracle raggiunge la resilienza e la disponibilità continua dei servizi dell'infrastruttura di base e della piattaforma di hosting. I clienti di Oracle Cloud possono essere interessati a queste risposte per diversi motivi:
Non sono previste distinzioni di questo tipo. Oracle, piuttosto, suddivide i servizi in categorie in base al livello di dipendenza, all'ambito della disponibilità e al piano dati rispetto al piano di controllo. Queste categorie hanno lo scopo di fornire vari pro e contro utili a livello di disponibilità, durabilità, prestazioni e praticità.
Livelli dipendenza
Questi livelli potrebbero essere considerati separazioni logiche (layer) o unità di distribuzione (tier) in un diagramma a blocchi a livello di architettura. Ogni layer può dipendere solo da quelli presenti sotto di esso.
Dal basso verso l'alto:
Ambito disponibilità
Per raggiungere gli obiettivi in termini di disponibilità e durabilità di un servizio, viene scelto uno degli ambiti di disponibilità seguenti per ogni servizio:
Differenza tra piano di controllo e piano dati
Il piano dati di un servizio è la raccolta di interfacce e componenti di elaborazione dati che implementano la funzionalità del servizio che le applicazioni dovranno usare. Ad esempio, il piano dati della rete cloud virtuale (VCN) include il sistema di elaborazione a pacchetti di rete, i router virtualizzati e i gateway, mentre il piano dati dei volumi a blocchi comprende l'implementazione del protocollo iSCSI e il sistema di storage replicato basato sugli errori per i dati del volume.
Il piano di controllo di un servizio è il set di API e componenti responsabile dei seguenti task:
Utilizziamo lo stesso set di principi tecnici per ottenere resilienza e disponibilità per tutti i tipi di servizio, perché le sfide tecniche fondamentali della creazione di sistemi distribuiti con tolleranza agli errori, scalabili e distribuiti sono le stesse per tutti i tipi di servizio.
Per raggiungere la resilienza e la disponibilità continua, è necessario comprendere e poi gestire tutte le cause dell'indisponibilità, quali prestazioni degradate e errori non gestiti, nei sistemi su scala cloud. Esiste un enorme numero di cause di questo tipo ed è per questo che le raggruppiamo in categorie in base alla loro natura fondamentale
L'analisi della disponibilità dei sistemi IT Enterprise si concentra da sempre sulla categoria di guasto hardware. Tuttavia, nel caso dei sistemi cloud, il guasto dell'hardware è un problema relativamente secondario e ben noto. Ora è possibile evitare o mitigare la maggior parte dei singoli punti di guasto hardware. Ad esempio, i rack possono disporre di due alimentatori e di unità di distribuzione dell'alimentazione associate. Inoltre, molti componenti supportano l'hot swap. Problemi e perdite hardware su larga scala sono naturalmente possibili, ad esempio a causa di calamità naturali. Tuttavia, dalla nostra esperienza e dai report contenuti nelle analisi a posteriori pubbliche di altri fornitori di soluzioni cloud è emerso che il guasto o la perdita di un intero data center accade molto raramente, rispetto alle altre cause di indisponibilità. È comunque necessario gestire i guasti hardware su larga scala (ad esempio con un disaster recovery e altri meccanismi), ma non si tratta certo del problema di disponibilità più importante.
Le cause principali dell'indisponibilità nei sistemi di scala cloud sono le seguenti:
Queste problematiche sono universali: fanno parte delle "leggi della fisica" per i sistemi distribuiti su scala cloud.
Per superare il problema, adottiamo strategie ingegneristiche comprovate per ognuna delle categorie precedenti. Ecco le più importanti:
Principi dell'architettura e della progettazione del sistema
Sebbene esistano molti di questi principi, ci concentreremo su quelli più pertinenti alla resilienza e alla disponibilità.
Computazione orientata al recupero
Per gestire i bug software e gli errori da parte degli operatori, che hanno effetti relativamente localizzati, seguiamo i principi della computazione orientata al recupero1. A livello generale, ciò significa che invece di provare a garantire l'assenza assoluta di problemi (condizione impossibile da testare), ci concentriamo sulla gestione di qualsiasi problema con discrezione, in modo tale che sia possibile eseguire i test. In particolare, ci impegniamo a ridurre il tempo medio di recupero (MTTR), che è una combinazione di tempi medi per rilevare, diagnosticare e mitigare.
Il nostro scopo è quello di recuperare così rapidamente che gli utenti non sono impattati dal problema. Ecco i punti da noi seguiti per raggiungere questo obiettivo:
Ridurre al minimo gli effetti dei problemi
Per gestire i bug e gli errori che potrebbero avere effetti più estesi, creiamo meccanismi che riducono al minimo il "raggio di esplosione" di qualsiasi problema. Ciò significa che dedichiamo la nostra attenzione a limitare drasticamente il numero di clienti, sistemi o risorse interessate dai problemi, inclusi quelli particolarmente impegnativi associati a "presenze di disturbo" multi-tenant, sovraccarico offerto, capacità ridotta e thrashing distribuito. A tale scopo, utilizzare vari limiti di isolamento e procedure di gestione delle modifiche (vedere le sezioni seguenti).
Concetti architettonici derivanti da principi di progettazione
Esistono molti di questi concetti, ma verranno descritti i concetti per limitare il raggio di esplosione.
Concetti di posizionamento racchiusi nella nostra API pubblica: region, domini di disponibilità e domini di errore
Poiché il concetto di dominio di errore è relativamente nuovo, lo descriveremo in un modo più dettagliato.
I domini di errore vengono usati per limitare il raggio di esplosione dei problemi che si verificano quando un sistema viene modificato in modo attivo: ad esempio, distribuzioni, applicazione di patch, riavvii dell'hypervisor e manutenzione fisica.
La garanzia è che, in un determinato dominio di disponibilità, le risorse al massimo in un dominio di errore vengano modificate in qualsiasi punto specifico nel tempo. Se qualcosa va storto nel processo di modifica, alcune o tutte le risorse nel dominio di errore potrebbero non essere disponibili per un po' di tempo, ma gli altri domini di errore nel dominio di disponibilità non vengono interessati. Ogni dominio di disponibilità contiene almeno tre domini di errore per consentire che i sistemi di replica basati su quorum (ad esempio, Oracle Data Guard) siano ospitati con alta disponibilità all'interno di un singolo dominio di disponibilità.
Di conseguenza, per una categoria dominante di problemi inerenti alla disponibilità, quali bug software, errori di configurazione, errori commessi dagli operatori e problematiche a livello di prestazioni durante una procedura di modifica, ogni dominio di errore svolge il ruolo di data center logico distinto all'interno di un dominio di disponibilità.
I domini di errore, inoltre, proteggono da alcuni tipi di errori hardware localizzati. Le proprietà dei domini di errore garantiscono che le risorse inserite in domini di errore differenti non condividano, nei limiti del possibile, alcun potenziale singolo punto di guasto hardware all'interno del dominio di disponibilità. Ad esempio, le risorse in domini di errore diversi non condividono lo stesso switch di rete "top-of-rack" perché la progettazione standard di tali switch manca di ridondanza.
La capacità dei domini di errore di proteggersi da problemi in hardware o nell'ambiente fisico si ferma a livello locale. A differenza dei domini di disponibilità e delle aree, i domini di errore non forniscono alcun isolamento fisico dell'infrastruttura su larga scala. Nel recondito caso in cui si verifichi un disastro naturale o un guasto in tutta l'infrastruttura del dominio di disponibilità, è probabile che ne vengano interessate le risorse presenti in più domini di errore contemporaneamente.
I nostri servizi interni utilizzano i domini di errore allo stesso modo in cui dovrebbero farlo i clienti. Ad esempio, i servizi di volumi a blocchi, storage degli oggetti e storage di file memorizzano le repliche dei dati in tre domini di errore separati. Tutti i componenti dei piani di controllo e dati vengono gestiti in hosting in tutti e tre i domini di errore (o in una region con più domini di disponibilità, in più domini di disponibilità).
Celle di servizio
Le celle del servizio consentono di limitare il raggio di esplosione dei problemi verificatisi anche quando un sistema non viene modificato in modo attivo. Tali problemi possono sorgere perché il carico di lavoro di un sistema cloud multi-tenant è soggetto a cambiamenti repentini, anche imponenti, e perché possono verificarsi guasti parziali in qualsiasi sistema largamente distribuito in qualunque momento. Questi scenari potrebbero attivare impercettibili bug nascosti o problemi emergenti legati alle prestazioni.
Le celle dei servizi, inoltre, limitano il raggio di esecuzione in alcuni scenari rari ma impegnativi in cui il sistema viene modificato in modo attivo. Un classico esempio è quando la distribuzione verso un singolo dominio di errore ha esito positivo, vale a dire quando non ci errori o modifiche alle prestazioni, ma non appena viene aggiornato il secondo dominio di errore o quello finale, le nuove interazioni all'interno del sistema (su scala cloud completa con carico di lavoro di produzione) causano un problema alle prestazioni.
Tieni presente che l'uso delle celle del servizio è un pattern a livello di architettura e non un concetto esplicitamente citato nell'API o nell'SDK Oracle Cloud. Qualsiasi sistema multi-tenant può utilizzare tale pattern, perché non richiede supporto speciale dalla piattaforma cloud.
Le celle del servizio effettuano le operazioni riportate di seguito.
Da ciò ne consegue che ogni cella del servizio non è altro che un tipo di "data center logico": un raggruppamento logico di isolamento delle prestazioni e degli errori all'interno di un singolo dominio di disponibilità o una region.
In sintesi, le celle del servizio e i domini di errore si completano a vicenda nei modi seguenti:
Quando eseguiamo le distribuzioni e l'applicazione delle patch, le proprietà dei domini di errore e delle celle del servizio vengono combinate in una strategia unificata.
Procedure di assistenza tecnica
Poiché garantire l'affidabilità dei sistemi cloud richiede un livello eccellente di funzionalità di test e operative, abbiamo a disposizione un numero elevato di procedure tecniche. Ecco alcune delle procedure più importanti basate sui concetti descritti nella sezione precedente:
Sì. In ogni region, tutti i domini di disponibilità offrono lo stesso set di servizi.
Nelle region con un singolo dominio di disponibilità, i clienti possono utilizzare i domini di errore ( gruppi logici con modalità di errore non correlate tra i gruppi) per raggiungere la maggior parte delle proprietà dei "data center logici" separati. Inoltre, i clienti possono utilizzare più region per il disaster recovery (DR).
Nelle region con più domini di disponibilità, i clienti possono utilizzare i domini di errore nello stesso modo. Inoltre, hanno la possibilità di utilizzare una combinazione di servizi locali del dominio di disponibilità, funzioni di failover tra domini di disponibilità (come DBaaS con Data Guard) e servizi regionali (storage degli oggetti, streaming) per ottenere l'alta disponibilità completa nei vari "data center logici" (domini di disponibilità) di più alto livello. Infine, i clienti possono utilizzare più region per il DR.
In tutti i casi, possono servirsi del concetto di celle del servizio per isolare ulteriormente perfino i problemi più gravi, come il thrashing distribuito.
Per riuscire a ottenere questo risultato, utilizziamo i domini di errore, le celle del servizio e le nostre procedure operative per la distribuzione e la convalida incrementali. Consulta quanto riportato in precedenza nel presente documento.
Sì. Tutte le categorie dei servizi vengono implementate in più data center logici, vale a dire gruppi logici separati di isolamento degli errori e isolamento delle prestazioni, per resilienza e disponibilità continua.
Nelle region con un singolo dominio di disponibilità, offriamo domini di errore come meccanismo per "più data center logici", come descritto in altre sezioni di questo documento.
Nelle region con più domini di disponibilità, offriamo servizi e funzioni che offrono un livello di durabilità fisica dei dati replicati in modo sincrono ancora più elevato (con un rapporto prezzo/prestazioni più ragionevole a causa della distanza tra i domini di disponibilità nell'area e della velocità della luce).
Non offriamo HA automatica o meccanismi di failover tra le region perché si creerebbe una relazione di accoppiamento diretto tra le region e si andrebbe incontro al rischio che i problemi si manifestino in più region contemporaneamente. Rendiamo invece disponibili varie forme di replica asincrona tra le aree e forniamo un elenco di funzioni in costante crescita, quali la copia e il backup asincroni, per consentire il Disaster Recovery tra le region.
È una domanda complessa, quindi per chiarire la riformuleremo in un paio di modi diversi:
La risposta è composta da due parti.
Utilizziamo i principi architettonici che riducono notevolmente il guasto correlato tra i servizi dipendenti. In alcuni casi, questa tecnica riduce la probabilità di un guasto correlato a un grado che può essere ignorato dalla prospettiva del rispetto di un accordo sul livello di servizio (SLA) relativo alla disponibilità.
In particolare, ci serviamo delle celle del servizio descritte nelle sezioni precedenti di questo documento. Le celle consentono di risolvere questo problema perché se il servizio interno A è interessato da un problema in una delle relative dipendenze, il problema con il servizio B è probabilmente limitato a una singola cella. Presumibilmente, altri servizi di livello più elevato, nonché le applicazioni personali del cliente, che utilizzano il servizio B stanno usando altre celle non interessate dal guasto. Si tratta di un'argomento probabilistico che varia a seconda del numero di celle, ma si tratta di un parametro interno nascosto che cambia (aumenta), quindi non viene fornita quantità o garanzia, oltre agli SLA di servizio standalone relativi ai servizi A e B. Tuttavia in pratica, questa situazione consente di eliminare in modo significativo la correlazione dei guasti tra i servizi.
Molti dei nostri servizi interni condivisi, ad esempio i servizi del flusso di lavoro e dei metadati per i piani di controllo nonché il servizio di streaming/messaggistica, utilizzano le celle del servizio per eliminare la correlazione delle indisponibilità relative ai servizi a monte che le utilizzano.
Le linee guida seguenti sono di alto livello perché l'implementazione e i dettagli di basso livello dei servizi possono e devono essere modificati. Tuttavia, per quanto riguarda le dimensioni principali dei servizi di computazione, storage, networking e autenticazione/autorizzazione, indichiamo le dipendenze riportate di seguito.
Per i piani di controllo, ecco le dipendenze comuni:
Alcuni piani di controllo hanno naturalmente dipendenze specifiche del servizio. Ad esempio, il piano di controllo di computazione, quando si avvia un'istanza Bare Metal o VM, dipende dai seguenti elementi:
Per quanto riguarda i piani dati dei servizi di base, il principio generale prevede che ogni piano dati sia progettato espressamente per avere un numero minimo di dipendenze, in modo da garantire alta disponibilità, tempi rapidi per la diagnosi e il recupero. I risultati di questo principio sono i seguenti:
Per quanto riguarda i piani dati IaaS, il principio generale dipende solo dai piani di base o di livello inferiore (per evitare le dipendenze cicliche).
Sì. I servizi Oracle Cloud Infrastructure sono progettati per essere indipendenti dalla region in modo che i servizi in una region Oracle Cloud Infrastructure possano continuare a funzionare anche quando la region è isolata da altre region Oracle Cloud Infrastructure e/o da un piano di controllo globale. La funzionalità del piano dati e del piano di controllo, inclusi gli endpoint dell'API del servizio, continuano a essere disponibili anche se la region è isolata.
Molti servizi Oracle Cloud Infrastructure offrono funzionalità tra più region, come la funzione di copia degli oggetti tra più region offerta da Oracle Cloud Infrastructure Object Storage. La funzionalità tra più region in Oracle Cloud Infrastructure è sempre progettata come livello al di sopra del servizio di base in modo che l'isolamento della region non influisca sul servizio di base anche se influisce sulla funzionalità tra più region. Ad esempio, la funzionalità di copia tra più region dell'area di memorizzazione degli oggetti di Oracle Cloud Infrastructure è progettata come livello al di sopra del servizio dell'area di memorizzazione degli oggetti e, di conseguenza, l'isolamento di una region può influire sulla funzione di copia tra più region pertinente, ma non influirà sul servizio di storage degli oggetti di base nella region.
Sì, i servizi Oracle Cloud Infrastructure sono progettati in modo che le funzionalità del piano dati in ogni data center logico continuino a funzionare anche se isolate dal piano di controllo regionale corrispondente. Come esempio, le istanze di computazione Oracle Cloud Infrastructure in un data center logico continueranno a funzionare insieme ai volumi a blocchi collegati e alle funzionalità di rete virtuale associate anche quando il data center è isolato dalle funzioni del piano di controllo di computazione, storage a blocchi, VCN e/o gestione delle identità e degli accessi.
Sì. Oracle Cloud Infrastructure è connesso a Internet tramite più provider ridondanti in tutte le region commerciali. Queste connessioni utilizzano il protocollo BGP (Border Gateway Protocol).