Início
topics
O que é a engenharia de confiabilidade de sites (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."
Veja uma análise de custo e benefício do IBM Robotic Process Automation (RPA).
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."
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
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
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.
Além de apoiar o sucesso do DevOps, a engenharia de confiabilidade do site pode ajudar uma empresa
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.
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.
Aprimore o desempenho do monitoramento de suas aplicações e forneça o contexto necessário para resolver incidentes mais rapidamente
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 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.
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 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.
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 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.