Fundamentos de SRE: O que esperar da engenharia de confiabilidade do site

blog-SRE.jpg

Nos últimos 20 anos, a maioria das empresas líderes adotou a computação em nuvem e sistemas distribuídos para desenvolver seus aplicativos. Uma consequência não intencional: as operações tradicionais de TI (ITOps) muitas vezes têm dificuldades para lidar com as complexidades do aumento de cargas de trabalho e das tecnologias de nuvem. 

À medida que os sistemas distribuídos crescem, manter as operações e o desenvolvimento separados acaba levando à estagnação. Os desenvolvedores podem querer lançar novos aplicativos ou atualizações, enquanto a equipe de operações, já sobrecarregada com a tarefa de monitorar a infraestrutura existente, pode evitar quaisquer riscos à infraestrutura.

A Engenharia de Confiabilidade de Site (SRE) é uma disciplina que oferece uma abordagem mais complexa, combinando princípios de engenharia de software com práticas operacionais que garantem a confiabilidade do serviço e o desempenho ideal em escala. Os profissionais dessa função são os engenheiros de confiabilidade de site (SREs), que simplificam e automatizam tarefas que a equipe de operações executaria manualmente. Menos tempo gasto em trabalhos tediosos e repetitivos abre portas para a inovação e o crescimento dos negócios.

A engenharia de confiabilidade do site se tornou um componente essencial de uma organização moderna. Os benefícios incluem dizer adeus à resolução reativa de problemas e dar boas-vindas ao desempenho previsível, ao design proativo do sistema, à escalabilidade aprimorada, às interrupções de serviço minimizadas e às novas oportunidades de melhoria. 

Quer saber mais sobre a função do SRE e o mundo da engenharia de confiabilidade de sites? Vamos começar com o básico.

O que é engenharia de confiabilidade de site?

Site Reliability Engineering é a prática de incorporar ferramentas e princípios de engenharia de software às operações de TI. Os SREs criam e mantêm infraestrutura e serviços confiáveis, resilientes, eficientes e de alta escalabilidade. Os SREs melhoram a confiabilidade de sistemas escaláveis. Eles constroem sistemas que são resilientes por design e utilizam software e automação para gerenciar uma infraestrutura em constante crescimento, o que é uma prática muito mais sustentável do que gerenciá-la manualmente.

Os engenheiros de confiabilidade do site são responsáveis por gerenciar e automatizar as operações de TI. Com sua experiência em engenharia de software, eles garantem que os sistemas permaneçam resilientes e disponíveis, corrigindo automaticamente qualquer problema. Essa função supervisiona a entrega e a implantação de novos aplicativos, evitando possíveis interrupções.

História da engenharia de confiabilidade do site

Benjamin Treynor Sloss, vice-presidente de Engenharia do Google, cunhou o termo "engenharia de confiabilidade de sites" em 2003, dizendo: "SRE é o que acontece quando você pede a um engenheiro de software para projetar uma equipe de operações". E foi isso que ele fez.1

Como novo contratado no Google, ele foi incumbido de encontrar uma solução de engenharia para gerenciar operações em rápida expansão e uma infraestrutura massiva e distribuída. No ritmo em que a infraestrutura da empresa estava crescendo, seria impossível contratar o número necessário de engenheiros para gerenciar novos serviços manualmente enquanto inovava no mesmo ritmo. Em vez disso, a equipe de Treynor equilibrou inovação com confiabilidade do sistema, promovendo uma cultura de aprendizado e aprimoramento contínuos.  

Logo, a crescente equipe de SREs do Google se concentrou em implementar novos recursos no ambiente de produção, mantendo sua estabilidade e confiabilidade. Em poucos anos, mais empresas enfrentaram o mesmo problema que o Google. Eles precisavam gerenciar infraestruturas massivas e distribuídas, mantendo a disponibilidade e a confiabilidade dos serviços. Logo, a prática da engenharia de confiabilidade de sites se espalhou além do Google e se tornou essencial para as operações de TI modernas.

O papel dos SREs nas infraestruturas modernas de TI

No mundo digital de hoje, empresas de todos os tamanhos passaram a depender de sistemas altamente disponíveis, com alta escalabilidade e resilientes. Uma interrupção, seja em um website ou em um app móvel, pode resultar em perdas financeiras, má experiência do cliente e ineficiências operacionais. É por isso que os SREs desempenham um papel essencial em qualquer empresa. 

Os SREs facilitam a sua jornada em relação à concorrência. Eles podem resolver problemas de disponibilidade em minutos (em vez de dias) e garantir tempos de carregamento de página rápidos, independentemente do número de usuários. 

Nas empresas, os SREs realizam as mesmas tarefas em uma escala diferente. Eles automatizam a confiabilidade, otimizam o desempenho e evitam falhas no sistema por meio de monitoramento proativo e gestão de incidentes. Ao promover a colaboração entre as equipes de desenvolvimento e operações, os SREs criam sistemas confiáveis e eficientes.

Princípios fundamentais da engenharia de confiabilidade do site

No seu núcleo, a engenharia de confiabilidade de sites trata de abordar problemas operacionais na produção com uma abordagem de desenvolvimento de software. Outros princípios fundamentais incluem aceitar riscos, usar automação e definir objetivos de nível de serviço (SLOs) e indicadores de nível de serviço (SLIs).

Abraçando o risco

Um SRE reconhece que nenhum sistema pode funcionar perfeitamente. Falhas e interrupções são esperadas como parte do processo de inovação. Em vez de tentar evitar falhas, os SREs se concentram em entender um nível de risco aceitável.

Aceitar riscos envolve descobrir o ponto de inflexão entre melhorar a confiabilidade, implementar novos códigos e gerenciar o impacto potencial sobre os usuários. O tempo, a energia ou outros recursos necessários para melhorar a confiabilidade de um serviço são o risco aceitável. O restante é o excesso. Mas quanto risco é aceitável? E em que ponto do processo a experiência do usuário começará a se deteriorar? 

Este princípio fundamental do SRE é baseado em quatro fatores:

  1. Um nível aceitável de confiabilidade para os usuários (determinado pela configuração de SLOs e SLIs)

  2. Custo de melhorias de confiabilidade (incluindo automação e ferramentas)

  3. Risco de não melhorar 

  4. Custo vs. risco (apurado por meio de orçamentos de erros)

Muitas vezes, a chave para abraçar o risco é uma perspectiva cultural. Os SREs funcionam em uma cultura não punitiva. Isso envolve aprender com as falhas e implementar medidas preventivas para aumentar continuamente a confiabilidade do sistema e melhorar o desempenho do aplicativo.

Orçamentos de erros
Um orçamento de erro é uma métrica clara para entender e gerenciar riscos. É a quantidade de tempo de inatividade (ou o número de erros) que um serviço pode experimentar em um determinado tempo. 

Uma quantidade permitida de falta de confiabilidade do sistema (também conhecida como orçamento de erros) ajuda a equilibrar inovação e confiabilidade. Os engenheiros são incentivados a assumir riscos, como acelerar as implantações e lançar novos recursos, porque têm um orçamento de erros. Quando esse limite é atingido, os engenheiros estabilizam o sistema, melhorando a confiabilidade.

As equipes de SRE calculam um orçamento de erro determinando o nível aceitável de erros (ou tempo de inatividade) com base no SLO. Em outras palavras, é a margem de erro permitida por um SLO.

Definindo objetivos de nível de serviço (SLOs) e indicadores (SLIs)

Objetivos de nível de serviço, ou SLOs, são os valores-alvo para o desempenho ao longo de um determinado período. Por definição, tanto as equipes de engenharia quanto as partes interessadas do negócio devem compreender essas metas para definir expectativas claras que orientem a tomada de decisões. 

Os indicadores de nível de serviço, ou SLIs, medem o desempenho do serviço. Normalmente, os SLIs representam prioridades do usuário, como latência de serviço, disponibilidade, taxa de transferência, taxas de erro e outras. 

Nem SLOs nem SLIs são estáticos. Eles evoluem com o tempo e exigem revisão e melhorias regulares.

Desenvolvendo automação e ferramentas

Por fim, a automação. Os SREs se esforçam para substituir tarefas manuais e repetitivas pela automação. Reduzir o trabalho significa melhorar a confiabilidade do sistema e inovar mais rapidamente e de forma mais eficiente.

Algumas equipes de SRE dedicam até metade do seu tempo ao desenvolvimento de ferramentas de automação para implantação, resposta a incidentes e testes. Com o tempo, os recursos avançados de automação ajudam a diminuir o custo de dimensionamento, ao mesmo tempo em que garantem a confiabilidade do serviço e o desempenho ideal.

Principais práticas na engenharia de confiabilidade de sites

Ao executar serviços, as equipes de SRE se concentram em atividades cotidianas importantes, como monitoramento e observabilidade, gerenciamento de incidentes, planejamento de capacidade e gerenciamento de mudanças.

Monitoramento e observabilidade

O monitoramento e a observabilidade do sistema são essenciais para SREs. Eles fornecem visibilidade real para checar se os serviços estão funcionando, o quão bem, onde estão os problemas e assim por diante. 

O monitoramento ajuda os engenheiros de confiabilidade do site a detectar e resolver problemas rapidamente.
A observabilidade fornece insights sobre o desempenho do sistema em tempo real e historicamente para lidar com incógnitas desconhecidas. Rastros, logse métricas são os principais sinais de observabilidade.

4 sinais de ouro da engenharia de confiabilidade de sites

Os quatro sinais de ouro da engenharia de confiabilidade do site são: latência, tráfego, erros e saturação. Essas métricas são fundamentais para a confiabilidade de aplicações, que é a saúde e o desempenho de um serviço em um sistema distribuído. 

  • Latência é o tempo que um sistema leva para responder a uma solicitação (com sucesso ou com erro). Alta latência sinaliza problemas de desempenho que exigem atenção imediata dos SREs.

  • O tráfego mede a demanda do sistema. Dependendo do sistema, pode ser o número de transações por segundo ou solicitações HTTP por segundo. Os SREs usam o tráfego para determinar se a experiência do usuário está se degradando ou não.

  • Erros são a taxa de solicitações que falham. Elas podem falhar explicitamente (como HTTP 500s), implicitamente (por exemplo, HTTP 200, mas com erros de conteúdo) ou por política (por exemplo, qualquer solicitação que leve mais de um segundo para falhar). Dependendo do sistema, o SRE pode priorizar um tipo de erro em detrimento de outros e resolver problemas recorrentes.

  • A saturação indica a capacidade geral do sistema ou o quão "cheio" o serviço está. Ela pode ser medida de várias maneiras, dependendo dos recursos mais limitados ou da carga restante que o sistema consegue suportar.

Os quatro sinais de ouro ajudam os SREs a se concentrarem no planejamento de capacidade, melhorando a confiabilidade do sistema ao longo do tempo, respondendo e gerenciando incidentes e encontrando a causa raiz de um problema


Ainda assim, os quatro sinais de ouro, por si só, não tornam sistemas distribuídos complexos completamente confiáveis. É aí que o rastreamento distribuído entra. Ele contextualiza todos os números de desempenho.

Gerenciamento de incidentes

Como mencionamos anteriormente, quando se trata de SRE, incidentes e interrupções são inevitáveis. No entanto, cada incidente ainda requer uma resposta. Um plano eficaz de resposta a incidentes inclui procedimentos de triagem, protocolos de comunicação claros e caminhos de escalonamento.

Talvez tão importantes quanto sejam as análises postmortem. Uma prática construtiva, a análise postmortem é uma experiência de aprendizado, e não uma oportunidade para apontar culpados. Os SREs devem acompanhar cada incidente, descobrir sua causa raiz e trabalhar com a equipe de desenvolvimento para corrigir o código ou criar ferramentas (se possível) para evitar que ele se repita. 

Aprofunde-se na gestão de incidentes.

Planejamento de capacidade

O planejamento da capacidade garante a confiabilidade do serviço hoje e no futuro. Ele protege contra o excesso e a falta de provisionamento. 

As equipes de SRE fazem a projeção da demanda analisando os padrões históricos de uso e prevendo as necessidades futuras de recursos. Eles buscam ineficiências, otimizam e realocam recursos com base em informações em tempo real e atualizam regularmente esses planos, dependendo da alteração dos dados. 

Usando o planejamento da capacidade, os engenheiros de confiabilidade do site garantem que os sistemas possam lidar com o crescimento e os picos de demanda.

Gerenciamento de alterações

As mudanças frequentemente levam a interrupções, às quais até mesmo os ITOps tradicionais podem atestar. No entanto, em vez de temer interrupções e, portanto, temer mudanças, os SREs adotam a mudança com um conjunto de três práticas recomendadas:

  • Implementações progressivas e controladas minimizam o impacto de problemas potenciais e permitem a detecção precoce.

  • O monitoramento garante que os SREs possam detectar problemas com precisão e em tempo real.

  • Um plano de reversão garante um procedimento seguro e rápido para reverter alterações caso surjam problemas.  

Todas essas três práticas devem ser automatizadas, se possível.

Solução de observabilidade full-stack para SREs com Elasticsearch

O Elastic Observability fornece uma solução unificada para coletar, monitorar e analisar métricas de observabilidade em toda a sua pilha de tecnologia. Com o Elastic Observability, você pode coletar, armazenar e visualizar métricas de observabilidade de qualquer fonte e acelerar a resolução de problemas com a plataforma Search AI da Elastic. 


Combine a busca conversacional e a IA agente com o Elastic Observability para uma experiência de bate-papo contextual que se estende para incluir seus dados e runbooks proprietários. O
Elastic AI Assistant pode ajudar os SREs a interpretar mensagens de log e erros, otimizar o código, escrever relatórios e até mesmo identificar e executar um runbook. Acelere a resolução de problemas, promova a colaboração e desbloqueie o conhecimento para capacitar todos os usuários e garantir a confiabilidade.

Saiba mais sobre observabilidade com a Elastic.

Fontes1. Google, "Google SRE Book", 2017.

O lançamento e o tempo de amadurecimento de todos os recursos ou funcionalidades descritos neste artigo permanecem a exclusivo critério da Elastic. Os recursos ou funcionalidades não disponíveis no momento poderão não ser entregues ou não chegarem no prazo previsto.