Un ingegnere dell'affidabilità del sito (SRE) può contribuire al successo di DevOps, fornire una maggiore visibilità sullo stato dei servizi mission-critical, migliorare i tempi di risposta agli incidenti e garantire l'alta disponibilità di tutte le applicazioni. In questo articolo vedremo cos'è un SRE e come può aiutare la tua organizzazione a migliorare la qualità e l'affidabilità complessive del ciclo di vita dello sviluppo software (SDLC).
Che cos'è un tecnico dell'affidabilità del sito?
Un ingegnere dell'affidabilità del sito è responsabile del monitoraggio, dell'automazione e dell'affidabilità delle operazioni IT. Utilizzano strumenti di sviluppo software per automatizzare le operazioni IT come la gestione delle modifiche, la risposta agli incidenti e la gestione dei sistemi di produzione. Inoltre, è responsabile del monitoraggio dello stato di integrità dei deployment software e della ritrasmissione di log e dati agli sviluppatori.
Perché SRE?
Le iniziali SRE possono riferirsi a un tecnico dell'affidabilità del sito o alla pratica dell'ingegneria dell'affidabilità del sito. Lo scopo della pratica SRE è assicurarsi che i servizi e le applicazioni di un'organizzazione siano sempre attivi e disponibili, anche attraverso aggiornamenti frequenti eseguiti dal team di sviluppo.
Il ruolo di SRE si basa fortemente su strumenti software e automazione in grado di semplificare le attività quotidiane come il monitoraggio delle applicazioni o la gestione dei sistemi. Quando gli sviluppatori aggiornano un'applicazione, le loro modifiche a volte possono influire negativamente sull'applicazione e ridurne le performance o addirittura arrestarla in modo anomalo. Gli SRE devono tenere sotto controllo questi potenziali problemi e assicurarsi che gli errori nel codice software o nell'implementazione non influiscano sulla capacità dell'organizzazione di servire in modo soddisfacente i propri clienti.
Gran parte delle responsabilità di un SRE è quella di fungere da buffer e facilitatore tra lo sviluppo IT e le operations. Gli sviluppatori vogliono aggiornare il proprio software rapidamente e spesso, ma i team operativi vogliono muoversi un po' più lentamente per assicurarsi che gli aggiornamenti non causino problemi.
A causa di questa esigenza di mantenere il miglior equilibrio tra sviluppo e operazioni, gli SRE devono riunire diversi processi, tra cui l'ingegneria software, le operazioni e la gestione dell'infrastruttura, in un'unica soluzione. In genere sono anche molto abili nella creazione e nella gestione di reti e sistemi in generale e sanno come prevedere e prevenire costosi downtime e interruzioni del sistema.
Che cosa fanno i Site Reliability Engineer?
Gli SRE lavorano per mantenere la disponibilità, le performance e l'affidabilità dell'infrastruttura IT di un'organizzazione. Ciò include la progettazione, l'implementazione e il monitoraggio generale dei sistemi per mantenerli operativi al massimo dell'efficienza e sempre in grado di fornire il tipo di esperienza intuitiva e reattiva che gli utenti finali desiderano.
Sfruttando gli strumenti software, gli SRE possono automatizzare e semplificare molte attività operative cruciali, come l'analisi dei log, l'applicazione di patch e l'aggiornamento di applicazioni e sistemi, il test degli ambienti di produzione e così via. Inoltre, gestiscono da vicino tutti i sistemi, rilevano e risolvono i problemi che si verificano e conducono attività post-mortem dopo un incidente per analizzare cosa è accaduto e come può essere evitato in futuro.
Altre responsabilità includono:
- Consultarsi con gli sviluppatori per garantire che l'affidabilità sia progettata e integrata in ogni applicazione
- Collaborazione con le operations per verificare che le applicazioni nuove e aggiornate dispongano di un supporto sufficiente dall'infrastruttura IT esistente
- Previsione e pianificazione delle esigenze di capacità, nonché delle performance e della resilienza del sistema
- Definizione delle metriche chiave come indicatori del livello di servizio (SLI) e obiettivi del livello di servizio (SLO) per misurare i progressi e il successo nel tempo
- Miglioramento del ciclo di vita dello sviluppo software, soprattutto dopo gli incidenti
- Assistenza ai team di sviluppo attraverso la scalabilità del sistema, l'implementazione dell'automazione e la creazione di nuove funzionalità
- Risposta e risoluzione dei problemi di escalation del supporto
SRE è lo stesso di DevOps?
SRE non è lo stesso di DevOps, ma ci sono alcune somiglianze negli obiettivi di ciascun team. Sia SRE che DevOps vogliono che lo sviluppo e le operations lavorino in modo più stretto ed efficace. Sia SRE che DevOps sono fortemente a favore dell'automazione e dell'ottimizzazione dei sistemi.
Mentre le pratiche DevOps tradizionali hanno portato a una migliore collaborazione complessiva e a cicli di sviluppo software più rapidi, DevOps genere DevOps non ha avuto nessuno nel proprio team che sia specificamente responsabile di guidare lo sviluppo che migliora o aumenta le performance e l'affidabilità del sito. È qui che si fa notare l'SRE. L'unico scopo di un SRE è fornire (o mantenere) affidabilità e scalabilità nell'intero sistema.
Dove DevOps si concentra sulla velocità e sull'agilità, gli SRE si concentrano sulla gestione dell'infrastruttura e sulla sua disponibilità e performance elevate. DevOps è più un approccio culturale in un'organizzazione, ma un SRE utilizza competenze altamente specializzate per supportare DevOps e garantire al tempo stesso le operazioni di picco.
Anche nell'ambito della cultura DevOps, gli SRE fungono da ponte tra le operations IT e lo sviluppo. Spesso fungono da garanzia di qualità, ma si tratta di QA proattivo. Gli SRE sono spesso un fattore critico che consente al DevOps di avere successo aiutando a definire l'equilibrio ideale tra stabilità del sistema e velocità di sviluppo.
Di quali competenze ha bisogno un SRE?
Poiché gli SRE costituiscono il ponte tra le operations IT e gli sviluppatori, hanno bisogno di una vasta gamma di competenze. Molti degli SRE odierni sono ex amministratori di sistema che sanno come codificare o ex sviluppatori software con esperienza sul lato delle operazioni.
Gli SRE devono sapere come progettare e creare sistemi IT resilienti e scalabili. Devono comprendere una varietà di piattaforme di cloud computing. Devono anche sapere come configurare i protocolli di rete e gestire i database. E, cosa più importante, hanno bisogno di eccellenti capacità di problem-solving e comunicazione.
Altre competenze preziose possono includere:
- Comprensione approfondita dell'infrastruttura IT, sia nel cloud che on-premise
- Esperienza nella tecnologia e nell'orchestrazione dei containers
- Capacità di instaurare relazioni strategiche con partner, vendor e colleghi di tutte le business unit
- Esperienza con linguaggi di codifica, strumenti di monitoraggio e controllo delle versioni, database e sistemi operativi
- Gestione e manutenzione dell'infrastruttura del sito web
- Familiarità con l'integrazione continua/lo sviluppo continuo (CI/CD )
- Esperienza con i sistemi di calcolo distribuiti
Gli SRE sono richiesti?
La risposta a questa domanda è sì! Gli SRE sono più richiesti che mai e questo slancio non mostra segni di rallentamento. Gli analisti di settore di Gartner hanno stimato che entro il 2027, il 75% delle aziende utilizzerà le pratiche SRE in tutta l'organizzazione per ottimizzare le operazioni. Questa percentuale rappresenta un grande balzo in avanti rispetto al 10% delle aziende che hanno utilizzato le procedure SRE nel 2022.
Man mano che le organizzazioni spostano sempre più le applicazioni e i servizi online, i clienti continuano a aspettarsi un accesso trasparente ai servizi senza downtime o ritardi. Gli SRE sono una parte fondamentale per soddisfare queste aspettative, soprattutto nei settori in cui i downtime possono causare gravi ripercussioni, come la tecnologia, la sanità e la finanza.
Le grandi organizzazioni globali hanno bisogno di ingegneri con competenze SRE per garantire l'affidabilità dei propri servizi e applicazioni. Anche se il ruolo ha molti requisiti tecnici, il percorso di carriera SRE è ampiamente aperto e può portare a ulteriori ruoli di gestione e leadership.