L'ingegnere dell'affidabilità del sito è un titolo professionale per uno specialista che collabora con gli sviluppatori di software per garantire che i sistemi informatici di un'organizzazione siano scalabili, stabili e prevedibili. La posizione richiede qualcuno che sia a proprio agio sia con l'ingegneria del software che con le operazioni IT. Il termine SRE è stato coniato da Google intorno al 2003, quando la società ha assunto Ben Treynor Sloss per guidare un team di ingegneri del software per eseguire un ambiente di produzione. L'azienda aveva bisogno di creare nuovi paradigmi per gestire i suoi sistemi di grandi dimensioni, introducendo continuamente nuove funzionalità e un'esperienza utente finale (UX) di alta qualità.
Sebbene i compiti di ingegneria dell'affidabilità del sito fossero storicamente svolti dai team operativi, gli SRE di oggi utilizzano apprendimento automatico (ML) per automatizzare le attività precedentemente svolte dal lavoro umano. In genere, gli SRE sono responsabili della selezione strumenti di infrastruttura, gestione dei cambiamenti di produzione e determinazione delle risposte di emergenza. Gli SRE in genere dedicano fino al 50% del loro tempo alle responsabilità operative (inclusi problemi, intervento su chiamata e manuale) e il resto del loro tempo alle attività di codifica e automazione. Tuttavia, queste percentuali e gli obblighi SRE possono variare a seconda dei modelli di business e della cultura specifici.
Competenze di ingegnere dell'affidabilità del sito
Il lavoro dell'SRE si è evoluto oltre quello dell'amministratore di sistema (sysadmin). Le competenze richieste per gli SRE includono una laurea in informatica o un campo correlato, nonché esperienza a livello di produzione in almeno un linguaggio di codice scritto con interfaccia a riga di comando di alto livello (come Java, C / C ++ e Go) e in almeno un linguaggio dinamico (inclusi Ruby, Python e Node.js). Altre competenze richieste possono includere esperienza avanzata in reti, amministrazione Linux / Unix, programmazione di sistemi, sistemi distribuiti, database o ingegneria cloud. I datori di lavoro stanno anche cercando di assumere membri del team SRE che abbiano esperienza nell'analisi basata sui dati e nell'infrastruttura come codice (IaC), nonché cluster di server, bilanciamento del carico e monitoraggio. Altre competenze SRE desiderabili sono l'esperienza con almeno un importante provider di cloud e una tecnologia di container. Competenze trasversali come essere un buon comunicatore sono un vantaggio.
Confronto tra ingegneria dell'affidabilità del sito e DevOps
L'ingegneria dell'affidabilità del sito e DevOps hanno obiettivi simili: mantenere un team diversificato coinvolto nello sviluppo del software, dalla progettazione al funzionamento; automatizzare le attività ripetitive; e l'utilizzo di strumenti di ingegneria nelle operazioni. Al contrario, mentre DevOps si applica a posizioni sia interne che esterne all'IT, SRE si concentra sul supporto delle operazioni IT durante lo sviluppo del software e la distribuzione in produzione. Inoltre, sebbene i leader aziendali di solito siano coinvolti in DevOps, spesso non sono coinvolti in SRE.