# Site Reliability Engineering

Site Reliability Engineering (SRE), ou "Engenharia de Confiabilidade de Sites" (em uma tradução livre), é uma disciplina que incorpora aspectos da engenharia de software e os aplica a resolução de problemas deoperações de TI. Ou seja, são profissionais de engenharia de software que se responsabilizam, de forma multidisciplinar, na gestão e automação do ambiente de tecnologia. Os principais objetivos são criar sistemas de software ultra escaláveis e altamente confiáveis. De acordo com Ben Treynor, fundador da Equipe de Confiabilidade de Site da Google, o SRE é "o que acontece quando um engenheiro de software é encarregado do que costumava ser chamado de operações".

## História

O conceito de Site Reliability Engineering foi criado no Google em 2003, quando Ben Treynor foi contratado para liderar uma equipe de sete engenheiros de software responsáveis por um ambiente de produção. A equipe foi encarregada de fazer com que os sites do Google funcionassem de maneira suave, eficiente e confiável. No início, os sistemas de larga escala do Google exigiam que a empresa apresentasse novos paradigmas sobre como gerenciar sistemas tão grandes e, ao mesmo tempo, introduzir novos recursos continuamente, mas com uma experiência de usuário final de alta qualidade. Atualmente, muitos produtos têm equipes SRE de pequeno a médio porte que os suportam, embora nem todos os produtos tenham SREs. Os processos de SRE que foram aprimorados ao longo dos anos estão sendo usados ​​por outras empresas, principalmente de grande porte, que também estão começando a implementar esse paradigma.

## Papel

Com o foco na confiabilidade do sistema, o objetivo do SRE está em encontrar formas para aprimorar o design e a operação dos sistemas para fazê-los mais escaláveis, confiáveis e mais eficientes. Em geral, uma equipe SRE é responsável pela disponibilidade, latência, desempenho, eficiência, gerenciamento de mudanças, monitoramento, resposta a emergências e planejamento de capacidade dos serviços sob sua supervisão. Isso significa que os SREs precisam ter uma compreensão holística dos sistemas e das conexões entre esses sistemas.
Um Engenheiro de Confiabilidade de Site (SRE) deve gastar até 50% do seu tempo fazendo trabalhos relacionados a "operações", como resolução de problemas, plantão e intervenção manual. Como o sistema de software que um SRE supervisiona deve ser altamente automático e auto-recuperável, o SRE deve gastar os outros 50% de seu tempo em tarefas de desenvolvimento, como novos recursos, dimensionamento ou automação. O candidato SRE ideal é um administrador de sistemas altamente qualificado com conhecimento de desenvolvimento de código e automação.
São algumas das vantagens do SRE:
* Reduzir os silos dentro da organização
* * O SRE compartilha a responsabilidade com os desenvolvedores, criando uma responsabilidade compartilhada
* SREs tratam os riscos
* O SRE incentiva os desenvolvedores e gestores de produtos a se movimentarem rapidamente, reduzindo o custo da falha
* Alavancam o uso de ferramentas e automação
* Criam métricas.
== Referências ==
* ↑ Are SRE the next data scientists?, TechCrunch, 2 de março de 2016, Donald Fischer
* ↑ SRE O que é Site Reliability Engineering?, ChurrOps on DevOps, 09 de Outubroo de 2017, Henrique Bueno
* ↑ Site reliability engineering (SRE): A simple overview, O'Reilly, 16 de agosto de 2018, Mac Slocum
* ↑ «Site Reliability Engineer - SRE: 7 Hábitos bem-sucedidos». MANDIC. 8 de agosto de 2018. Consultado em 15 de fevereiro de 2020
* ↑ «Google - Site Reliability Engineering». landing.google.com
* ↑ «Google - Site Reliability Engineering». landing.google.com

### Geral

* Site Reliability Engineering, O'Reilly Media, April 2016, Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy, ISBN 978-1-4919-2909-4
* The Practice of Cloud System Administration: Designing and Operating Large Distributed Systems, Volume 2, Thomas Limoncelli, ISBN 032194318X
* Livro Google SRE em Português: https://elven.works/livro-sre-google/