Cos'è l'ingegneria dell'affidabilità del sito (SRE)?

8 ottobre 2024

Autori

Camilo Quiroz-Vázquez

IBM Staff Writer

Michael Goodwin

Editorial lead, Automation & ITOps

Cos'è l'ingegneria dell'affidabilità del sito (SRE)?

L'ingegneria dell'affidabilità del sito (SRE) è una pratica di ingegneria del software che combina DevOps e operazioni IT tradizionali per risolvere i problemi dei clienti, automatizzare le attività delle operazioni IT, accelerare la distribuzione del software e ridurre al minimo i rischi dell'IT.

L'ingegneria dell'affidabilità del sito (SRE) supporta la resilienza, la ridondanza e l'affidabilità nel ciclo DevOps e gestisce l'implementazione quotidiana dei programmi software. I responsabili dell'affidabilità del sito seguono generalmente la regola del 50/50, dedicando metà del loro tempo alla risoluzione dei problemi dei clienti, come la gestione delle escalation e la risposta agli incidenti, e l'altra metà all'automazione delle operazioni IT. Queste operazioni includono la gestione del sistema di produzione, la gestione delle modifiche, la risposta agli incidenti e la risposta alle emergenze.

I team SRE colmano il divario tra il modo in cui gli sviluppatori di software vogliono che i programmi funzionino e il modo in cui funzionano in situazioni reali. Gli ingegneri dell'affidabilità del sito collaborano direttamente con i clienti per risolvere i loro problemi e raccogliere dati sull'esperienza degli utenti. I team di progettazione dell'affidabilità del sito (SRE) trasmettono questi dati ai team di sviluppo, fornendo loro approfondimenti più dettagliati sulle prestazioni del software e sugli aggiornamenti che devono essere effettuati.

Gli SRE sanno che i guasti sono inevitabili. Il loro compito è sia identificare (attraverso processi quali l'analisi della causa principale) la causa dei problemi immediati sia utilizzare i dati di monitoraggio e registrazione per prevedere potenziali guasti futuri. Impostano quindi delle automazioni per risolvere questi problemi, rafforzando la resilienza e la ridondanza del sistema.

Questa supervisione automatizzata dei sistemi software su larga scala riduce la necessità per gli amministratori di sistema di completare manualmente le operazioni IT. L'eliminazione delle funzioni manuali aiuta i team IT a risparmiare tempo, eseguire le operazioni in modo più accurato e concentrarsi sul mantenimento delle prestazioni delle applicazioni.

Come funziona l'ingegneria dell'affidabilità del sito?

Quella dell'ingegnere dell'affidabilità del sito è una posizione tecnica che richiede esperienza sia nello sviluppo software che nelle operazioni IT. La comprensione di queste posizioni consente ai team SRE di svolgere il proprio ruolo di supporto al ciclo di vita dello sviluppo del software. L'SRE si basa su una strategia di resilienza attraverso l'automazione uniforme dei processi.

Tradizionalmente, le pratiche di ingegneria dell'affidabilità del sito si concentravano sull'esecuzione delle operazioni e delle attività di amministrazione del sistema. Queste attività includono l'analisi dei registri, l'ottimizzazione delle prestazioni, l'applicazione di patch, il test degli ambienti di produzione, la gestione degli incidenti e l'esecuzione di esami post-mortem. Queste attività venivano inizialmente eseguite manualmente, il che richiedeva molto tempo e le rendeva soggette a errori umani. La modernizzazione dell'ingegneria dell'affidabilità del sito comporta l'automazione di queste attività manuali.

Il monitoraggio e la registrazione svolgono un ruolo chiave nell'SRE. I team di progettazione dell'affidabilità del sito (SRE) utilizzano strumenti di monitoraggio per tracciare in tempo reale cosa accade nei sistemi software. Il monitoraggio consente di risolvere problemi tecnici immediati e aiuta i team ad anticipare i problemi futuri e a risolverli prima che si verifichino.

I registri fungono da archivi che possono essere analizzati per ottenere insight sul funzionamento dei sistemi e migliorarne l'osservabilità. La registrazione crea una roadmap che aiuta i team SRE a comprendere la serie di eventi che hanno causato un errore imprevisto. Gli ingegneri possono automatizzare la correzione dell'errore e impedirne il ripetersi. Sia il monitoraggio che la registrazione aiutano gli ingegneri a identificare i punti di errore e a risolvere programmaticamente i problemi tramite l'automazione, così che non debbano essere risolti manualmente.

I team SRE cercano le lacune dei sistemi anche attraverso un processo chiamato ingegneria del caos. L'ingegneria del caos è una strategia che gli ingegneri dell'affidabilità del sito implementano per causare intenzionalmente guasti negli ambienti di produzione e pre-produzione. Lo scopo dell'ingegneria del caos è quello di capire l'impatto che i guasti di produzione hanno sui sistemi software e sviluppare piani più solidi per mitigare i guasti in futuro.

La progettazione dell'affidabilità del sito (SRE) si concentra anche sulla pianificazione della capacità, un processo che determina le risorse necessarie per eseguire le funzioni aziendali essenziali, scalare tali funzioni aziendali e sviluppare nuove applicazioni e caratteristiche. Inoltre, i team di progettazione dell'affidabilità del sito (SRE) stabiliscono metriche che vengono utilizzate per valutare la consegna degli aggiornamenti e l'implementazione di nuove caratteristiche.

Veduta aerea di uno snodo di autostrade

Rimani con la testa nel cloud 


Ricevi la newsletter settimanale Think per una guida esperta sull'ottimizzazione delle impostazioni multicloud nell'era dell'AI.

Metriche di ingegneria dell'affidabilità del sito

Gli ingegneri addetti all'affidabilità del sito utilizzano varie metriche per contribuire a monitorare la coerenza della fornitura dei servizi e l'affidabilità dei sistemi software, tra cui:

Accordi sui livelli di servizio (SLA)

Gli SLA stabiliscono i termini e le condizioni tra un provider di servizi e un cliente. Questi accordi determinano il livello di prestazioni, gli indicatori concordati per misurare le prestazioni e le ripercussioni in caso di mancata erogazione dei servizi. Un servizio comunemente descritto in uno SLA è il tempo di attività, ovvero la quantità di tempo per cui un servizio è disponibile.

Budget di errore

Il budget di errore è uno strumento che i team di progettazione dell'affidabilità del sito (SRE) utilizzano per riconciliare automaticamente l'affidabilità del servizio di un'azienda con il ritmo di sviluppo e l'innovazione del software. I budget di errore stabiliscono un livello di rischio di errore in linea con gli accordi sui livelli di servizio.

Un obiettivo di tempo di attività del 99,999%, noto come "disponibilità a cinque nove", è una soglia SLA comune. Ciò significa che il budget mensile per gli errori (la quantità totale di tempi di inattività consentiti senza conseguenze contrattuali per un mese specifico) è di circa 4 minuti e 23 secondi. Se un team di sviluppo vuole implementare nuove funzionalità o miglioramenti a un sistema, questo non deve superare il budget di errore.

I bilanci degli errori aiutano i team di sviluppo e i team delle operazioni a migliorare la stabilità e le prestazioni dei servizi. Inoltre, aiutano a prendere decisioni basate sui dati sull'implementazione di nuove caratteristiche o applicazioni e a massimizzare l'innovazione assumendo rischi entro limiti accettabili.

Obiettivi del livello di servizio (SLO)

I team SRE aiutano anche a definire gli obiettivi di livello di servizio (SLO), ovvero un obiettivo di prestazioni concordato per un particolare servizio in un periodo specifico. Gli SLO definiscono il livello che ci si aspetta dai singoli servizi e aiutano gli stakeholder a gestire lo stato di salute di servizi specifici e a soddisfare gli SLA.

Indicatori del livello di servizio (SLI)

Gli SLO sono misurati dagli indicatori del livello di servizio (SLI). Gli SLI sono misurazioni quantitative presentate come percentuali, medie o tassi. Includono la misurazione effettiva di servizi come tempo di attività, latenza, throughput e tassi di errore.

IBM DevOps

Cos'è DevOps?

Andrea Crawford spiega cos'è DevOps, il suo valore e in che modo le pratiche e gli strumenti DevOps ti aiutano a spostare le tue app nell'intera delivery pipeline, dall'ideazione alla produzione. Guidato dai principali leader di pensiero IBM, il curriculum è progettato con lo scopo di aiutare i leader aziendali ad acquisire le conoscenze necessarie per dare priorità agli investimenti nell'AI che possono promuovere la crescita.

SRE e DevOps

DevOps è una metodologia di sviluppo software che accelera la fornitura di applicazioni e servizi di qualità superiore combinando e automatizzando il lavoro dei team di sviluppo software e delle operazioni IT. DevOps aiuta ad automatizzare il ciclo di vita dello sviluppo del software (SDLC), conferisce ai team di sviluppo e operazioni una maggiore responsabilità condivisa e fornisce agli stakeholder un input nell'SDLC.

SRE e DevOps sono strategie complementari nell'ingegneria del software che eliminano i silos e rendono più efficiente e affidabile la distribuzione del software.

Mentre i team DevOps si concentrano sulla risoluzione della domanda: "cosa deve fare questo software?". I team SRE lavorano per rispondere alla domanda: "come si può distribuire e mantenere questo software, in modo che funzioni come richiesto?". I team SRE forniscono ai team DevOps dati reali sulle prestazioni del software, portando un equilibrio di dati pratici nel mondo teorico dello sviluppo software.

Come l'SRE, il DevOps rende l'azienda più agile, bilanciando la necessità di fornire più applicazioni e modifiche più velocemente con la necessità di non "interrompere" l'ambiente di produzione. Sia l'SRE che il DevOps mirano a raggiungere questo equilibrio stabilendo un rischio di errori accettabile. I team DevOps si concentrano sugli aggiornamenti e sulla distribuzione di nuove caratteristiche, mentre le pratiche di progettazione dell'affidabilità del sito (SRE) lavorano per proteggere l'affidabilità dei sistemi nella fase della scalabilità.

I team DevOps e progettazione dell'affidabilità del sito (SRE) semplificano i metodi di comunicazione e stabiliscono un ciclo di feedback costante. Un ciclo del genere potrebbe funzionare così: quando un team di progettazione dell'affidabilità del sito (SRE) scopre la causa principale di un errore, invia i risultati al team DevOps che può sviluppare un aggiornamento per la versione successiva del software. Nel frattempo, gli SRE creano automazioni per risolvere il problema e tengono traccia dei dati di monitoraggio e registrazione per assicurarsi che il problema sia stato risolto.

Vantaggi dell'SRE

Oltre a supportare il successo di DevOps, l'ingegneria dell'affidabilità del sito può aiutare le organizzazioni a:

  • Ottenere una maggiore visibilità sullo stato di salute dei servizi tracciando metriche, log e tracce su tutti i servizi organizzativi e rafforzare le funzionalità di analisi della causa principale.

  • Migliorare l'affidabilità dei sistemi software attraverso le interazioni quotidiane con i clienti e la condivisione collaborativa dei dati degli utenti con i team DevOps.

  • Scalare i sistemi software automatizzando i processi manuali che eliminano la fatica, riducono gli errori e risolvono i problemi in modo più preciso.

  • Quantificare il costo di inattività e interruzioni aiutando i team di sviluppo e operativi a comprendere il costo delle violazioni degli SLA e aiutando il management a quantificare l'impatto dell'affidabilità del sistema sulla produzione, le vendite, il marketing, il servizio clienti e altre funzioni aziendali.

  • Ottimizzare la risposta agli incidenti creando processi di chiamata efficienti e semplificando i workflow di avviso.

  • Crea un centro operativo di rete moderno abbinando la comprensione approfondita delle operazioni IT al machine learning e all'automazione, per inviare avvisi direttamente alla persona responsabile della risoluzione del problema.

Sviluppo SRE, cloud e cloud-native

Quando le organizzazioni migrano dai tradizionali data center IT e on-premise all'hybrid cloud, spesso generano maggiori volumi di dati operativi. L'SRE svolge un ruolo fondamentale nell'utilizzo di questi dati per automatizzare l'amministrazione dei sistemi, le operazioni e la risposta agli incidenti e per migliorare l'affidabilità aziendale via via che l'ambiente IT diventa più complesso.

Un approccio allo sviluppo cloud-native, in particolare la creazione di applicazioni come microservizi e la loro distribuzione in container, può semplificare lo sviluppo, l'implementazione e la scalabilità delle applicazioni. Tuttavia, lo sviluppo cloud-native crea anche un ambiente sempre più distribuito che complica l'amministrazione, le operazioni e la gestione.

Un team SRE può supportare il rapido ritmo di innovazione abilitato da un approccio cloud-native e migliorare l'affidabilità del sistema, senza caricare di ulteriore pressione operativa i team DevOps.

Soluzioni correlate
IBM Instana Observability

Sfrutta la potenza dell'AI e dell'automazione per risolvere in modo proattivo i problemi in tutto lo stack di applicazioni.

Esplora IBM Instana Observability
Servizi di consulenza per l'automazione

Vai oltre la semplice automazione delle attività per gestire processi di alto profilo, rivolti ai clienti e in grado di generare entrate con adozione e scalabilità integrate.

Esplora i servizi di consulenza per l'automazione
Soluzioni AIOps

Scopri come l'AI per le operazioni IT fornisce gli insight necessari per ottenere eccezionali prestazioni aziendali.

Esplora le soluzioni AIOps
Prossimi passi

Scopri come l'AI per le operazioni IT fornisce gli insight necessari per favorire eccezionali prestazioni di business.

Esplora Instana Observability Prova Instana