5 diferenças básicas entre DevOps e SRE que você deve conhecer

Publicados: 2021-02-22

O mundo da Tecnologia da Informação e desenvolvimento de software muitas vezes confunde DevOps com SRE para significar a mesma coisa. No entanto, existem grandes diferenças entre os dois. Embora a Engenharia de Confiabilidade do Site (SRE) tenha ganhado força nos últimos anos, o DevOps existe há muito mais tempo (mesmo antes de o termo DevOps existir).

Para simplificar, DevOps e SRE são práticas implementadas para entregar software mais rapidamente. A única diferença entre os dois está em suas abordagens; O DevOps está focado na redução do ciclo de vida de desenvolvimento de software, e o SRE se concentra na eliminação de pontos fracos do sistema para atingir o mesmo objetivo.

Neste artigo, veremos as maneiras fundamentais pelas quais o DevOps e o SRE diferem um do outro. Antes de fazermos isso, vamos começar entendendo o que são DevOps e SRE.

Índice

O que é DevOps?

Nas palavras de Gene Kim, autor de The DevOps Handbook e The Phoenix Project,

“DevOps é [o] conjunto de normas culturais e práticas de tecnologia que [permite] o fluxo rápido de trabalho planejado desde, entre outros, desenvolvimento, por meio de testes em operações, preservando confiabilidade, operação e segurança de classe mundial. DevOps não é sobre o que você faz, mas quais são seus resultados.”

Portanto, o DevOps está focado principalmente em transformar as práticas culturais dentro de uma organização para acelerar o ciclo de vida de desenvolvimento de software (SDLC). Não é direcionado a uma pessoa, grupo ou posição. O DevOps visa fortalecer a colaboração entre as operações de Tecnologia da Informação e as equipes de desenvolvimento de software.

O que ele faz e como o faz não é importante; apenas o resultado do processo é reconhecido.

O DevOps usa um conjunto de princípios para intensificar a exposição das equipes de engenharia de software aos sistemas de produção e permite que a equipe de operações de TI encaminhe discrepâncias para a equipe de desenvolvimento com mais eficiência. Na verdade, o SRE desempenha um papel crucial em uma organização de DevOps, facilitando testes proativos, velocidade, permitindo observabilidade e melhorando a confiabilidade do serviço. O DevOps incentiva todas as organizações centradas no DevOps a operar de acordo com os princípios culturais descritos em seu modelo CALMS.

O que é SRE?

SRE, abreviação de Site Reliability Engineering, é um termo cunhado pelo vice-presidente sênior do Google, Ben Treynor, encarregado de supervisionar as operações técnicas.

Drew Farnsworth (da Green Lane Design) explica: “Geralmente gosto de pensar no SRE como um sistema em que o desenvolvimento controla as operações. Este é um sistema em que o ambiente é dividido nos componentes mais básicos da pilha de TI e implementado com as melhores práticas incorporadas ao hardware.”

Essencialmente, a equipe de SREs com experiência em desenvolvimento de software tem a responsabilidade de resolver problemas na produção do sistema, mantendo um equilíbrio entre a velocidade de entrega e a confiabilidade do sistema. Dessa forma, a abordagem SRE reúne o pessoal de desenvolvimento de software sob funções de operações para aplicar práticas estruturadas de engenharia para manter as políticas de uma organização.

Eles garantem que os sistemas estejam disponíveis e funcionando com eficiência o tempo todo para que as equipes de software desenvolvam serviços técnicos para aumentar a confiabilidade do sistema. É responsabilidade do SRE identificar qualquer fraqueza potencial antes que ela se transforme em um grande problema.

DevOps vs SRE: principais diferenças entre DevOps e SRE

Na prática, DevOps e SRE devem ser vistos como disciplinas complementares onde os SREs como parte de uma estrutura centrada em DevOps estão focados em melhorar a confiabilidade de seus serviços técnicos. Então, essencialmente, não existe DevOps versus SRE.

Portanto, o que estamos fazendo nesta seção é avaliar as diferenças fundamentais entre DevOps e SRE.

Implementando a mudança

Para que as atualizações aconteçam com frequência e os usuários tenham acesso a tecnologias mais recentes e relevantes, tanto o DevOps quanto o SRE pretendem acelerar o ritmo. No entanto, o DevOps avança gradualmente, com cautela, enquanto o SRE leva em consideração o custo da falha em avançar mais rapidamente.

Ambos implementam automação e utilizam ferramentas para atingir esse objetivo.

Em relação às falhas como normais

O DevOps é enorme em aceitar falhas e considerá-las como opressão do aprendizado. Por esse motivo, incentiva uma cultura sem culpa, aceitando que as falhas fazem parte do processo e não se concentra em tornar os sistemas 100% tolerantes a falhas. Um exemplo disso é a Netflix com seu Exército Símio.

O SRE, por outro lado, apóia a autópsia sem culpa. O objetivo por trás disso é identificar a causa da falha, atribuir responsabilidade e trabalhar para evitar falhas semelhantes no futuro. Quantas falhas um sistema pode sofrer são incluídas no orçamento de erros. As métricas SLI, SLO e SLA determinam isso para reduzir o custo de produção. Basicamente, o SRE adota práticas proativas de monitoramento e alerta para evitar uma possível falha.

Aprenda cursos de desenvolvimento de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Automação x Inovação

O DevOps dá a maior importância à automação. Em um ambiente focado em DevOps, isso se traduz em sistemas sendo automatizados o máximo possível, resultando em versões chatas. Depois que um desenvolvedor confirma o código, a maioria das atividades a seguir, se não todas, deve ser automatizada.

Portanto, o motivo do DevOps para buscar CI/CD é desenvolver sistemas de alta qualidade em uma velocidade mais alta.

As razões da SRE para buscar CI/CD são diferentes, elas visam reduzir o custo da falha. Quaisquer tarefas comuns, genéricas ou repetitivas em operações como implantação e backups são consideradas menos dignas de atenção. Portanto, os SREs reservam uma quantidade específica de tempo para evitar a labuta operacional. Isso é feito para que eles possam realizar tarefas mais atraentes, como executar ou inovar novas tecnologias ou atividades relacionadas à arquitetura.

Confira : Projetos de DevOps para iniciantes

Quebrando Silos Organizacionais

Desenvolvedores e operadores entram em conflito quando se trata do processo de implantação. Embora os desenvolvedores se beneficiem com a implantação de recursos assim que forem codificados, o pessoal de operação está focado em disponibilizar sistemas que dificultam o processo de implantação.

Tanto o DevOps quanto o SRE diferem na forma como removem os silos em uma organização.

O DevOps, conforme explicado em The DevOps Handbook, aborda esse problema incluindo práticas como operar em lotes menores e gerenciar melhor as configurações.

Os SREs não visam apenas otimizar o fluxo entre as equipes, mas também auxiliar os sistemas em produção. Eles fazem isso integrando-se às equipes como consultores e apoiando os desenvolvedores, compartilhando a responsabilidade de executar os sistemas. É assim que os SREs dividem os silos em uma organização.

Medindo uma implementação bem-sucedida

As métricas de DevOps têm tudo a ver com a velocidade das operações; isso inclui a frequência com que as implantações ocorrem, o tempo necessário para isso e a frequência com que eles apresentam problemas.

De acordo com o relatório de 2017 da Puppet e DORA, medir uma implementação bem-sucedida no DevOps depende do seguinte:

  • a frequência com que as implantações acontecem
  • a duração de tempo entre uma confirmação de código e sua implantação
  • a frequência com que as implantações falham
  • o tempo que leva para se recuperar de uma falha de implantação

Esses ciclos de feedback são implementados para ajudar o DevOps a melhorar a qualidade do sistema e, ao mesmo tempo, facilitar uma mudança na experimentação.

A SRE, por outro lado, trabalha para melhorar os sistemas, mantendo sua confiabilidade em mente. Ele considera as seguintes métricas principais para determinar uma implementação bem-sucedida:

  • objetivo de nível de serviço (SLO)
  • indicador de nível de serviço (SLI)
  • acordo de nível de serviço (SLA)

As métricas mencionadas acima são indicadores da confiabilidade de um sistema. Essas métricas determinam de antemão se uma liberação para mudança chegará ou não à produção.

No SRE, essas métricas de velocidade e qualidade são úteis ao criar um orçamento de erros e melhorar a confiabilidade dos sistemas, em vez de trabalhar em novos recursos.

Leia: Salário do Engenheiro DevOps na Índia

Conclusão

O Google publicou um eBook sobre como eles implementam a Engenharia de confiabilidade do site em seus sistemas de produção, no qual Treynor explicou o SRE como,

“SRE é o que acontece quando você pede a um engenheiro de software para projetar uma equipe de operações.”

Quando se trata de quão diferentes são DevOps e SRE, tudo o que você precisa lembrar é que o SRE é conduzido por desenvolvedores e não por uma equipe de operações. Tanto a manutenção quanto o monitoramento estão principalmente sob o controle dos desenvolvedores. Isso é o que diferencia principalmente as duas disciplinas.

Se você estiver interessado em aprender mais sobre grandes DevOps, desenvolvimento de pilha completa, confira o Programa PG Executivo do upGrad e IIIT-B em Desenvolvimento de Software - Especialização em Desenvolvimento de pilha completa, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, Mais de 9 projetos e atribuições, status de ex-alunos do IIIT-B, projetos práticos práticos e assistência de trabalho com as principais empresas.

Planeje sua carreira de desenvolvimento de software agora.

Inscreva-se para a Certificação PG vinculada ao trabalho do upGrad em Engenharia de Software