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 de operaçõ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".[1]
História
[editar | editar código]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
[editar | editar código]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.[2] 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.[3]
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.[4]
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[5]
- SREs tratam os riscos[6]
- 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
- ↑ Donald Fischer (2 de março de 2016). «Are site reliability engineers the next data scientists?». TechCrunch (em inglês). Consultado em 12 de dezembro de 2018
- ↑ Henrique Bueno (9 de outubro de 2017). «O que é SRE (Site Reliability Engineering)?». ChurrOps. Consultado em 17 de dezembro de 2018
- ↑ Mac Slocum (16 de agosto de 2018). «Site reliability engineering (SRE): A simple overview». O'Reilly Media (em inglês). Consultado em 17 de dezembro de 2018
- ↑ «7 Hábitos de Site Reliability Engineers (SREs) altamente bem-sucedidos». MANDIC. 8 de agosto de 2018. Consultado em 15 de fevereiro de 2020
- ↑ Beyer, Betsy; Jones, Chris; Petoff, Jennifer; Murphy, Niall Richard (2016). «Chapter 31 - Communication and Collaboration in SRE». Site Reliability Engineering: How Google Runs Production Systems (em inglês). [S.l.]: O'Reilly Media. ISBN 978-1491929124
- ↑ Beyer, Betsy; Jones, Chris; Petoff, Jennifer; Murphy, Niall Richard (2016). «Chapter 3 - Embracing Risk». Site Reliability Engineering: How Google Runs Production Systems (em inglês). [S.l.]: O'Reilly Media. ISBN 978-1491929124
Bibliografia
[editar | editar código]- Beyer, Betsy; Jones, Chris; Petoff, Jennifer; Murphy, Niall Richard (2016). Site Reliability Engineering: How Google Runs Production Systems (em inglês). [S.l.]: O'Reilly Media. ISBN 978-1491929124
- Limoncelli, Thomas A.; Chalup, Strata R.; Hogan, Christina J. (2014). The Practice of Cloud System Administration: Designing and Operating Large Distributed Systems, Volume 2 (em inglês). 2. [S.l.]: Addison-Wesley. ISBN 978-0321943187