Il primo passo verso la creazione di un'infrastruttura affidabile per i tuoi carichi di lavoro cloud è identificare i requisiti di affidabilità dei carichi di lavoro. Questa parte della Google Cloud guida all'affidabilità dell'infrastruttura fornisce linee guida per aiutarti a definire i requisiti di affidabilità dei carichi di lavoro che esegui il deployment in Google Cloud.
Determinare i requisiti specifici del carico di lavoro
I requisiti di affidabilità di un'applicazione dipendono dalla natura del servizio che fornisce o dal processo che esegue. Ad esempio, un'applicazione che fornisce servizi bancomat per una banca potrebbe richiedere una disponibilità di 99,999%. Un sito web che supporta una piattaforma di trading online potrebbe richiedere una disponibilità di 5 nove e un tempo di risposta rapido. Un processo batch che scrive le transazioni bancarie in un registro contabile alla fine di ogni giorno potrebbe avere un obiettivo di aggiornamento dei dati di otto ore.
All'interno di un'applicazione, i singoli componenti o operazioni potrebbero avere requisiti di affidabilità diversi. Ad esempio, un'applicazione di elaborazione degli ordini potrebbe richiedere un'affidabilità maggiore per le operazioni che scrivono dati nel database degli ordini rispetto alle richieste di lettura.
Valutare in modo granulare i requisiti di affidabilità dei tuoi carichi di lavoro ti aiuta a concentrare le spese e gli sforzi sui carichi di lavoro fondamentali per la tua attività.
Identificare i periodi critici
Potrebbero esserci periodi in cui un'applicazione è più critica per l'attività rispetto ad altri momenti. Questi periodi sono spesso quelli in cui l'applicazione ha il carico di lavoro più elevato. Identifica questi periodi, pianifica una capacità adeguata e testa l'applicazione in condizioni di picco di carico. Per evitare il rischio di interruzioni dell'applicazione durante i periodi di picco di carico, puoi utilizzare pratiche operative appropriate, come il blocco del codice di produzione.
Di seguito sono riportati alcuni esempi di applicazioni che registrano picchi stagionali di carico:
- Il modulo di inventario di un'applicazione di contabilità finanziaria viene in genere utilizzato maggiormente nei giorni in cui sono pianificati gli inventari mensili, trimestrali o annuali.
- Un sito web di e-commerce registra picchi significativi di carico durante i periodi di shopping di punta o gli eventi promozionali.
- Un database che supporta il modulo di ammissione degli studenti di un'università avrebbe un volume elevato di operazioni di scrittura durante alcuni mesi di ogni anno.
- Un servizio di dichiarazione dei redditi online avrebbe un carico elevato durante il periodo di dichiarazione dei redditi.
- Una piattaforma di trading online potrebbe richiedere una disponibilità di 5 nove e un tempo di risposta rapido, ma solo durante l'orario di trading (ad esempio, dalle 8:00 alle 17:00 dal lunedì al venerdì).
Considera altri requisiti non funzionali
Oltre ai requisiti di affidabilità, le applicazioni aziendali possono avere altri importanti requisiti non funzionali per sicurezza, prestazioni, costi ed efficienza operativa. Quando valuti i requisiti di affidabilità di un'applicazione, considera le dipendenze e i compromessi con questi altri requisiti.
Di seguito sono riportati esempi di requisiti che non riguardano l'affidabilità, ma possono comportare compromessi con i requisiti di affidabilità.
- Ottimizzazione dei costi:per ottimizzare i costi IT, la tua organizzazione potrebbe imporre quote per determinate risorse cloud. Ad esempio, per ridurre il costo delle licenze software di terze parti, la tua organizzazione potrebbe impostare quote per il numero di core di calcolo che possono essere sottoposti a provisioning. Quote simili possono esistere per la quantità di dati che possono essere archiviati e per il volume di traffico di rete tra regioni. Considera gli effetti di questi vincoli di costo sulle opzioni disponibili per la progettazione di un'infrastruttura affidabile.
- Residenza dei dati:per soddisfare i requisiti normativi, la tua applicazione potrebbe dover archiviare ed elaborare i dati in paesi specifici, anche se l'attività serve utenti a livello globale. Tieni conto di questi vincoli di residenza dei dati quando decidi le regioni e le zone in cui possono essere implementate le tue applicazioni.
Alcune decisioni di progettazione che prendi per soddisfare altri requisiti possono contribuire a migliorare l'affidabilità delle tue applicazioni. Di seguito sono riportati alcuni esempi:
- Automazione del deployment:per gestire i deployment cloud in modo efficiente, puoi decidere di automatizzare il flusso di provisioning utilizzando Infrastructure as Code (IaC). Allo stesso modo, puoi automatizzare il processo di creazione e deployment dell'applicazione utilizzando una pipeline di integrazione continua e deployment continuo (CI/CD). L'utilizzo di pipeline IaC e CI/CD può contribuire a migliorare non solo l'efficienza operativa, ma anche l'affidabilità dei tuoi carichi di lavoro.
- Controlli di sicurezza:i controlli di sicurezza che implementi possono anche contribuire a migliorare la disponibilità dell'applicazione. Ad esempio, i criteri di sicurezza di Google Cloud Armor possono contribuire a garantire che l'applicazione rimanga disponibile durante gli attacchi denial of service (DoS).
- Memorizzazione nella cache dei contenuti: per migliorare le prestazioni di un'applicazione di pubblicazione dei contenuti, puoi attivare la memorizzazione nella cache come parte della configurazione del bilanciamento del carico. Con questo design, gli utenti non solo accedono più rapidamente ai contenuti, ma hanno anche una maggiore disponibilità. Possono accedere ai contenuti memorizzati nella cache anche quando i server di origine non sono disponibili.
Rivalutare periodicamente i requisiti
Man mano che la tua attività si evolve e cresce, i requisiti delle tue applicazioni potrebbero cambiare. Rivaluta periodicamente i requisiti di affidabilità e assicurati che siano in linea con gli obiettivi e le priorità aziendali attuali della tua organizzazione.
Prendi in considerazione un'applicazione che fornisca un livello di disponibilità standard per tutti gli utenti. Potresti aver eseguito il deployment dell'applicazione in due zone all'interno di una regione, con un bilanciatore del carico regionale come frontend. Se la tua organizzazione prevede di lanciare un'opzione di servizio premium che offre una disponibilità maggiore, allora i requisiti di affidabilità dell'applicazione sono cambiati. Per soddisfare i nuovi requisiti di disponibilità, potrebbe essere necessario eseguire il deployment dell'applicazione in più regioni e utilizzare un bilanciatore del carico globale con Cloud CDN abilitato.
Un'altra opportunità per valutare nuovamente i requisiti di disponibilità delle tue applicazioni si presenta dopo un'interruzione. Le interruzioni potrebbero rivelare aspettative non corrispondenti tra i diversi team della tua attività. Ad esempio, un team potrebbe considerare accettabile un'interruzione di 45 minuti una volta all'anno (ovvero una disponibilità annuale del 99, 99%). Un altro team potrebbe invece aspettarsi un tempo di inattività massimo di 4,3 minuti al mese (ovvero una disponibilità mensile del 99,99%). A seconda di come decidi di modificare o chiarire i requisiti di disponibilità, devi adeguare la tua architettura per soddisfare i nuovi requisiti.