O que é SRE? (Engenharia de confiabilidade de sites)

Alestan
4 min readAug 6, 2021

Muito se fala hoje sobre SRE e diversas empresas tem adotado esse titulo para seus funcionários e muitas vagas tem surgido no mercado, mas afinal do que se trata esse bicho chamado SRE?

Site Reliability Engineering (SRE) esse titulo foi criado pelo queridíssimo Ben Treynor Sloos, VP de engenharia do Google que na época gerenciava um time de operações (DevOps), a ideia de se criar esta área foi de juntar engenharia de software com operações. Portanto, os time de SRE usam softwares como ferramenta para solucionar problemas, automatizar tarefas e gerenciar sistemas.

De acordo com Benjamin Treynor Sloss, o conceito “é o que ocorre quando você pede a um engenheiro de software para projetar uma equipe de operações”. Isto é, mais precisamente, montar um time de engenharia dedicado a assegurar a confiabilidade e a agilidade dos serviços online ininterruptamente.

Mas o que um engenheiro de SRE faz?

Bom, junta engenharia com Ops haha brincadeiras a parte é o cara que faz com que a aplicação esteja sempre disponível através de diversas ferramentas que evitam com que a aplicação saia fora do ar. A função do engenheiro de confiabilidade de sites é bastante singular pois requer experiência, conhecimento e habilidades em desenvolvimento de software, administração de sistemas e operações de TI, ou seja, ser multidisciplinar.

As equipes de SRE são responsáveis pela maneira como o código é implantado, configurado e monitorado, bem como pela disponibilidade, latência, gerenciamento de mudanças, resposta a emergências e gerenciamento de capacidade dos serviços em produção.

A adoção das práticas de SRE ajuda as equipes a determinar quais funcionalidades novas podem ser lançadas e em que momento. E isso é feito com o uso de contratos de nível de serviço (SLAs) que definem a confiabilidade obrigatória de um sistema por meio de indicadores de nível de serviço (SLI) e objetivos de nível de serviço (SLO).

Na abordagem de SRE, não se espera que haja 100% de confiabilidade, mas as falhas são planejadas e aceitas.

A equipe de desenvolvimento pode “gastar” o orçamento de erro ao lançar uma funcionalidade nova. Com base no SLO e no orçamento de erro disponível, a equipe de desenvolvimento pode determinar se é viável ou não lançar uma certa solução ou serviço.

Se um serviço em execução está dentro desse orçamento, então, a equipe de desenvolvimento pode lançar esse serviço quando desejar. No entanto, se o sistema apresentar muitos erros ou permanecer inativo por um tempo maior do que o permitido pelo orçamento de erro, nenhum lançamento novo deverá ser realizado até que as falhas estejam dentro do parâmetro.

A equipe de desenvolvimento conduz testes automatizados nas operações para demonstrar a confiabilidade.

Os engenheiros de confiabilidade de sites dividem seu tempo entre a execução de tarefas operacionais e o trabalho em projetos. De acordo com as práticas recomendadas pelo Google para SRE, um engenheiro de confiabilidade de sites só pode gastar no máximo 50% do tempo trabalhando nas operações. O tempo deve ser monitorado para assegurar que essa porcentagem não seja ultrapassada.

O restante do tempo é gasto em tarefas de desenvolvimento, como criação de funcionalidades novas, escalonamento do sistema e implementação da automação.

O excesso de trabalho operacional e o baixo desempenho dos serviços podem ser redirecionados para que a equipe de desenvolvimento solucione esses problemas. Assim, o engenheiro de confiabilidade de sites não passa tanto tempo nas operações de uma aplicação ou um serviço.

A automação é uma parte importante da função do engenheiro de confiabilidade de sites. Se eles estiverem enfrentando um problema que se repete, então devem criar uma solução automatizada. Essa também é uma maneira de assegurar que o trabalho operacional não ocupe mais da metade da carga de trabalho desses profissionais.

Manter o equilíbrio entre o trabalho operacional e de desenvolvimento é essencial na abordagem de SRE.

Ferramentas que viabilizam o engenheiro de SRE progredir!

  • Kubernetes
  • Terraform
  • ELK
  • Grafana/Prometheus
  • Golang
  • Python

O foco do engenheiro de SRE deve ser: confiabilidade e robustez

Dicas para Site Reliability Engineers (SREs) serem os melhores.

  • Automatize toda tarefa repetida
  • Seja um analista
  • Seja pragmático e visionário
  • Você pode persuadir as organizações a fazer o que precisa ser feito e por que das suas decisões
  • Estude sempre e busque por novas ferramentas
  • Você confia no processo

[what-is-sre] https://www.redhat.com/pt-br/topics/devops/what-is-sre

--

--