IBM Well-Architected Framework
Il pilastro delle Operazioni efficienti si concentra su soluzioni che soddisfano i requisiti per gli insight dei workload cloud, la digitalizzazione dei processi e il mantenimento di una postura operativa proattiva. Questo è reso possibile grazie a pratiche e linee guida per l'impiego dei team, l’automazione e gli strumenti di AI al fine di monitorare, gestire e mantenere le soluzioni in modo sicuro, affidabile ed efficiente.
Esempi di modelli operativi includono “Chi lo costruisce lo gestisce” oppure l’istituzione di una pratica di ingegneria dell'affidabilità del sito. Questi e altri modelli operativi dipendono dalla comprensione delle esigenze e del contesto dell'azienda, dei clienti, degli amministratori e dei team di sviluppo.
È importante comprendere che i modelli operativi devono essere continuamente valutati, adattati e personalizzati in base alle esigenze dell’organizzazione, tenendo conto di fattori quali il settore, i requisiti normativi, le soluzioni esistenti e gli obiettivi degli utenti.
Automatizzare le operazioni comuni e di routine tramite scripting, agenti intelligenti e altri strumenti aiuta a mantenere alti livelli di servizio.
Questo principio dovrebbe estendersi a tutti i team e alle relative dipendenze per ottenere efficienza e velocità end-to-end, precisione, riduzione degli errori e agilità, oltre a garantire uniformità all’interno dell’ambiente operativo.
I team operativi hanno attualmente una grande varietà di strumenti a disposizione e possono selezionare molti strumenti “best of breed” per specifici aspetti operativi, il che può portare a una proliferazione disordinata degli strumenti se non viene gestita.
Le variazioni e l’integrazione tra gli strumenti possono creare difficoltà nell’onboarding dei membri del team, nella gestione delle licenze e dei costi e nell’agilità, oltre ad aumentare le vulnerabilità. I team operativi dovrebbero cercare costantemente di ridurre e consolidare gli strumenti e le console operative in uso.
Non tutte le soluzioni richiedono una disponibilità 24 x 7 o un tempo di risposta immediato. Le soluzioni efficienti devono supportare più livelli di servizio all’interno di un’unica soluzione e consentire che i workload siano allocati sull’infrastruttura più adatta a soddisfarne i requisiti operativi.
I livelli di servizio informeranno inoltre i team di sviluppo, affinché tengano conto delle configurazioni a livello applicativo e della strumentazione necessaria per supportare gli obiettivi aziendali, nonché un’esperienza utente positiva.
I team operativi efficienti sono multidisciplinari, ovvero contengono tutte le competenze necessarie per supportare un insieme di applicazioni. Per ottenere questa capacità è necessario considerare l’intero stack dei workload, compresi i servizi applicativi e infrastrutturali.
Le soluzioni e gli strumenti operativi devono supportare questo modello, consentendo sia l’integrazione (tra i componenti della soluzione) sia la segregazione (rispetto ad altre soluzioni) degli strumenti operativi e delle informazioni.
Molte pratiche operative sono comuni e possono essere automatizzate e rese disponibili tramite API per un accesso maggiore, ad esempio non solo creando automazioni per gestire i segreti, ma anche creando un'API persistente per eseguire le operazioni di gestione dei segreti.
Questo approccio si estende all’onboarding di nuove capacità e alla loro integrazione in workflow dinamici. Questo può sia standardizzare le procedure, sia ridurre i tempi di attesa tra i team.
Pratiche e linee guida per creare soluzioni operative efficienti. Queste linee guida aiutano i team ad applicare i principi delle operazioni efficienti e a garantire l’affidabilità, la disponibilità e le prestazioni di sistemi complessi. Queste pratiche aiutano le organizzazioni a raggiungere i loro obiettivi di affidabilità basati sugli utenti e a garantire lo stato di salute dei loro servizi.
Le pratiche operative efficienti sono adattabili e possono essere adattate per soddisfare le esigenze e il contesto specifici dei consumatori, dei sistemi e dei servizi di un’organizzazione.
Le architetture, i requisiti e i workload specifici dell'organizzazione determineranno le best practice da adottare. Il miglioramento continuo attraverso feedback, valutazione e allineamento alla strategia cloud dell'organizzazione è essenziale per garantire efficienza ed efficacia continue.
L'esito desiderato è creare una cultura dell’affidabilità e della collaborazione che migliori l’esperienza degli utenti, generi valore per il business e riduca al minimo le interruzioni.
Ogni applicazione cloud, con il proprio team amministrativo o di SRE, tenderà ad adottare o sviluppare una soluzione di monitoraggio. Per ridurre al minimo i piani di controllo, i team operativi dovrebbero preferire la collaborazione con un team di strumenti centralizzato, al fine di adottare una soluzione di monitoraggio centralizzata.
Consolidare centralmente i log di sistema, degli eventi e delle applicazioni semplifica notevolmente il monitoraggio operativo e la diagnosi dei problemi, riducendo il numero di sorgenti e posizioni di log che il personale operativo deve monitorare e gestire. Ciò consente ai team di impostare sistemi di monitoraggio completi per raccogliere e analizzare continuamente le metriche e i log dei vari componenti del sistema. Questi sistemi inviano avvisi quando gli SLI si discostano dai valori accettabili, permettendo agli ingegneri o ai processi automatizzati di reagire rapidamente ai segnali rilevanti.
Il vecchio modello ‘break-fix’ non è più efficace negli ambienti IT moderni, in cui crescono le aspettative dei clienti, le soluzioni multi-cloud sono sempre più diffuse e il personale esperto a disposizione è limitato. Gli strumenti di Artificial Intelligence Assisted Operations (AIOps) aiutano i team operativi a mantenere la disponibilità, le prestazioni e la sicurezza dei propri ambienti, consentendo di individuare e risolvere rapidamente i problemi potenziali o in corso.
L'adozione di AIOps è resa possibile da attività chiave tra cui:
Le specifiche e la configurazione dell'infrastruttura sono gestite come il codice, ovvero utilizzando strumenti di provisioning automatico per abilitare la gestione della configurazione e garantire la coerenza dell'infrastruttura tra le diverse distribuzioni.
Una configurazione coerente dell'infrastruttura tramite il codice garantisce ambienti riproducibili durante i cicli di vita SLDC e le distribuzioni tra diversi ambienti.
Questo approccio offre benefici chiave, tra cui:
I team di prodotto collaborano con gli stakeholder per definire gli Obiettivi di livello di servizio (SLO) e gli Indicatori di livello di servizio (SLI) che misurano la resilienza e l’erogazione di un servizio. Gli SLI possono avere una relazione molti a uno con gli SLO, che utilizzano metriche misurabili come latenza, tassi di errore e tempo di attività, per raggiungere gli obiettivi stabiliti.
La creazione di SLO e SLI offre benefici fondamentali, tra cui:
È necessario sviluppare costantemente procedure che definiscono ruoli, responsabilità, canali di comunicazione e percorsi di escalation durante processi chiave quali la gestione di incidenti, cambiamenti e problemi. Queste procedure garantiscono un utilizzo funzionale, sicuro, scalabile ed economico delle risorse cloud.
Le procedure comuni per le operazioni cloud includono:
L'implementazione e la gestione di procedure ben definite include simulazioni di processo per emulare gli scenari e garantire che i team siano adeguatamente preparati a operare tra squadre con qualità ed efficienza.
Dopo un incidente imprevisto, i team conducono analisi e indagini senza attribuire colpe, per identificare i fattori che hanno contribuito all'incidente, le cause principali e l’efficacia della risposta. A questo segue una soluzione digitalizzata e/o automatizzata per prevenire incidenti simili in futuro.
Questa pratica prevede revisioni e perfezionamenti periodici attraverso insight basati sui dati, analisi post-incidente e feedback dagli stakeholder. Inoltre, via via che i servizi vengono integrati e incorporati negli ambienti, l'integrazione con le soluzioni automatizzate esistenti è fondamentale per mantenere un approccio proattivo.
Questo garantisce che i processi non rimangano statici, bensì si evolvano per soddisfare obiettivi, requisiti e sfide aziendali in continua evoluzione.
È necessario collaborare con i team di sicurezza per garantire che le misure di sicurezza siano integrate nei processi di sviluppo, implementazione e manutenzione.
Questo include l'approccio "shift-left" della sicurezza e dei cicli di vita dello sviluppo del software (SDLC), con particolare attenzione all'implementazione delle policy attraverso soluzioni codificate e automatizzate.
Una collaborazione costante con la sicurezza garantisce che i workload implementati rimangano allineati alle policy dinamiche dell'organizzazione e agli obiettivi aziendali. Altri processi includono l'impiego di valutazioni regolari della sicurezza, l'integrazione della gestione delle vulnerabilità e l'avvio di controlli periodici della conformità.