Perché le organizzazioni hanno bisogno di ingegneri dell'affidabilità del sito
SRE è un componente prezioso in un'organizzazione efficiente per l'ingegneria del software, l'ingegneria dei sistemi, l'implementazione di DevSecOps e altro ancora.
In questo articolo finale che conclude la mia serie sulle migliori pratiche per un'ingegneria dell'affidabilità del sito (SRE) efficace, tratto alcune delle applicazioni pratiche dell'ingegneria dell'affidabilità del sito.
Esistono alcune differenze significative tra ingegneria del software e ingegneria dei sistemi.
Ingegneria software
- Si concentra solo sullo sviluppo e sull'ingegneria del software.
- Implica la scrittura di codice per creare funzionalità utili.
- Il tempo viene dedicato allo sviluppo di software ripetibile e riutilizzabile che possa essere facilmente esteso.
- Ha orientamento al problem solving.
- L'ingegneria del software aiuta l'SRE.
Ingegneria dei sistemi
- Si concentra sull'intero sistema, inclusi software, hardware e tutte le tecnologie associate.
- Il tempo viene dedicato alla creazione, all'analisi e alla gestione delle soluzioni.
- Si occupa della definizione delle caratteristiche di un sistema e fornisce i requisiti all'ingegneria del software.
- Ha un orientamento al pensiero sistemico.
- L'ingegneria dei sistemi consente la SRE.
Il Site Reliability Engineer (SRE) utilizza sia competenze di ingegneria del software che di ingegneria dei sistemi e, così facendo, aggiunge valore a un'organizzazione.
Mentre il team SRE gestisce i sistemi di produzione, un SRE produce gli strumenti di maggiore impatto per gestire e automatizzare i processi manuali. Il software può essere creato più velocemente quando è coinvolto un SRE, perché la maggior parte delle volte l'SRE crea software per uso proprio. Poiché la maggior parte delle attività di un SRE sono automatizzate, il che comporta molta codifica, ciò introduce un sano mix di sviluppo e operazioni, il che è ottimo per l'affidabilità del sito.
Infine, un SRE consente a un'organizzazione di scalare automaticamente e rapidamente sia che si stia espandendo o riducendo.
SRE e DevSecOps
Un SRE aiuta a creare sistemi di monitoraggio efficaci end-to-end utilizzando log, metriche e tracce. Un SRE consente rollback rapidi, efficaci e affidabili e il dimensionamento automatico verso l'alto o verso il basso dell'infrastruttura in base alle esigenze. Questi sono particolarmente efficaci durante una violazione della sicurezza.
Con l'avvento delle architetture cloud e basate su container, le pipeline di elaborazione dei dati sono diventate una componente importante nelle architetture IT. Un SRE aiuta a configurare l'accesso più restrittivo alle pipeline di elaborazione dei dati.
[ Scarica ora: una guida all'implementazione di DevSecOps ]
Infine, un SRE aiuta a sviluppare strumenti e procedure per gestire gli incidenti. Sebbene la maggior parte di questi incidenti si concentri sulle operazioni e sull’affidabilità dell’IT, il problema può essere facilmente esteso alla sicurezza. Ad esempio, DevSecOps si occupa dell’integrazione di sviluppo, sicurezza e operazioni con una forte enfasi sull’automazione. È un campo in cui i team di sviluppo, sicurezza e operativi lavorano insieme per supportare e mantenere le applicazioni e l'infrastruttura di un'organizzazione.
Progettazione di ambienti informatici SRE e di pre-produzione
Un ambiente di pre-produzione o non produzione è un ambiente utilizzato da un SRE per sviluppare, distribuire e testare.
L’ambiente non produttivo è il banco di prova per l’automazione. Ma non è solo il codice dell'applicazione a richiedere un ambiente non di produzione. Tutti i processi automatizzati associati, principalmente quelli sviluppati da un SRE, richiedono un ambiente di pre-produzione. La maggior parte delle organizzazioni dispone di più di un ambiente di pre-produzione. Somigliando il più possibile alla produzione, l'ambiente di pre-produzione migliora la fiducia nei rilasci. Almeno uno dei tuoi ambienti non di produzione dovrebbe assomigliare all'ambiente di produzione. In molti casi non è possibile replicare i dati di produzione, ma è necessario fare del proprio meglio per far sì che gli ambienti non di produzione corrispondano il più fedelmente possibile agli ambienti di produzione.
Calcolo di pre-produzione e SRE
Un SRE aiuta a creare ambienti di servizio di applicazioni identiche utilizzando automazione e strumenti specializzati. Questo è essenziale, poiché puoi avviare rapidamente un ambiente non di produzione in pochi secondi utilizzando script e strumenti sviluppati dagli SRE.
Un SRE intelligente tratta la configurazione come codice per garantire una rapida implementazione di test e distribuzione. Attraverso l'uso di pipeline CI/CD automatizzate, i rilasci delle applicazioni e gli hot fix possono essere effettuati senza problemi.
Infine, sviluppando soluzioni di monitoraggio efficaci, un SRE aiuta a garantire l'affidabilità di un ambiente informatico di pre-produzione.
Uno dei campi strettamente correlati al calcolo di pre-produzione è lo sviluppo del circuito interno.
Esecuzione sullo sviluppo del ciclo interno
Immagina due cicli, un ciclo interno e un ciclo esterno, che formano il ciclo DevOps. Nel ciclo interno, codifichi, costruisci, esegui ed esegui il debug. Questo ciclo avviene principalmente nella workstation di uno sviluppatore o in qualche altro ambiente non di produzione.
Una volta che il codice è pronto, viene spostato nel ciclo esterno, dove il processo inizia con la revisione del codice, la creazione, la distribuzione, i test di integrazione, la sicurezza e la conformità e infine il rilascio di pre-produzione.
Molti dei processi nel ciclo esterno e nel ciclo interno sono automatizzati dall'SRE.
(Robert Kimani, CC BY-SA 40)
SRE e sviluppo del circuito interno
L'SRE accelera lo sviluppo del ciclo interno consentendo uno sviluppo rapido e iterativo fornendo strumenti per la distribuzione containerizzata. Molti degli strumenti sviluppati da un SRE ruotano attorno all'automazione e all'orchestrazione dei contenitori, utilizzando strumenti come Podman, Docker, Kubernetes o piattaforme come OpenShift.
Un SRE sviluppa anche strumenti per facilitare il debug degli arresti anomali con strumenti come strumenti di analisi del dump dell'heap Java e strumenti di analisi del dump del thread Java.
Valore complessivo dell'SRE
Utilizzando sia l'ingegneria dei sistemi che l'ingegneria del software, un'organizzazione SRE offre soluzioni di grande impatto. Un SRE aiuta a implementare DevSecOps laddove sviluppo, sicurezza e operazioni si intersecano con un focus primario sull'automazione.
I principi SRE aiutano a massimizzare la funzione degli ambienti di pre-produzione utilizzando strumenti e processi forniti dalle organizzazioni SRE, in modo da poter facilmente avviare un ambiente non di produzione in pochi secondi. Un'organizzazione SRE consente uno sviluppo efficiente del circuito interno sviluppando e fornendo gli strumenti necessari.
- Migliore esperienza per l'utente finale: si tratta di garantire che gli utenti delle applicazioni e dei servizi ottengano la migliore esperienza possibile. Ciò include il tempo di attività delle applicazioni o dei servizi. Le applicazioni dovrebbero essere sempre attive e funzionanti e integre.
- Riduci al minimo o elimina le interruzioni: è meglio sia per gli utenti che per gli sviluppatori.
- Automazione: come si suol dire, dovresti sempre cercare di automatizzare il lavoro che stai attualmente eseguendo manualmente.
- Scala: nell'era delle applicazioni native del cloud e dei servizi containerizzati, una scalabilità automatizzata massiccia è fondamentale affinché un SRE possa scalare verso l'alto o verso il basso in modo sicuro e veloce.
- Integrato: i principi e i processi abbracciati dall'organizzazione SRE possono essere, e in molti casi dovrebbero essere, estesi ad altre parti dell'organizzazione, come con DevSecOps.
L'SRE è una componente preziosa in un'organizzazione efficiente. Come dimostrato nel corso di questa serie, i vantaggi dell'SRE interessano molti dipartimenti e processi.
Ulteriori letture
Di seguito sono riportati alcuni collegamenti GitHub ad alcune delle mie risorse SRE preferite:
- Fantastiche risorse ingegneristiche per l'affidabilità del sito
- Strumenti straordinari per l'affidabilità del sito
- Foglio informativo SRE