Il team SRE è un gruppo di ingegneri responsabili di garantire l’affidabilità e la disponibilità di un determinato servizio. Lavorano per migliorare le prestazioni, l’affidabilità e la progettazione dei sistemi in modo che siano sufficientemente affidabili per i carichi di lavoro mission-critical. Un team SRE deve possedere competenze tecniche di ingegneria del software, automazione dell’infrastruttura e pratiche DevOps.
La SRE è nata come risposta per colmare il divario tra sviluppo e operazioni. L’obiettivo principale del team SRE è garantire il rilascio dei progetti senza problemi. Hanno una conoscenza approfondita sia del prodotto che dell’infrastruttura, in modo da poterli gestire correttamente.
Potreste aver sentito parlare del ruolo di “ingegnere dell’affidabilità del sito”, ma in realtà gli ingegneri dell’affidabilità del sito comprendono un intero team di ruoli diversi. Ogni ruolo aggiunge un insieme unico di competenze ed esperienze a questo settore specializzato.
Un team di affidabilità del sito è spesso una combinazione di persone provenienti da diversi team: team DevOps, team di sviluppo software, amministratori di sistema e architetti di sistema. Questi lavorano insieme per creare un team ingegneristico completo in grado di gestire le esigenze di uno stack tecnologico complesso (ad esempio, server web, database, orchestrazione di container) e migliorare l’affidabilità del sistema.
I ruoli e le responsabilità di un team SRE variano a seconda del prodotto o servizio specifico di cui è responsabile.
Vediamo alcuni dei membri più comuni che compongono un team SRE.
Il Site Reliability Manager è responsabile della strategia generale del team SRE. È responsabile della creazione di un piano che soddisfi gli obiettivi aziendali, della gestione delle risorse e della creazione di pratiche SRE che portino gli ingegneri al successo. È inoltre responsabile della comunicazione delle strategie e degli obiettivi agli altri team.
I manager SRE devono avere una grande esperienza nell’ingegneria del software, in DevOps e nell’architettura dell’infrastruttura. Devono essere in grado di pensare in modo strategico e di guidare il team verso soluzioni in grado di risolvere i problemi in modo rapido ed efficiente.
Gli sviluppatori di software e gli ingegneri del software sono responsabili della creazione e della manutenzione del software che alimenta un sistema. Le loro responsabilità all’interno di un team SRE comprendono lo sviluppo di codice, la scrittura di script di automazione e la garanzia di un’erogazione affidabile dei servizi.
La responsabilità principale di uno sviluppatore di software o di un ingegnere del software in un team SRE è quella di sviluppare applicazioni software che soddisfino le esigenze dell’organizzazione. Collaborano con gli ingegneri del software per pianificare, progettare e costruire nuove caratteristiche o funzionalità. Gli sviluppatori si occupano anche della risoluzione dei problemi e dei difetti, ricercando le cause principali e sviluppando soluzioni.
Inoltre, possono essere responsabili della stesura o dell’aggiornamento della documentazione, come i manuali utente o le specifiche tecniche.
Gli ingegneri DevOps sono responsabili dell’automazione del ciclo di vita di un servizio, dallo sviluppo alla distribuzione. Utilizzano strumenti come Ansible e Terraform per automatizzare l’infrastruttura come codice (IaC). Ciò consente loro di distribuire rapidamente le applicazioni in ambienti diversi con il minimo sforzo manuale.
Nei team SRE, gli ingegneri DevOps monitorano e analizzano anche le prestazioni del sistema per identificare potenziali problemi prima che diventino tali. Utilizzano la loro conoscenza dell’architettura dell’applicazione per progettare, sviluppare e implementare soluzioni automatizzate.
Gli amministratori di sistema sono responsabili della manutenzione dell’infrastruttura di un servizio. Ciò include l’impostazione e la configurazione dei server, la distribuzione di aggiornamenti software, l’installazione di patch di sicurezza e l’esecuzione di attività di manutenzione regolari.
Gli amministratori di sistema di un team SRE possono anche essere responsabili dello sviluppo di soluzioni automatizzate per migliorare le prestazioni, la disponibilità e la scalabilità del sistema. Sono anche in grado di rispondere rapidamente agli incidenti e alle interruzioni di servizio, risolvendo i problemi dell’infrastruttura per identificare la causa principale di qualsiasi problema.
Gli ingegneri di sistema sono responsabili della configurazione, della gestione e della manutenzione dell’infrastruttura sottostante. Utilizzano strumenti come Kubernetes per distribuire le applicazioni in container e monitorare le prestazioni del sistema. Ciò contribuisce a mantenere alta la disponibilità e la stabilità del servizio, garantendo al contempo la scalabilità nel tempo.
Nei team SRE, gli ingegneri di sistema spesso collaborano con il team di sviluppo e gli ingegneri DevOps per progettare, costruire e mantenere un’infrastruttura affidabile. Utilizzano la loro conoscenza dell’architettura dell’applicazione per ottimizzare le prestazioni del sistema.
Gli architetti sono responsabili della progettazione di un’architettura di sistema complessiva che soddisfi le esigenze dell’organizzazione. Questo include la comprensione delle esigenze degli utenti, l’esplorazione delle tecnologie possibili e la selezione delle soluzioni migliori per soddisfare tali esigenze.
Nei team SRE, gli architetti sono anche responsabili della progettazione di un’architettura di sistema scalabile, sicura e affidabile. Utilizzano la loro esperienza nei sistemi distribuiti per sviluppare strategie di monitoraggio e gestione delle prestazioni in più ambienti.
Gli ingegneri di rete sono responsabili dell’impostazione e dell’amministrazione dell’intera rete. Utilizzano strumenti come Cisco IOS e Juniper JUNOS per configurare router, switch, firewall, VPN e altre apparecchiature di rete. Ciò contribuisce a garantire un accesso sicuro ai servizi e ai dati da qualsiasi parte del mondo.
Nei team SRE, gli ingegneri di rete sono anche responsabili del monitoraggio e della manutenzione dell’infrastruttura di rete. Identificano in modo proattivo i potenziali problemi della rete e si impegnano a risolverli rapidamente per garantire la disponibilità continua del servizio.
Gli ingegneri addetti ai test sono responsabili dello sviluppo e dell’esecuzione di test per garantire la qualità di un servizio. Ciò include la scrittura di script di automazione e l’implementazione di pipeline di integrazione continua/consegna continua (CI/CD).
Nei team SRE, gli ingegneri addetti ai test collaborano con gli sviluppatori per testare nuove caratteristiche o funzionalità prima che diventino operative. Utilizzano la loro conoscenza dell’architettura dell’applicazione per sviluppare strategie di automazione, che contribuiscono a ridurre la necessità di test manuali. Inoltre, utilizzano la loro esperienza per sviluppare test di performance che aiutano a identificare potenziali problemi prima che diventino tali.
Sì, è possibile esternalizzare la SRE. Molte organizzazioni decidono di assumere un team esterno di esperti SRE invece di creare un proprio team SRE interno. Si tratta di un’ottima opzione per le aziende che non vogliono sostenere le spese generali o i costi associati allo sviluppo e al mantenimento di un team SRE interno.
Quando si tratta di esternalizzare i servizi SRE, ci sono alcuni aspetti da considerare. Innanzitutto, è necessario trovare il partner SRE giusto e assicurarsi che abbia le competenze necessarie per fornire i servizi richiesti con alta qualità. Dovete anche considerare la loro esperienza in progetti simili e valutare come saranno in grado di implementarli per la vostra organizzazione.
Infine, dovete assicurarvi che il partner SRE disponga degli strumenti e dei processi giusti per supportare la vostra organizzazione. Ciò include l’assicurazione che il partner disponga di un solido sistema di monitoraggio delle prestazioni e dei tempi di attività, nonché di sistemi di automazione per identificare e risolvere rapidamente i potenziali problemi.
Quando si assume un team SRE, è importante cercare persone con il giusto mix di competenze tecniche, capacità di risolvere i problemi e attenzione al cliente. Gli amministratori di sistema, gli ingegneri di sistema, gli architetti, gli ingegneri di rete e gli ingegneri addetti ai test sono tutti ruoli importanti all’interno di un team SRE. Ciascun ruolo svolge un ruolo critico nel garantire l’affidabilità, la scalabilità e le prestazioni del servizio.
Investendo nei giusti membri del team, le organizzazioni possono garantire che i loro servizi siano affidabili, sicuri e performanti per i clienti. In definitiva, questo aiuterà le aziende a raggiungere gli obiettivi aziendali desiderati e a fornire un’esperienza positiva ai clienti.
Contatto Sebastiano Piccinno
Sebastiano è sempre disponibile a discutere delle vostre esigenze specifiche. È in grado di fornirvi rapidamente un quadro preciso della soluzione che possiamo offrire per soddisfare le vostre esigenze.
“Right People Group ci ha aiutato a stabilire un ambiente di test simile a quello già esistente per i nostri test funzionali; il Team è stato molto efficiente e ha trovato rapidamente la persona giusta per i nostri bisogni. Sono stati semplicemente impressionanti, grazie per la serietà e la capacità di risposta.”
Jesus Gonzalez Alvarez, Responsabile del prodotto, Schneider Electric