REL11-BP04 Fare affidamento al piano dati invece che al piano di controllo (control-plane) durante il ripristino
Il piano di controllo (control-plane) forniscono le API amministrative utilizzate per creare, leggere e descrivere, aggiornare, eliminare ed elencare (CRUDL) risorse, mentre i piani dati gestiscono il traffico quotidiano del servizio. Durante l’implementazione di risposte di ripristino o mitigazione a eventi che possono influire sulla resilienza, concentrati sull’utilizzo di un numero minimo di operazioni del piano di controllo (control-plane) per ripristinare, ridimensionare, ristabilire, riparare il servizio o eseguirne il failover. Le operazioni del piano dati dovrebbero avere la precedenza su qualsiasi attività durante questi eventi che causano deterioramento.
Ad esempio, le seguenti sono tutte azioni del piano di controllo (control-plane): avvio di una nuova istanza di calcolo, creazione di storage a blocchi e descrizione dei servizi di coda. Quando avvii istanze di calcolo, il piano di controllo (control-plane) deve eseguire diverse attività, come trovare un host fisico con capacità, allocare interfacce di rete, preparare volumi di storage a blocchi locali, generare credenziali e aggiungere regole di sicurezza. I piani di controllo (control-plane) tendono ad avere un’orchestrazione complicata.
Risultato desiderato: quando lo stato di risorsa viene compromesso, il sistema è in grado di ripristinarsi automaticamente o manualmente spostando il traffico da risorse danneggiate a risorse integre.
Anti-pattern comuni:
-
Dipendenza dalla modifica dei record DNS per reindirizzare il traffico.
-
Dipendenza dalle operazioni di dimensionamento del piano di controllo (control-plane) per sostituire i componenti danneggiati a causa di un provisioning delle risorse insufficiente.
-
Affidarsi ad azioni intense, multiservizio e multi-API del piano di controllo (control-plane) per porre rimedio a qualsiasi categoria di deterioramento.
Vantaggi dell’adozione di questa best practice una maggiore percentuale di successo in termini di riparazione automatica può ridurre il tempo medio di ripristino e migliorare la disponibilità del carico di lavoro.
Livello di rischio associato se questa best practice non fosse adottata: medio. Per determinati tipi di degrado del servizio, i piani di controllo (control-plane) sono interessati. Le dipendenze dall’uso intenso del piano di controllo (control-plane) per la riparazione possono aumentare il tempo di ripristino (RTO) e il tempo medio di ripristino (MTTR).
Guida all’implementazione
Per limitare le azioni del piano dati, esegui una valutazione del servizio determinare le azioni necessarie per ripristinarlo.
Sfrutta Amazon Application Recovery Controller per spostare il traffico DNS. Queste funzionalità monitorano continuamente la capacità dell’applicazione di ristabilirsi dai guasti e consentono di controllarne il ripristino su più Regioni AWS, zone di disponibilità e on-premises.
Le policy di instradamento di Route 53 utilizzano il piano di controllo (control-plane), quindi non fare affidamento su di esso per il ripristino. I piani dati di Route 53 rispondono alle query DNS ed eseguono e valutano i controlli dell’integrità. Sono distribuiti a livello globale e progettati per un accordo sul livello di servizio (SLA) con disponibilità pari al 100%
Le API e le console di gestione di Route 53, dove si creano, aggiornano ed eliminano le risorse di Route 53, funzionano su piani di controllo (control-plane) progettati per privilegiare la forte coerenza e la durata necessarie per la gestione del DNS. A tal fine, i piani di controllo (control-plane) sono situati in un’unica regione: Stati Uniti orientali (Virginia settentrionale). Sebbene entrambi i sistemi siano costruiti per essere molto affidabili, i piani di controllo (control-plane) non sono inclusi nello SLA. Possono verificarsi eventi rari in cui la progettazione resiliente del piano dati consente di mantenere la disponibilità mentre i piani di controllo (control-plane) non lo fanno. Per i meccanismi di disaster recovery e failover, utilizzare le funzioni del piano dati per garantire la migliore affidabilità possibile.
Progetta la tua infrastruttura di elaborazione in modo che sia staticamente stabile per evitare di utilizzare il piano di controllo durante un incidente. Ad esempio, se utilizzi istanze Amazon EC2, evita di effettuare il provisioning manuale di nuove istanze o di chiedere ai gruppi Auto Scaling di aggiungere istanze in risposta. Per ottenere i massimi livelli di resilienza, è necessario fornire una capacità sufficiente nel cluster utilizzato per il failover. Se è necessario limitare questa soglia di capacità, imposta limitazioni (della larghezza di banda della rete) sull’intero sistema end-to-end per limitare in modo sicuro il traffico totale che raggiunge il set limitato di risorse.
L’utilizzo di servizi come Amazon DynamoDB, Gateway Amazon API, bilanciatori del carico e AWS Lambda serverless avviene sfruttando il piano dati. Tuttavia, la creazione di nuove funzioni, bilanciatori del carico, gateway API o tabelle DynamoDB è un’azione del piano di controllo (control-plane) e deve essere completata prima del deterioramento come preparazione a un evento e test delle azioni di failover. Per Amazon RDS, le azioni del piano dati consentono l’accesso ai dati.
Per ulteriori informazioni su piani dati, piani di controllo (control-plane) e su come AWS crea servizi per soddisfare gli obiettivi di alta disponibilità, consulta Stabilità statica con le zone di disponibilità
Capire quali operazioni sono sul piano dati e quali sul piano di controllo (control-plane).
Passaggi dell’implementazione
Per ogni carico di lavoro che deve essere ripristinato dopo un evento di deterioramento, valuta il runbook di failover, il design ad alta disponibilità, il progetto di riparazione automatica o il piano di ripristino delle risorse HA. Identifica ogni azione che potrebbe essere considerata un’azione del piano di controllo (control-plane).
Prendi in considerazione la possibilità di modificare l’azione di controllo in un’azione del piano dati:
-
Amazon EC2 Auto Scaling (piano di controllo) rispetto alle risorse predimensionate di Amazon EC2 (piano dati)
-
Dimensionamento delle istanze Amazon EC2 (piano di controllo) sul dimensionamento AWS Lambda (piano dati)
-
Valuta qualsiasi progetto utilizzando Kubernetes e considerando la natura delle azioni del piano di controllo (control-plane). L’aggiunta di pod è un’azione del piano dati in Kubernetes. Le azioni devono limitarsi all’aggiunta di pod e non all’aggiunta di nodi. L’utilizzo di nodi con provisioning eccessivo
è il metodo preferibile per limitare le azioni del piano di controllo (control-plane).
Prendi in considerazione approcci alternativi che consentano alle azioni del piano dati di incidere sulla stessa correzione.
-
Modifica dei record di Route 53 (piano di controllo (control-plane) o Amazon Application Recovery Controller (piano dati)
-
Controlli dell’integrità di Route 53 per aggiornamenti più automatizzati
Se il servizio è mission critical, prendi in considerazione alcuni servizi in una regione secondaria per consentire più azioni del piano di controllo (control-plane) e del piano dati in una regione non interessata dal problema.
-
Amazon EC2 Auto Scaling o Amazon EKS in una regione primaria rispetto ad Amazon EC2 Auto Scaling o Amazon EKS in una regione secondaria e instradamento del traffico verso una regione secondaria (azione del piano di controllo (control-plane))
-
Crea una replica di lettura nella regione secondaria o tenta la stessa azione nella regione principale (azione del piano di controllo (control-plane))
Risorse
Best practice correlate:
Documenti correlati:
-
Partner APN: partner che possono essere d’aiuto con l’automazione della tua tolleranza ai guasti
-
Marketplace AWS: prodotti utilizzabili per la tolleranza ai guasti
-
API Amazon DynamoDB (piano di controllo (control-plane) e piano dati)
-
AWS Lambda Executions (suddivise in piano di controllo (control-plane) e piano dati)
-
Piano di controllo (control-plane) e piano dati di Kubernetes
Video correlati:
Esempi correlati:
Strumenti correlati: