Início

topics

O que é a engenharia de confiabilidade de sites (SRE)?

O que é engenharia de confiabilidade local (SRE)?
Explore a solução SRE da IBM Inscreva-se para receber atualizações sobre tópicos de IA
Ilustração com colagem de pictogramas de engrenagem, braço robótico, celular
O que é SRE?

A engenharia de confiabilidade do site (SRE) usa engenharia de software para automatizar tarefas de operações de TI, como gerenciamento do sistema de produção, gerenciamento de mudanças, resposta a incidentes e até mesmo resposta a emergências que, de outra forma, seriam executadas manualmente por administradores de sistemas (sysadmins).

O princípio por trás do SRE é que usar código de software para automatizar a supervisão de grandes sistemas de software é uma estratégia mais escalável e sustentável do que a intervenção manual - especialmente à medida que esses sistemas se estendem ou migram para a nuvem.

O SRE também pode reduzir ou remover grande parte do atrito natural entre as equipes de desenvolvimento, porque algumas equipes desejam lançar continuamente software novo ou atualizado em produção. No entanto, as equipes de operações não querem lançar nenhum tipo de atualização ou novo software sem ter certeza de que isso não causará interrupções ou outros problemas operacionais. Como resultado, embora não seja estritamente necessário para DevOps, o SRE alinha de perto com os princípios do DevOps e pode desempenhar um papel importante no sucesso do DevOps.

O conceito de SRE é creditado a Ben Treynor Sloss, vice-presidente de engenharia do Google, que escreveu que "SRE é o que acontece quando você pede a um engenheiro de software que projete uma equipe de operações."

Total economic impact™ da automação robótica de processos da IBM

Veja uma análise de custo e benefício do IBM Robotic Process Automation (RPA).

Conteúdo relacionado Leia o relatório de analistas sobre as IBM AI-Powered Automation Solutions
O que é engenharia de confiabilidade local?

A engenharia de confiabilidade do site (SRE) usa engenharia de software para automatizar tarefas de operações de TI – por exemplo, gerenciamento de sistema de produção, gerenciamento de mudanças, resposta a incidentes e até mesmo resposta a emergências – que de outra forma seriam executadas manualmente por administradores de sistemas (administradores de sistemas). 

O princípio por trás do SRE é que usar código de software para automatizar a supervisão de grandes sistemas de software é uma estratégia mais escalável e sustentável do que a intervenção manual - especialmente à medida que esses sistemas se estendem ou migram para a nuvem.

O SRE também pode reduzir ou eliminar grande parte do atrito natural entre as equipes de desenvolvimento, que desejam lançar continuamente softwares novos ou atualizados em produção, e as equipes de operações, que não querem lançar nenhum tipo de atualização ou software novo sem ter certeza absoluta de que não causará interrupções ou outros problemas operacionais. Como resultado, embora não seja estritamente necessário para DevOps, o SRE alinha de perto com os princípios do DevOps e pode desempenhar um papel importante no sucesso do DevOps.

O conceito de SRE é creditado a Ben Treynor Sloss, vice-presidente de engenharia do Google, que escreveu que "SRE é o que acontece quando você pede a um engenheiro de software que projete uma equipe de operações."

O que os engenheiros de confiabilidade do site fazem?

Um engenheiro de confiabilidade de sites é um desenvolvedor de software com experiência em operações de TI — alguém que sabe programar e que entende como “manter as luzes acesas” em um ambiente de TI de grande escala. 

Os engenheiros de confiabilidade do local gastam metade de seu tempo executando operações manuais de TI e tarefas de administração do sistema — analisando logs, ajuste de desempenho, aplicando patches, testando ambientes de produção, respondendo a incidentes, realizando post-mortems. No resto do tempo, eles desenvolvem código que automatiza essas tarefas. O objetivo deles é passar menos tempo no primeiro e mais tempo no segundo.

Em um nível superior, a equipe de SRE serve como uma ponte entre as equipes de desenvolvimento e as equipes de operações, permitindo que a equipe de desenvolvimento traga novos softwares ou novos recursos para a produção o mais rápido possível. Eles fazem isso ao mesmo tempo em que garantem um nível aceitável acordado de desempenho de operações de TI e risco de erro, de acordo com os acordos de nível de serviço (SLAs) que a organização tem em vigor com seus clientes. Com base em sua experiência e uma riqueza de dados operacionais, a equipe de SRE ajuda as equipes de desenvolvimento e operações a estabelecer

  • Indicadores de nível de serviço (SLIs): medições do nível de serviço fornecido pelos sistemas - métricas como disponibilidade (tempo de atividade) ou latência.

  • Objetivos de nível de serviço (SLOs): meios acordados para medir indicadores de nível de serviço.

  • Orçamentos de erro: o período máximo de tempo que um sistema pode falhar ou apresentar desempenho inferior sem violar os termos contratuais do SLA. Mais do que uma métrica, o orçamento de erros é a ferramenta que uma equipe de engenharia de confiabilidade de site usa para conciliar automaticamente o ritmo de inovação de uma empresa com a confiabilidade de seu serviço. 
Como funcionam os orçamentos de erro?

O orçamento de erro é a ferramenta que uma equipe de SRE usa para reconciliar automaticamente a confiabilidade do serviço de uma empresa com seu ritmo de desenvolvimento e inovação de software. 

Suponha que o SLA de uma empresa prometa 99,99% de tempo de atividade (uma meta de disponibilidade comum) por ano. Isso significa que o orçamento mensal de erros, a quantidade total de tempo de inatividade permitida sem consequência contratual para um determinado mês, é de cerca de 4 minutos e 23 segundos.

Agora, digamos que a equipe de desenvolvimento queira lançar alguns novos recursos ou melhorias no sistema. Se o sistema estiver funcionando abaixo do orçamento de erro, a equipe poderá entregar os novos recursos. Caso contrário, a equipe não poderá entregar os novos recursos até que trabalhe com a equipe de operações para reduzir esses erros ou interrupções a um nível aceitável.

Dessa forma, os orçamentos de erro ajudam as equipes de desenvolvimento e equipes de operações a

  • Melhore a estabilidade e o desempenho dos serviços.

  • Tome decisões baseadas em dados sobre a implementação de novos recursos ou aplicativos.

  • Maximize a inovação assumindo riscos dentro de limites aceitáveis.
SRE e DevOps

O DevOps é uma maneira moderna de fornecer aplicativos de maior qualidade com mais rapidez, automatizando o ciclo de vida da entrega de software e dando às equipes de desenvolvimento e operações mais responsabilidade compartilhada e mais informações sobre o trabalho de cada uma. 

Assim como o SRE, o DevOps torna os negócios mais ágeis ao equilibrar a necessidade de entregar mais aplicações e mudanças mais rapidamente com a necessidade de evitar a “quebra” do ambiente de produção. E assim como o SRE, o DevOps visa alcançar esse equilíbrio estabelecendo um risco aceitável de erros. Na verdade, SRE e DevOps parecem tão semelhantes que alguns especialistas dizem que são a mesma coisa, mas a maioria vê as práticas de SRE como excelentes formas de implementar os princípios de DevOps. Por exemplo:

Princípios de DevOps: reduza os silos organizacionais, aproveite as ferramentas e a automação.

Prática de SRE: use as mesmas ferramentas para automatizar e melhorar as operações que os desenvolvedores usam para desenvolver e melhorar o software.

Princípios de DevOps: aceite a falha como normal, implemente mudanças graduais.

Prática de SRE: use orçamentos de erro para implementar continuamente novos recursos e funcionalidades dentro de níveis aceitáveis.

Princípio do DevOps: meça tudo.

Prática de SRE: basear as decisões de liberação de novos softwares em métricas de SLA.

 

Outros benefícios do SRE

Além de apoiar o sucesso do DevOps, a engenharia de confiabilidade do site pode ajudar uma empresa

  • Obtenha maior visibilidade sobre a integridade do serviço rastreando métricas, logs e rastreamentos em todos os serviços da organização e fornecendo contexto para identificar as causas raiz no caso de um incidente.

  • Quantifique o custo do tempo de inatividade ajudando as equipes de desenvolvimento e operações a entender o custo das violações de SLA e ajudando a gerência a quantificar o impacto da confiabilidade do sistema na produção, vendas, marketing, atendimento ao cliente e outras funções de negócios.

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

  • Crie um moderno centro de operações de rede combinando conhecimento profundo das 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

A migração de TI tradicional e data centers locais para ambientes de nuvem híbrida é uma das principais razões pelas quais a média das empresas gera duas a três vezes mais dados de operações a cada ano. Cada vez mais, o SRE é visto como fundamental para aproveitar esses dados para automatizar a administração de sistemas, operações e resposta a incidentes, e para melhorar a confiabilidade da empresa, mesmo quando o ambiente de TI se torna mais complexo.

Uma abordagem de desenvolvimento nativa da nuvem, especificamente, criando aplicações como microsserviços e implementando-os em contêineres, pode simplificar o desenvolvimento, a implementação e a escalabilidade de aplicativos. Mas o desenvolvimento nativo em nuvem também cria um ambiente cada vez mais distribuído que complica a administração, as operações e o gerenciamento. Uma equipe de SRE pode suportar o ritmo acelerado da inovação possibilitada por uma abordagem nativa da nuvem e garantir ou melhorar a confiabilidade do sistema, sem colocar mais pressão de operações nas equipes de DevOps.

Soluções relacionadas
IBM Turbonomic

Automatize continuamente ações críticas em tempo real - e sem intervenção humana - que oferecem proativamente o uso mais eficiente de recursos de computação, armazenamento e rede para seus aplicativos em cada camada da pilha.

Explore o IBM Turbonomic
IBM instana™ observability

Aprimore o desempenho do monitoramento de suas aplicações e forneça o contexto necessário para resolver incidentes mais rapidamente

Explore o IBM Instana
Serviços de engenharia de plataforma

O IBM Consulting Platform Engineering Services aumenta a produtividade das equipes de entrega de software, permitindo o autoatendimento da automação da infraestrutura pelos desenvolvedores.

Explore a consultoria em engenharia de plataforma
Recursos Uma jornada de SRE para AIOps

Explore como a aplicação de IA e automação às operações de TI pode ajudar os SREs a garantir a resiliência e robustez das aplicações empresariais e liberar tempo e talentos valiosos para apoiar a inovação.

IBM Cloud Professional Site Reliability Engineer (SRE) V2

Aprimore suas habilidades para trabalhar como SRE com treinamento e certificação de nível profissional da IBM. Obtenha conhecimento com ambientes e ferramentas IBM Cloud e pratique exercícios em laboratórios virtuais.

O que é DevOps?

O DevOps acelera a entrega de software de maior qualidade, combinando e automatizando o trabalho das equipes de desenvolvimento de software e operações de TI.

O que são aplicações nativas em nuvem?

As aplicações nativas em nuvem são compostas por microsserviços, empacotados e implementados em contêineres, e projetados para serem executados em qualquer ambiente de nuvem.

O que é o Kubernetes?

O Kubernetes é uma plataforma de orquestração de contêineres de código aberto que automatiza a implantação, o gerenciamento e o dimensionamento de aplicações.

Dê o próximo passo

O IBM Turbonomic permite que você execute aplicativos de forma contínua, ininterrupta e econômica para ajudar a alcançar um desempenho eficiente dos aplicativos, ao mesmo tempo em que reduz os custos.

Explore o Turbonomic Agende uma demonstração sem custo