Rafael Conceição
Posted on July 8, 2023
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 e Site Reliability Engineering. 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. 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:
- 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.
- 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.
Posted on July 8, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.