O que é engenharia de confiabilidade local (SRE)?

Publicado 08/10/2024
Loop laranja em forma de infinito feito de peças de quebra-cabeça interligadas em um fundo verde-azulado
By Camilo Quiroz-Vázquez and Michael Goodwin

Definição de engenharia de confiabilidade local

A engenharia de confiabilidade local (SRE) é uma prática de engenharia de software que combina DevOps e operações de TI tradicionais para resolver problemas dos clientes, automatizar tarefas de operações de TI, acelerar a entrega de software e minimizar riscos de TI.


A SRE dá suporte à resiliência, à redundância e à confiabilidade no ciclo de DevOps e cuida da implementação cotidiana de programas de software. Os engenheiros de confiabilidade local geralmente seguem a regra do meio a meio: dedicam metade do tempo à resolução de problemas dos clientes, como o gerenciamento de escalonamentos e a resposta a incidentes, e a outra metade à automação das operações de TI. Essas operações incluem o gerenciamento de sistemas de produção, a gestão de mudanças, a resposta a incidentes e a resposta a emergências.

As equipes de SRE reduzem a distância entre o funcionamento ideal dos programas, segundo os desenvolvedores, e o comportamento real dos sistemas em situações do dia a dia. Os engenheiros de confiabilidade atuam diretamente com os clientes para resolver problemas e coletar dados sobre a experiência do usuário. As equipes de SRE repassam esses dados para os times de desenvolvimento, oferecendo insights valiosos sobre o desempenho do software e as atualizações necessárias.

Os SREs entendem que as falhas são inevitáveis. Seu trabalho é tanto identificar (por meio de processos como a análise de causa raiz) a causa dos problemas imediatos quanto usar dados de monitoramento e de registro para prever possíveis falhas futuras. Em seguida, eles configuram automações para resolver esses problemas, incorporando resiliência e redundância ao sistema.

Essa supervisão automatizada de sistemas de software de grande escala reduz a necessidade de os administradores de sistemas realizarem manualmente as tarefas de operações de TI. A eliminação de funções manuais ajuda as equipes de TI a economizar tempo, executar as tarefas de operações com mais precisão e concentrar-se na manutenção do desempenho das aplicações.

Como funciona a engenharia de confiabilidade local?

Um engenheiro de confiabilidade de site é uma posição técnica que requer experiência em desenvolvimento de software e operações de TI. Compreender essas funções permite que as equipes de SRE cumpram seu papel no suporte ao ciclo de vida do desenvolvimento de software. O SRE é baseado em uma estratégia de resiliência por meio da automação consistente de processos.

Tradicionalmente, as práticas de engenharia de confiabilidade local se concentravam na execução de operações e tarefas de administração do sistema. Essas tarefas incluem análise de registros, ajuste de desempenho, aplicação de patches, teste de ambientes de produção, gerenciamento de incidentes e realização de postmortems. Inicialmente, essas tarefas eram feitas manualmente, o que consumia muito tempo e estava sujeito a erros humanos. A modernização da engenharia de confiabilidade local envolve a automação dessas tarefas manuais.

O monitoramento e o registro em log desempenham um papel fundamental no SRE. As equipes de SRE usam ferramentas de monitoramento para rastrear o que está acontecendo nos sistemas de software em tempo real. O monitoramento possibilita a correção de problemas técnicos imediatos e ajuda as equipes a antecipar problemas futuros e resolvê-los antes que ocorram.

Os logs servem como arquivos que podem ser analisados para obter insights sobre o funcionamento dos sistemas e melhorar a observabilidade dos sistemas. O registro cria um histórico que ajuda as equipes de SRE a entenderem a sequência de eventos que causou um erro inesperado.

Os engenheiros podem automatizar a correção do erro e evitar que ele ocorra novamente. Monitoramento e registro ajudam os engenheiros a identificar pontos de falha e resolver problemas de forma programática por meio da automação, eliminando a necessidade de correções manuais.

As equipes de SRE também buscam deficiências nos sistemas por meio de um processo chamado engenharia do caos. Engenharia do caos é uma estratégia que engenheiros de confiabilidade de site implementam para causar falhas intencionais em ambientes de produção e pré-produção. O objetivo é entender o impacto das falhas em produção nos sistemas de software e desenvolver planos mais sólidos para mitigar falhas futuras.

O SRE também se concentra no planejamento de capacidade, um processo que determina os Recursos necessários para executar funções comerciais essenciais, escalar essas funções comerciais e desenvolver novos aplicativos e funcionalidade. Além disso, as equipes de SRE definem métricas que servem para avaliar a entrega de atualizações e a implementação de novas funcionalidades.

Métricas de engenharia e de confiabilidade local

Os engenheiros de confiabilidade do site usam várias métricas para ajudar a rastrear a consistência da entrega de serviços e a confiabilidade dos sistemas de software, incluindo:

Acordos de nível de serviço (SLA)

Os SLAs estabelecem os termos e condições entre um provedor de serviços e um cliente. Esses acordos definem o nível de desempenho, os indicadores acordados para medição de desempenho e as consequências em caso de falha na entrega dos serviços. Um serviço comum definido em um SLA é o tempo de atividade, ou seja, o tempo em que o serviço permanece disponível.

Orçamentos de erro

O orçamento de erro é uma ferramenta que as equipes de SRE usam para conciliar automaticamente a confiabilidade de serviço de uma empresa com seu ritmo de desenvolvimento de software e inovação.Os orçamentos de erro estabelecem um nível de risco de erro alinhado aos acordos de nível de serviço.

Uma meta de tempo de atividade de 99,999%, conhecida como "disponibilidade de cinco noves", é um limite comum de SLA. Isso significa que o orçamento mensal de erros - a quantidade total de downtime permitido sem consequências contratuais para um mês específico é de cerca de 4 minutos e 23 segundos. Se uma equipe de desenvolvimento quiser implementar novas funcionalidades ou melhorias em um sistema, o sistema não deve exceder o orçamento de erros.

Os orçamentos de erro ajudam as equipes de desenvolvimento e operações a melhorar a estabilidade e o desempenho dos serviços. Eles também orientam decisões baseadas em dados sobre a implementação de novas funcionalidades ou aplicações e impulsionam a inovação dentro de limites de risco aceitáveis.

Objetivos de nível de serviço (SLO)

As equipes de SRE também ajudam a definir objetivos de nível de serviço (SLOs), que são metas de desempenho acordadas para um serviço específico em um período determinado. Os SLOs definem o status esperado dos serviços, ajudam os stakeholders a gerenciarem a saúde dos serviços e a cumprirem os SLAs.

Indicadores de nível de serviço (SLIs)

Os SLOs são medidos por indicadores de nível de serviço (SLIs). Os SLIs são medições quantitativas apresentadas em percentuais, médias ou taxas. Eles incluem a medição de serviços como tempo de atividade, latência, taxa de transferência e taxas de erro.

IBM DevOps

O que é DevOps?

Andrea Crawford explica o que é DevOps, seu valor e como suas práticas e ferramentas ajudam você a migrar suas aplicações por todo o pipeline de entrega de software, desde a concepção até a produção. Conduzido pelos principais líderes da IBM, o conteúdo foi concebido para ajudar os líderes empresariais a adquirir o conhecimento necessário para priorizar os investimentos em IA que podem estimular o crescimento.

SRE e DevOps

DevOps é uma metodologia de desenvolvimento de software que acelera a entrega de aplicações e serviços de alta qualidade ao unir e automatizar o trabalho das equipes de desenvolvimento e operações de TI. O DevOps automatiza o ciclo de vida do desenvolvimento de software (SDLC), promove responsabilidade compartilhada entre desenvolvimento e operações e envolve todos os stakeholders relevantes no processo.

O SRE e o DevOps são estratégias complementares de engenharia de software que eliminam silos e resultam em uma entrega de software mais eficiente e confiável.

Enquanto as equipes de DevOps se concentram em responder à pergunta “O que este software deve fazer?”, as equipes de SRE trabalham para responder “Como este software pode ser implementado e mantido para funcionar como esperado?”. As equipes de SRE fornecem às equipes de DevOps dados reais sobre o desempenho do software, equilibrando a prática com a teoria no desenvolvimento de software.

Assim como a SRE, o DevOps torna as empresas mais ágeis ao equilibrar a necessidade de acelerar entregas com a de preservar a estabilidade do ambiente de produção. Tanto o SRE quanto o DevOps visam alcançar esse equilíbrio estabelecendo um risco aceitável de erros. As equipes de DevOps focam em implementar atualizações e novas funcionalidades, enquanto a SRE atua para garantir a confiabilidade dos sistemas à medida que eles escalam.

As equipes de DevOps e SRE otimizam os métodos de comunicação e estabelecem um ciclo de feedback constante. Esse ciclo funciona assim: quando a equipe de SRE identifica a causa raiz de um erro, ela envia suas conclusões à equipe de DevOps, que desenvolve uma atualização para a próxima versão do software.

Enquanto isso, as equipes de SRE criam automações para resolver o problema e acompanham os dados de monitoramento e registro para garantir que ele tenha sido resolvido.

Benefícios do SRE

Além de contribuir para o sucesso do DevOps, a engenharia de confiabilidade local pode ajudar as organizações a:

  • Obtenha maior visibilidade da integridade do serviço rastreando métricas, registros e rastreamentos em todos os serviços organizacionais e fortaleça os recursos de análise de causa raiz.

  • Obter mais visibilidade sobre a integridade dos serviços por meio do acompanhamento de métricas, logs e rastreamentos em todos os serviços da organização, além de fortalecer a capacidade de análise da causa raiz.

  • Dimensionar sistemas de software automatizando processos manuais que eliminam tarefas, reduzem erros e resolvem problemas com mais precisão.

  • Quantifica o custo do downtime e das interrupções, ajudando as equipes de desenvolvimento e operações a entender o custo das violações de SLA. Além disso, pode ajudar a gestão a quantificar o impacto da confiabilidade do sistema na produção, nas vendas, no marketing, no atendimento ao cliente e em outras funções de negócios.

  • Otimize a resposta a incidentes criando processos de plantão eficientes e simplificando fluxos de trabalho de alerta.

  • Construa um moderno centro de operações de rede combinando um entendimento profundo de operações de TI com aprendizado de máquina e automação para enviar alertas diretamente à pessoa responsável por resolver o problema.

SRE, nuvem e desenvolvimento nativo da nuvem

Quando as organizações migram de TI tradicional e data centers locais para a nuvem híbrida, geralmente geram volumes maiores de dados operacionais. O SRE desempenha um papel crítico ao usar esses dados para automatizar a administração de sistemas, operações e resposta a incidentes, além de melhorar a confiabilidade empresarial à medida que o ambiente de TI se torna mais complexo.

Uma abordagem de desenvolvimento nativa em nuvem — especificamente, construir aplicações como microsserviços e implementá-las em contêineres — pode simplificar o desenvolvimento, a implementação e a escalabilidade de aplicações. Mas o desenvolvimento nativo em nuvem também cria um ambiente cada vez mais distribuído, o que complica a administração, as operações de TI e o gerenciamento.

A equipe de SRE pode acompanhar o ritmo acelerado da inovação promovido por uma abordagem cloud-native e aumentar a confiabilidade do sistema, sem sobrecarregar o time de DevOps.

Autores

Camilo Quiroz-Vázquez

IBM Staff Writer

Michael Goodwin

Staff Editor, Automation & ITOps

IBM Think

Soluções relacionadas
IBM Instana Observability

Aproveite o poder da IA e da automação para resolver problemas de forma proativa em todo o stack de aplicações.

Explore o IBM Instana Observability
Soluções de DevOps

Utilize softwares e ferramentas de DevOps para desenvolver, implementar e gerenciar aplicações nativas da nuvem em diversos dispositivos e ambientes.

Explore as soluções de DevOps
Serviços de consultoria em nuvem

Acelere a agilidade e o crescimento dos negócios, modernize suas aplicações de forma contínua em qualquer plataforma utilizando nossos serviços de consultoria de nuvem.

Explore os serviços de consultoria em nuvem
Dê o próximo passo

Da detecção proativa de problemas com IBM Instana a insights em tempo real em todo o seu stack, você pode manter aplicações nativas em nuvem funcionando de forma confiável.

  1. Descubra o IBM Instana
  2. Explore as soluções de DevOps