Questo documento della Google Cloud prospettiva dei servizi finanziari (SF) del Well-Architected Framework fornisce una panoramica dei principi e dei consigli per creare, eseguire il deployment e gestire workload SF robusti 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 workload SF in Google Cloud quanto sono altamente regolamentati e sensibili. L'eccellenza operativa garantisce che le soluzioni cloud possano adattarsi alle esigenze in evoluzione e soddisfare i requisiti di valore, prestazioni, sicurezza e affidabilità. I guasti in queste aree potrebbero comportare perdite finanziarie significative, sanzioni normative e danni alla reputazione.
L'eccellenza operativa offre i seguenti vantaggi per i workload SF:
- Mantenere la fiducia e la reputazione: gli istituti finanziari si affidano molto alla fiducia dei clienti. Le interruzioni operative o le violazioni della sicurezza possono erodere gravemente questa fiducia e causare l'abbandono dei clienti. L'eccellenza operativa aiuta a ridurre al minimo questi rischi.
Soddisfare i rigorosi requisiti di conformità normativa: i servizi finanziari sono soggetti a numerose e complesse normative, come le seguenti:
- 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à operativa e la resilienza: i mercati e i servizi finanziari spesso operano ininterrottamente. Pertanto, l'alta affidabilità e il ripristino di emergenza efficace 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.
Proteggere 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 le violazioni dei dati e mantenere la privacy. Il pilastro della sicurezza fornisce ulteriori indicazioni in questo ambito.
Ottimizzare il rendimento 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, è necessario un design di computing, rete e archiviazione altamente ottimizzato. Il pilastro dell'ottimizzazione del rendimento fornisce ulteriori indicazioni in questo ambito.
Gestire i costi in modo efficace: oltre alla sicurezza e all'affidabilità, gli istituti finanziari si preoccupano anche dell'efficienza dei costi. L'eccellenza operativa include pratiche per ottimizzare l'utilizzo delle risorse e gestire la spesa cloud. Il pilastro dell'ottimizzazione dei costi fornisce ulteriori indicazioni in questo ambito.
I consigli sull'eccellenza operativa contenuti in questo documento sono mappati ai seguenti principi fondamentali:
- Definire gli SLA e i relativi SLO e SLI
- Definire e testare le procedure di gestione degli incidenti
- Migliorare e innovare continuamente
Definire gli SLA e i relativi SLO e SLI
In molte organizzazioni SF, la disponibilità delle applicazioni viene in genere classificata in base alle metriche RTO (Recovery Time Objective) e RPO (Recovery Point Objective). Per le applicazioni business-critical che servono clienti esterni, potrebbe essere definito anche un accordo sul livello del servizio (SLA).
Gli SLA 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 desiderato. 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 le percentuali di errore quantificano il rendimento 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 oggettivamente l'affidabilità.
Per definire SLA, SLI e SLO significativi, tieni presente i seguenti consigli:
- Sviluppa e definisci gli SLI per ogni servizio critico. Imposta valori target che definiscano i livelli di rendimento accettabili.
- Sviluppa e definisci gli obiettivi del livello di servizio (SLO) corrispondenti 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 da intraprendere se un servizio non soddisfa gli SLO. Ad esempio, per migliorare la resilienza della piattaforma, potresti dover concentrare le risorse di sviluppo sulla risoluzione dei problemi.
- Convalida il requisito SLA per ogni servizio e riconosci 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 aziendale | SLI | SLO | SLA |
|---|---|---|---|
| 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 periodo di 5 minuti. |
Un target interno per mantenere una percentuale elevata di transazioni di pagamento riuscite in un periodo specifico. Esempio: mantenere una percentuale di successo delle transazioni di pagamento del 99,98% in un periodo di 30 giorni, 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,0% delle transazioni di pagamento avviate dal cliente verrà elaborato e confermato correttamente entro un secondo. |
| Latenza di elaborazione dei pagamenti | Il tempo medio impiegato 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 un periodo di 5 minuti. |
Un target interno per la velocità di elaborazione delle 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 i 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 di elaborazione dei pagamenti principale 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 l'uptime della piattaforma di pagamento principale. Esempio: raggiungere una disponibilità della piattaforma del 99,995% per mese di calendario, escluse le finestre di manutenzione pianificate. |
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% per mese di calendario, escluse le finestre di manutenzione pianificate. 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 SF ai seguenti livelli:
- Direttamente all'interno del servizio su cui vengono eseguite le 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 insieme 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 dashboard e meccanismi di avviso e monitoraggio efficaci, utilizza Google Cloud Observability strumenti insieme a Google Cloud Monitoring. Per informazioni sulle funzionalità di monitoraggio e rilevamento specifiche per la sicurezza, consulta il pilastro della sicurezza.
Definire e testare le procedure di gestione degli incidenti
Procedure di gestione degli incidenti ben definite e testate regolarmente contribuiscono direttamente al valore, al rendimento, alla sicurezza e all'affidabilità dei workload SF in Google Cloud. Queste procedure aiutano gli istituti finanziari a soddisfare i rigorosi requisiti normativi, proteggere i dati sensibili, mantenere la continuità operativa e sostenere la fiducia dei clienti.
Il test regolare delle procedure di gestione degli incidenti offre i seguenti vantaggi:
- Mantenere il rendimento in condizioni di picco di carico: i test regolari di rendimento e carico aiutano gli istituti finanziari a garantire che le applicazioni e l'infrastruttura basate sul cloud possano gestire i volumi di transazioni di picco, la volatilità del mercato e altri scenari di elevata domanda senza un calo del rendimento. 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 del rendimento prima che influiscano sulle operazioni critiche. Questo approccio proattivo consente agli istituti finanziari di adeguare l'infrastruttura e le applicazioni per un rendimento e una scalabilità ottimali.
- Convalidare l'affidabilità e la resilienza: i test regolari, inclusi l'ingegneria del caos o i guasti simulati, aiutano a convalidare l'affidabilità e la resilienza dei sistemi finanziari. Questi test garantiscono che i sistemi possano ripristinarsi correttamente in caso di guasto e mantenere un'alta affidabilità, essenziale per la continuità operativa.
- Eseguire una pianificazione della capacità efficace: i test di rendimento forniscono dati preziosi sull'utilizzo delle risorse in diverse condizioni di carico, fondamentali per una pianificazione della capacità accurata. Gli istituti finanziari possono utilizzare questi dati per anticipare in modo proattivo le esigenze di capacità future ed evitare problemi di rendimento dovuti a vincoli di risorse.
- Eseguire il deployment di nuove funzionalità e modifiche del codice: l'integrazione dei test automatici nelle pipeline CI/CD aiuta a garantire che le modifiche e i nuovi deployment vengano convalidati accuratamente 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: le normative finanziarie spesso richiedono agli istituti di adottare pratiche di test solide per garantire la stabilità e l'affidabilità dei sistemi critici. I test regolari aiutano a dimostrare la conformità a questi requisiti.
Per definire e testare le procedure di gestione degli incidenti, tieni presente i seguenti consigli.
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 i responsabili degli incidenti, gli investigatori, i comunicatori e gli esperti tecnici per garantire una risposta efficace e coordinata.
- Protocolli di comunicazione e percorsi di escalation definiti per garantire che le informazioni vengano condivise in modo rapido ed efficace durante gli incidenti.
- Procedure documentate in un runbook o playbook che descrivono 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.
Eseguire regolarmente test di rendimento e carico
I test regolari di rendimento e carico aiutano a garantire che le applicazioni e l'infrastruttura basate sul cloud possano gestire i picchi di carico e mantenere un rendimento ottimale. Il test di carico simula pattern di traffico realistici. Lo stress test mette alla prova il sistema fino ai suoi limiti per identificare potenziali colli di bottiglia e limitazioni del rendimento. Puoi utilizzare prodotti come Cloud Load Balancing e servizi di test di carico per simulare il traffico reale. In base ai risultati dei test, puoi adeguare l'infrastruttura e le applicazioni cloud per un rendimento e una 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'incorporamento di test automatici nelle pipeline CI/CD aiuta a garantire la qualità e l'affidabilità delle applicazioni cloud convalidando le 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 robusto. 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 workload di 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.
- Migliorare l'agilità: adattati rapidamente ai cambiamenti del mercato e delle normative.
- Migliorare il processo decisionale: utilizza prodotti di analisi dei dati come BigQuery e Looker per fare scelte informate.
Per garantire il miglioramento e l'innovazione continui, tieni presente i seguenti consigli.
Eseguire regolarmente retrospettive
Le retrospettive 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 rendimento e carico. Per assicurarti che le retrospettive siano efficaci:
- Dai ai team l'opportunità di riflettere sulle loro esperienze, identificare cosa è andato bene e individuare le aree di miglioramento.
- Esegui 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 le loro procedure e pratiche.
- Utilizza un approccio strutturato come il modello start-stop-continue per assicurarti che le sessioni retrospettive siano produttive e portino a passaggi pratici.
- 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 di attività fraudolente e la consulenza finanziaria personalizzata. Per promuovere una cultura dell'apprendimento:
- Incoraggia i team a sperimentare, condividere le conoscenze e imparare continuamente.
- Adotta una cultura senza 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 dalle procedure di gestione degli incidenti e dagli esercizi di test.
Rimanere aggiornati sulle tecnologie cloud
L'apprendimento continuo è essenziale per comprendere e implementare nuove misure di sicurezza, sfruttare l'analisi avanzata dei dati per ottenere insight migliori e adottare soluzioni innovative pertinenti ai servizi finanziari.
- Massimizza il potenziale dei Google Cloud servizi rimanendo informato sugli ultimi progressi, funzionalità e best practice.
- Quando vengono introdotte nuove Google Cloud funzionalità e nuovi servizi, identifica le opportunità per automatizzare ulteriormente le procedure, migliorare la sicurezza e aumentare il rendimento e la scalabilità delle 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 assicurarti che l'organizzazione disponga delle competenze necessarie per avere successo nel cloud.