Modelos de engajamentos de um SRE com um grupo de trabalho
Tags: sre, devops, beginners
Published: 2023-07-08 19:33:24

> **Importante**: o texto a seguir é fruto de um exercício de criação de um time de SRE, onde os times de desenvolvedores seriam os responsáveis por criar e manter a infraestrutura e aplicações.
> Não existe um modelo certo ou errado, nem considere esse texto como uma verdade absoluta.
>  Boa parte desse material foi baseado nos livros: [The Site Reliability Workbook](https://sre.google/workbook/table-of-contents/) e [Site Reliability Engineering](https://sre.google/sre-book/table-of-contents/). Você poderá encontrar frases ou partes do livros, nesse texto e nos outros.

No post anterior abordei um pouco sobre os [Compromissos de um SRE com um grupo de trabalho](https://dev.to/rafaelonline/compromissos-de-um-sre-em-um-grupo-de-trabalho-1m8f). Nesse abordarei algumas formas que um time de SRE poderia se envolver com as equipes de desenvolvimento.

## Os Modelos de Engajamento SRE

Os SREs podem trabalham com equipes de desenvolvimento de produtos de acordo com os seguintes modelos de envolvimento diferentes:

-   Part Time, em projetos pontuais e/ou de forma temporária
-   Full time, com dedicação quase exclusiva e permanente
-   Suporte alternativo

### Part Time em projetos pontuais e/ou de forma temporária

Os SREs junto com as lideranças avaliam a importância do serviço e a disponibilidade da equipe SRE. Se o serviço necessita do suporte e ambos concordam com os níveis de pessoal para facilitar esse suporte, um envolvimento Part Time é estabelecido.

A etapa inicial do envolvimento do SRE é a **Revisão de Prontidão de Produção (PRR)**, um processo que identifica as necessidades de confiabilidade de um serviço.

Os objetivos da PRR são os seguintes:

- Avaliar a maturidade da equipe em relação às práticas de SRE;
- Verificar se um serviço atende aos padrões aceitos de configuração de produção e prontidão operacional;
- Melhorar a confiabilidade do serviço na produção e minimizar o número e a gravidade dos incidentes que podem ser esperados.

O modelo de PRR segue as seguintes fases:

#### Avaliação

A avaliação é o primeiro segmento do trabalho. Durante esta fase, os revisores do SRE aprendem sobre o serviço e começam a analisá-lo em busca de deficiências de produção. 

Visam aferir a maturidade do serviço ao longo dos vários eixos de preocupação da engenharia de confiabilidade. Eles também examinam o design e a implementação do serviço para verificar se ele segue as práticas recomendadas de produção.

É utilizado um **Guia de Produção**, que consiste em uma lista de verificação específica para o serviço e geralmente é baseada em conhecimento e experiência com sistemas relacionados ou semelhantes e com as melhores práticas.

A equipe SRE também pode consultar outras equipes que tenham mais experiência com determinados componentes ou dependências do serviço, como times de arquitetura e produtos. 

#### Melhorias e Refatoração

A fase de Avaliação leva à identificação das melhorias recomendadas para o serviço. Esta próxima fase procede da seguinte forma:

- As melhorias são priorizadas com base na importância para a confiabilidade do serviço;
- As prioridades são discutidas e negociadas com a equipe de desenvolvimento (negócio e produto também podem ser envolvidos), e um plano de execução é acordado;

A equipe de SRE e de desenvolvimento participam e ajudam umas às outras na refatoração de partes do serviço ou na implementação de recursos adicionais.

Esta fase normalmente varia em duração e quantidade de esforço. A quantidade de tempo e esforço depende da disponibilidade de tempo de engenharia para refatoração, da maturidade e complexidade do serviço.

#### Terminando o envolvimento

O envolvimento do SRE, nesse modelo, não é indefinido. O trabalho dos SREs deve gerar impacto e valor. Alguns motivos que podem levar ao fim do envolvimento:

- O serviço ter sido otimizado para um nível em que não é mais necessário o envolvimento ou um marco é atingido;
- A importância ou relevância do serviço diminuir.
- Fim do ciclo de vida do serviço.

Depois que o trabalho termina e a equipe de desenvolvimento está atuando por conta própria, realizamos a avaliação novamente para medir o valor que foi agregado pelo time de SRE.

##Full time, com dedicação quase exclusiva

No modelo Part time, nem todas as equipes irão se beneficiar do envolvimento direto da equipe de SRE. O Suporte alternativo também nem sempre se mostra viável.

Alguns fatores são levados em conta:

Capacidade de atendimento da equipe de SRE

- Falta de conhecimento e maturidade do time de desenvolvimento;
- Alta demanda de correções necessárias no ambiente, novas funcionalidades e adoção de tecnologias emergentes na empresa;
- Devido às altas demandas, os times são obrigados a priorizar as entregas de negócios ao invés dos aspectos de confiabilidade, qualidade e resiliência.

Levando em consideração os pontos acima, um outro envolvimento é proposto: Full Time, com dedicação quase exclusiva.

Esse envolvimento tem com objetivo:

1. Ter um (ou mais) integrante do time de SRE como responsável por atender dois ou três times relacionadas da empresa. Essa pessoa será responsável por: 

- Suprir gaps de conhecimentos;
- Ajudar a fornecer foco e tempo para aliviar algum fardo das equipes de desenvolvimento;
- Envolvimento precoce em todo ciclo de vida da aplicação;
- Aplicar o Guia de Produção.

2. Os SREs não deverão atuar de forma isolada nos times, um elemento central será responsável por direcionar os objetivos e as ações com base nas necessidades comuns da empresa ou grupo de trabalho (por exemplo: reduzir tempo de incidente), respeitando sempre a necessidade do time, bem como ser um facilitador e gerador de evolução.

### Suporte alternativo

Nem todos os serviços recebem um envolvimento próximo do SRE. Alguns fatores podem ser levados em conta aqui:

- Nem sempre os serviços precisam de alta confiabilidade e disponibilidade, portanto, o suporte pode ser fornecido por outros meios.
- O número de equipes de desenvolvimento que solicitam suporte SRE excede a capacidade disponível das equipes SRE

Quando o SRE não pode fornecer suporte completo, ele fornece outras opções para fazer melhorias na produção, como documentações e consultorias.

#### Documentação

Guias de desenvolvimento e configurações estão disponíveis para tecnologias internas e de sistemas amplamente utilizados. O Guia de Produção documenta as práticas recomendadas de produção para serviços, conforme determinado pelas experiências dos SRE e equipes demais equipes.

#### Consultoria

Os desenvolvedores também podem procurar a consultoria da equipe de SRE para discutir serviços específicos ou áreas problemáticas. A equipe de desenvolvimento leva até o time de SRE os pontos que precisam de atenção e então é realizada uma discussão sobre padrões conhecidos ou soluções que podem ser incorporadas para melhorar o serviço em produção. Porém não é estabelecido um envolvimento.