Questo documento del Google Cloud Framework Well-Architected: prospettiva del settore dei servizi finanziari fornisce una panoramica dei principi e dei consigli per creare, implementare e gestire carichi di lavoro solidi del settore dei servizi finanziari (FSI) in Google Cloud. Questi consigli ti aiutano a configurare elementi fondamentali come osservabilità, automazione e scalabilità. I consigli contenuti in questo documento sono in linea con il pilastro dell'eccellenza operativa del Well-Architected Framework.
L'eccellenza operativa è fondamentale per i carichi di lavoro FSI in Google Cloud a causa della natura altamente regolamentata e sensibile di questi carichi di lavoro. L'eccellenza operativa garantisce che le soluzioni cloud possano adattarsi alle esigenze in evoluzione e soddisfare i tuoi requisiti di valore, prestazioni, sicurezza e affidabilità. I guasti in questi ambiti potrebbero comportare perdite finanziarie significative, sanzioni normative e danni alla reputazione.
L'eccellenza operativa offre i seguenti vantaggi per i workload dei Servizi finanziari:
- Mantenere la fiducia e la reputazione: gli istituti finanziari si affidano molto alla fiducia dei propri clienti. Interruzioni operative o violazioni della sicurezza possono compromettere gravemente questa fiducia e causare l'abbandono dei clienti. L'eccellenza operativa contribuisce a ridurre al minimo questi rischi.
Soddisfare requisiti di conformità normativa rigorosi: l'FSI è soggetto a numerose e complesse normative, ad esempio:
- Regolamento generale sulla protezione dei dati (GDPR) dell'UE
- Digital Operational Resilience Act (DORA) dell'UE
- California Consumer Privacy Act (CCPA)
- Normative specifiche del settore
Processi operativi, monitoraggio e gestione degli incidenti solidi sono essenziali per dimostrare la conformità alle normative ed evitare sanzioni.
Garantire la continuità e la resilienza aziendale: i mercati e i servizi finanziari spesso operano in modo continuo. Pertanto, l'alta disponibilità e un efficace ripristino di emergenza sono fondamentali. I principi di eccellenza operativa guidano la progettazione e l'implementazione di sistemi resilienti. Il pilastro dell'affidabilità fornisce ulteriori indicazioni in questo ambito.
Proteggi i dati sensibili: gli istituti finanziari gestiscono grandi quantità di dati finanziari e dei clienti altamente sensibili. Controlli operativi rigorosi, monitoraggio della sicurezza e risposta rapida agli incidenti sono fondamentali per prevenire violazioni dei dati e mantenere la privacy. Il pilastro della sicurezza fornisce ulteriori indicazioni in questo ambito.
Ottimizza le prestazioni per le applicazioni critiche: molte applicazioni finanziarie, come le piattaforme di trading e l'analisi in tempo reale, richiedono prestazioni elevate e bassa latenza. Per soddisfare questi requisiti di rendimento, devi disporre di un design di computing, networking e archiviazione altamente ottimizzato. Il pilastro dell'ottimizzazione del rendimento fornisce ulteriori indicazioni in questo ambito.
Gestire i costi in modo efficace: oltre a sicurezza e affidabilità, le istituzioni finanziarie si preoccupano anche dell'efficienza dei costi. L'eccellenza operativa include pratiche per ottimizzare l'utilizzo delle risorse e gestire la spesa per il cloud. Il pilastro dell'ottimizzazione dei costi fornisce ulteriori indicazioni in questo ambito.
I consigli per l'eccellenza operativa contenuti in questo documento sono mappati ai seguenti principi fondamentali:
- Definisci SLA e SLO e SLI corrispondenti
- Definisci e testa le procedure di gestione degli incidenti
- Migliorare e innovare continuamente
Definisci SLA e SLI e SLO corrispondenti
In molte organizzazioni FSI, la disponibilità delle applicazioni viene in genere classificata in base alle metriche Recovery Time Objective (RTO) e Recovery Point Objective (RPO). Per le applicazioni business critical che servono clienti esterni, potrebbe essere definito anche un accordo sul livello del servizio (SLA).
I contratti di servizio richiedono un framework di metriche che rappresenti il comportamento del sistema dal punto di vista della soddisfazione dell'utente. Le pratiche di Site Reliability Engineering (SRE) offrono un modo per raggiungere il livello di affidabilità del sistema che desideri. La creazione di un framework di metriche prevede la definizione e il monitoraggio di indicatori numerici chiave per comprendere l'integrità del sistema dal punto di vista dell'utente. Ad esempio, metriche come la latenza e i tassi di errore quantificano le prestazioni di un servizio. Queste metriche sono chiamate indicatori del livello del servizio (SLI). Lo sviluppo di SLI efficaci è fondamentale perché forniscono i dati non elaborati necessari per valutare in modo oggettivo l'affidabilità.
Per definire SLA, SLI e SLO significativi, tieni presente i seguenti consigli:
- Sviluppa e definisci gli SLI per ogni servizio critico. Imposta i valori target che definiscono i livelli di rendimento accettabili.
- Sviluppa e definisci gli obiettivi del livello di servizio (SLO) che corrispondono agli SLI. Ad esempio, uno SLO potrebbe indicare che il 99,9% delle richieste deve avere una latenza inferiore a 200 millisecondi.
- Identifica le azioni correttive interne che devono essere intraprese se un servizio non soddisfa gli SLO. Ad esempio, per migliorare la resilienza della piattaforma, potrebbe essere necessario concentrare le risorse di sviluppo sulla risoluzione dei problemi.
- Convalida il requisito SLA per ogni servizio e riconosce l'SLA come contratto formale con gli utenti del servizio.
Esempi di livelli di servizio
La seguente tabella fornisce esempi di SLI, SLO e SLA per una piattaforma di pagamento:
Metrica commerciale | SLI | SLO | SLA (accordo sul livello del servizio) |
---|---|---|---|
Transazione di pagamento riuscita | Una misura quantitativa della percentuale di tutte le transazioni di pagamento avviate che vengono elaborate e confermate correttamente. Esempio: (numero di transazioni riuscite ÷ numero totale di transazioni valide) × 100, misurato in un intervallo di 5 minuti. |
Un target interno per mantenere una percentuale elevata di transazioni di pagamento andate a buon fine in un periodo specifico. Esempio: mantieni un tasso di successo delle transazioni di pagamento del 99,98% in un periodo di 30 giorni continuativi, escluse le richieste non valide e la manutenzione pianificata. |
Una garanzia contrattuale per la percentuale di successo e la velocità di elaborazione delle transazioni di pagamento. Esempio: il fornitore di servizi garantisce che il 99% delle transazioni di pagamento avviate dal cliente verrà elaborato e confermato correttamente entro un secondo. |
Latenza di elaborazione dei pagamenti | Il tempo medio necessario per l'elaborazione di una transazione di pagamento dall'avvio da parte del cliente alla conferma finale. Esempio: tempo di risposta medio in millisecondi per la conferma della transazione, misurato in una finestra mobile di 5 minuti. |
Un target interno per la velocità con cui vengono elaborate le transazioni di pagamento. Esempio: assicurati che il 99,5% delle transazioni di pagamento venga elaborato entro 400 millisecondi in un periodo di 30 giorni. |
Un impegno contrattuale a risolvere i problemi critici di elaborazione dei pagamenti entro un periodo di tempo specificato. Esempio: per problemi critici di elaborazione dei pagamenti (definiti come un'interruzione che interessa più dell'1% delle transazioni), il fornitore di servizi si impegna a risolvere il problema entro due ore dal momento in cui viene segnalato o rilevato. |
Disponibilità della piattaforma | La percentuale di tempo in cui l'API principale di elaborazione dei pagamenti e l'interfaccia utente sono operative e accessibili ai clienti. Esempio: (tempo operativo totale − tempo di inattività) ÷ tempo operativo totale × 100, misurato al minuto. |
Un target interno per il tempo di attività della piattaforma di pagamento principale. Esempio: ottieni una disponibilità della piattaforma del 99,995% al mese di calendario, esclusi i periodi di manutenzione pianificata. |
Un impegno formale e giuridicamente vincolante nei confronti dei clienti in merito all'uptime minimo della piattaforma di pagamento, comprese le conseguenze in caso di mancato rispetto. Esempio: la piattaforma manterrà una disponibilità minima del 99,9% al mese di calendario, escluse le finestre di manutenzione pianificata. Se la disponibilità scende al di sotto del livello minimo, il cliente riceverà un credito di servizio pari al 5% della commissione di servizio mensile per ogni calo dello 0,1%. |
Utilizza i dati SLI per monitorare se i sistemi rientrano negli SLO definiti e per assicurarti che gli SLA vengano rispettati. Utilizzando un insieme di SLI ben definiti, ingegneri e sviluppatori possono monitorare le applicazioni FSI ai seguenti livelli:
- Direttamente all'interno del servizio su cui vengono eseguito il deployment delle applicazioni, ad esempio GKE o Cloud Run.
- Utilizzando i log forniti dai componenti dell'infrastruttura, ad esempio il bilanciatore del carico.
OpenTelemetry fornisce uno standard open source e un set di tecnologie per acquisire tutti i tipi di telemetria, tra cui metriche, tracce e log. Google Cloud Managed Service per Prometheus fornisce un backend completamente gestito e altamente scalabile per le metriche e il funzionamento di Prometheus su larga scala.
Per ulteriori informazioni su SLI, SLO e budget di errore, consulta il manuale SRE.
Per sviluppare meccanismi e dashboard di monitoraggio e avvisi efficaci, utilizza gli strumenti di Google Cloud Observability insieme a Google Cloud Monitoring. Per informazioni sulle funzionalità di monitoraggio e rilevamento specifiche per la sicurezza, consulta il pilastro della sicurezza.
Definisci e testa le procedure di gestione degli incidenti
Processi di gestione degli incidenti ben definiti e testati regolarmente contribuiscono direttamente al valore, alle prestazioni, alla sicurezza e all'affidabilità dei carichi di lavoro FSI in Google Cloud. Questi processi aiutano gli istituti finanziari a soddisfare i rigorosi requisiti normativi, proteggere i dati sensibili, mantenere la continuità operativa e preservare la fiducia dei clienti.
I test regolari delle procedure di gestione degli incidenti offrono i seguenti vantaggi:
- Mantenere le prestazioni in condizioni di carico di picco: i test regolari di prestazioni e carico aiutano gli istituti finanziari a garantire che le loro applicazioni e infrastrutture basate sul cloud possano gestire volumi di transazioni di picco, volatilità del mercato e altri scenari di forte domanda senza un calo delle prestazioni. Questa funzionalità è fondamentale per mantenere un'esperienza utente fluida e soddisfare le esigenze dei mercati finanziari.
- Identificare potenziali colli di bottiglia e limitazioni: lo stress test spinge i sistemi ai loro limiti e consente agli istituti finanziari di identificare potenziali colli di bottiglia e limitazioni delle prestazioni prima che influenzino le operazioni critiche. Questo approccio proattivo consente agli istituti finanziari di adeguare la propria infrastruttura e le proprie applicazioni per ottenere prestazioni e scalabilità ottimali.
- Convalida dell'affidabilità e della resilienza: test regolari, inclusi chaos engineering o errori simulati, contribuiscono a convalidare l'affidabilità e la resilienza dei sistemi finanziari. Questi test garantiscono che i sistemi possano ripristinarsi senza problemi in caso di guasti e mantenere un'alta disponibilità, essenziale per la continuità aziendale.
- Esegui una pianificazione efficace della capacità: i test delle prestazioni forniscono dati preziosi sull'utilizzo delle risorse in diverse condizioni di carico, il che è fondamentale per una pianificazione accurata della capacità. Gli istituti finanziari possono utilizzare questi dati per anticipare in modo proattivo le esigenze future di capacità ed evitare problemi di rendimento dovuti a vincoli delle risorse.
- Esegui il deployment di nuove funzionalità e modifiche al codice: l'integrazione di test automatizzati nelle pipeline CI/CD contribuisce a garantire che le modifiche e i nuovi deployment vengano convalidati a fondo prima di essere rilasciati negli ambienti di produzione. Questo approccio riduce significativamente il rischio di errori e regressioni che potrebbero causare interruzioni operative.
- Soddisfare i requisiti normativi per la stabilità del sistema: i regolamenti finanziari spesso richiedono agli istituti di disporre di pratiche di test solide per garantire la stabilità e l'affidabilità dei loro sistemi critici. I test regolari aiutano a dimostrare la conformità a questi requisiti.
Per definire e testare le procedure di gestione degli incidenti, prendi in considerazione i seguenti suggerimenti.
Stabilire procedure di risposta agli incidenti chiare
Un insieme ben consolidato di procedure di risposta agli incidenti include i seguenti elementi:
- Ruoli e responsabilità definiti per gli incident commander, gli investigatori, i comunicatori e gli esperti tecnici per garantire una risposta efficace e coordinata.
- Protocolli di comunicazione e percorsi di riassegnazione definiti per garantire che le informazioni vengano condivise in modo rapido ed efficace durante gli incidenti.
- Procedure documentate in un runbook o playbook che descrive i passaggi per la comunicazione, il triage, l'indagine e la risoluzione.
- Formazione e preparazione regolari che forniscono ai team le conoscenze e le competenze per rispondere in modo efficace.
Implementa regolarmente test di carico e delle prestazioni
I test di carico e delle prestazioni regolari contribuiscono a garantire che le applicazioni e l'infrastruttura basate sul cloud possano gestire i picchi di carico e mantenere prestazioni ottimali. Il test di carico simula pattern di traffico realistici. Il test di stress porta il sistema ai suoi limiti per identificare potenziali colli di bottiglia e limitazioni delle prestazioni. Puoi utilizzare prodotti come Cloud Load Balancing e servizi di test di carico per simulare il traffico reale. In base ai risultati del test, puoi modificare l'infrastruttura cloud e le applicazioni per ottenere prestazioni e scalabilità ottimali. Ad esempio, puoi modificare l'allocazione delle risorse o ottimizzare le configurazioni delle applicazioni.
Automatizzare i test all'interno delle pipeline CI/CD
L'integrazione di test automatizzati nelle pipeline CI/CD contribuisce a garantire la qualità e l'affidabilità delle applicazioni cloud con la convalida delle modifiche prima del deployment. Questo approccio riduce significativamente il rischio di errori e regressioni e ti aiuta a creare un sistema software più stabile e solido. Puoi incorporare diversi tipi di test nelle pipeline CI/CD, inclusi test delle unità, test di integrazione e test end-to-end. Utilizza prodotti come Cloud Build e Cloud Deploy per creare e gestire le pipeline CI/CD.
Migliorare e innovare continuamente
Per i carichi di lavoro dei servizi finanziari nel cloud, la migrazione al cloud è solo il primo passo. Il miglioramento e l'innovazione continui sono essenziali per i seguenti motivi:
- Accelerare l'innovazione: sfrutta le nuove tecnologie come l'AI per migliorare i tuoi servizi.
- Ridurre i costi: elimina le inefficienze e ottimizza l'utilizzo delle risorse.
- Migliora l'agilità: adattati rapidamente ai cambiamenti del mercato e normativi.
- Migliora il processo decisionale: utilizza prodotti di analisi dei dati come BigQuery e Looker per fare scelte informate.
Per garantire un miglioramento e un'innovazione continui, prendi in considerazione i seguenti suggerimenti.
Esegui retrospettive regolari
Le retrospective sono fondamentali per migliorare continuamente le procedure di risposta agli incidenti e per ottimizzare le strategie di test in base ai risultati dei test regolari di prestazioni e carico. Per garantire l'efficacia delle retrospettive:
- Offri ai team l'opportunità di riflettere sulle proprie esperienze, identificare gli aspetti positivi e individuare le aree di miglioramento.
- Organizza retrospettive dopo le tappe principali del progetto, gli incidenti gravi o i cicli di test significativi. I team possono imparare sia dai successi che dai fallimenti e perfezionare continuamente i propri processi e pratiche.
- Utilizza un approccio strutturato come il modello start-stop-continue per garantire che le sessioni di retrospettiva siano produttive e portino a passaggi attuabili.
- Utilizza le retrospettive per identificare le aree in cui l'automazione della gestione delle modifiche può essere ulteriormente migliorata per aumentare l'affidabilità e ridurre i rischi.
Promuovere una cultura dell'apprendimento
Una cultura dell'apprendimento facilita l'esplorazione sicura di nuove tecnologie in Google Cloud, come le funzionalità di AI e ML per migliorare servizi come il rilevamento delle frodi e la consulenza finanziaria personalizzata. Per promuovere una cultura dell'apprendimento, segui questi passaggi:
- Incoraggia i team a sperimentare, condividere le conoscenze e imparare continuamente.
- Adotta una cultura in cui non si attribuiscono colpe, in cui i fallimenti sono visti come opportunità di crescita e miglioramento.
- Crea un ambiente psicologicamente sicuro che consenta ai team di correre rischi e prendere in considerazione soluzioni innovative. I team imparano sia dai successi che dai fallimenti, il che porta a un'organizzazione più resiliente e adattabile.
- Sviluppa una cultura che faciliti la condivisione delle conoscenze acquisite dai processi di gestione degli incidenti e dagli esercizi di test.
Rimanere al passo con le tecnologie cloud
L'apprendimento continuo è essenziale per comprendere e implementare nuove misure di sicurezza, sfruttare l'analisi avanzata dei dati per ottenere informazioni migliori e adottare soluzioni innovative pertinenti per il settore finanziario.
- Massimizza il potenziale dei servizi Google Cloud rimanendo al corrente degli ultimi progressi, funzionalità e best practice.
- Quando vengono introdotti nuovi Google Cloud servizi e funzionalità, identifica le opportunità per automatizzare ulteriormente i processi, migliorare la sicurezza e ottimizzare le prestazioni e la scalabilità delle tue applicazioni.
- Partecipa a conferenze, webinar e sessioni di formazione pertinenti per ampliare le tue conoscenze e comprendere le nuove funzionalità.
- Incoraggia i membri del team a ottenere Google Cloud certificazioni per contribuire a garantire che l'organizzazione disponga delle competenze necessarie per avere successo nel cloud.