A engenharia de confiabilidade do site (SRE) é uma disciplina para criar sistemas de software ultra-dimensionáveis e confiáveis, aplicando práticas de engenharia de software a problemas de infraestrutura e operações. Os engenheiros especializados em confiabilidade do local podem criar soluções que caminham o equilíbrio entre as equipes de desenvolvimento e operações. O Google foi pioneiro nesta função; para obter uma explicação detalhada, leia o e-book do Google, " Engenharia de confiabilidade do Site ".
Os engenheiros de confiabilidade do local (SREs) trabalham entre o desenvolvimento e as operações, mas não necessariamente dentro do DevOps apropriado. O conceito de SRE existe desde 2003, o que significa que é mais antigo que o DevOps. O termo foi tornado popular por Ben Treynor, que criou a equipe de confiabilidade do Site do Google. De acordo com Treynor, SRE é "o que acontece quando um engenheiro de software é encarregado do que costumava ser chamado de operações".
Ambas as disciplinas, DevOps e SRE, visam aprimorar o ciclo de lançamento, ajudando os desenvolvedores e as operações a verem o lado do processo entre si durante todo o ciclo de vida do aplicativo. Eles também defendem a automação e o monitoramento, reduzindo o tempo de quando um desenvolvedor comete uma alteração para quando ele é implantado na produção. SRES e DevOps visam esse resultado sem comprometer a qualidade do código ou do próprio produto.
SRE e DevOps fazem duas perguntas diferentes, mas igualmente valiosas:
O DevOps pergunta o que precisa ser feito.
SRE pergunta como isso pode ser feito.
Os engenheiros de confiabilidade do local medem os indicadores de nível de serviço (SLIs) e os objetivos de nível de serviço (SLOs), enquanto as equipes de DevOps medem a taxa de falhas e a taxa de sucesso ao longo do tempo. SRES compartilham responsabilidades relacionadas aos seguintes pilares de DevOps da melhoria da infraestrutura:
Os SRES não discutem quantos silos existem na empresa, mas incentivam todos os outros a discutir o assunto. Esta discussão é realizada usando as ferramentas e técnicas em toda a empresa, ajudando a espalhar a propriedade por todos os funcionários.
O SRES precisa garantir que não haja muitos erros ou falhas. Para isso, eles usam uma fórmula composta por pontuações SLI e SLO. Os SLIs contam falhas por solicitação, calculando a latência da solicitação, a taxa de transferência de solicitações por segundo ou falhas por solicitação por tempo. Os SLOs são derivados do limiar e da porcentagem, e representam o sucesso dos SLIs ao longo de um determinado período de tempo.
Os SRES estão todos em busca de mudança, mas de uma forma lenta e metódica. Como as empresas querem se mover mais rápido, elas exigem lançamentos frequentes, atualizando continuamente o produto. Assim, DevOps e SREs precisam responder rapidamente, mas manter um ritmo constante e controlado.
Automatize, desde que forneça valor para desenvolvedores e operações, removendo tarefas manuais.
As equipes SRE precisam saber que tudo está se movendo na direção certa. Isso pode ser feito configurando alertas para vários cenários, adotando a revisão de código peer e/ou usando testes unitários.
A engenharia de confiabilidade do site (SRE) e o DevOps são duas disciplinas de tendências com bastante sobreposição; seus objetivos essenciais são entender como medir o sucesso ou a falha e como obter confiabilidade contínua em todas as aplicações. A confiabilidade não se trata apenas da infraestrutura. Ela é relevante em todas as etapas, desde a qualidade da aplicação até a performance e a segurança. SRES se preocupa com cada processo, desde o código-fonte até a implantação; é assim que eles ganham a reputação de ser uma verdadeira ponte do desenvolvimento para as operações.