PT | EN

SRE vs DevOps: entenda as diferenças e escolha a melhor abordagem

Por e 26/09/2024 08/11/2024 10 minutos

Com o crescimento do SRE no mercado de Tecnologia da Informação, crescem as dúvidas relacionadas ao tópico SRE vs DevOps. 

Em resumo, o DevOps foca na automação de fluxo, buscando melhorar todo o ciclo de desenvolvimento do software. Já o SRE foca no nível de serviço em produção, para garantir disponibilidade e confiabilidade. 

O que é DevOps?


DevOps é uma filosofia ou cultura aplicada em TI. Na prática, o DevOps prega a integração entre os times de desenvolvimento (Dev) e de operação (Ops).  

No passado, os times responsáveis por desenvolvimento e operação costumavam trabalhar de forma isolada e com objetivos conflitantes. Enquanto o desenvolvimento tem por meta aplicar mudanças, a operação valoriza a estabilidade. 

Nesse sentido, a cultura DevOps mostra que times de desenvolvimento e de operação devem colaborar ao longo do ciclo de vida de software em um fluxo contínuo. Ou seja, todos os papéis, desde Product Owners até pessoas de infraestrutura precisam estar conectadas, alinhadas e colaborando para garantir fluidez.  

Ciclo de vida do desenvolvimento de software em DevOps
Ciclo de vida do desenvolvimento de software em DevOps.

A adoção de DevOps aumenta a eficiência de todo o ciclo de vida do software. Isso ocorre porque com DevOps é possível fazer entregas de software mais frequentes, com mais confiança e menos erros.

Podemos dizer que a filosofia DevOps é composta por mudanças culturais e pela implementação concreta. 

Cultura DevOps Implementação DevOps 
Colaboração 
Transparência 
Comunicação 
Responsabilidade compartilhada 
Alinhamento com cultura ágil 
Automação de CI 
Automação de CD 
Observabilidade para monitoramento 
Infraestrutura como código  

Ao longo do tempo, as práticas e ferramentas de DevOps evoluíram muito. Você pode conferir mais no artigo sobre a evolução e futuro do DevOps.

O que é SRE? 


SRE – Site Reliability Engineering – é uma disciplina que nasceu em 2003 dentro dos times do Google. Ele começou a ser conhecido no mercado em 2016, quando um grupo de engenheiros do Google publicou um livro sobre o assunto. 

O SRE se preocupa com a confiabilidade das aplicações para os usuários finais. Ou seja, ele visa implementar processos de sustentação de aplicações, com apoio de práticas de engenharia. 

Por ter nascido dentro do Google, ele foi criado para a operação de aplicações de grande escala e de alta disponibilidade.  

Os princípios fundamentais do SRE incluem: 

  • Objetivos e métricas – definição de SLIs, SLOs e SLAs que ajudam a medir a confiança e qualidade dos serviços. 
  • Processos estruturados para gestão de incidentes, incluindo gestão de crises e a análise póstuma para melhoria contínua. 
  • Automação de trabalho manual ou repetitivo, trazendo práticas da engenharia de software para dentro do time de operação. 
  • Observabilidade, enfatizando a importância de métricas, logs e tracing para gerenciar as aplicações. 

SRE vs DevOps


O SRE e o DevOps têm muito em comum. Por exemplo, a cultura de colaboração entre Desenvolvimento e Operação, e o princípio de automação de tarefas manuais. 

Porém, há diferenças ao comparar SRE vs DevOps.  

Com o passar do tempo, o trabalho de DevOps se concentrou mais na automação dos fluxos de desenvolvimento. Isso inclui os pipelines de Integração Contínua e Entrega Contínua. 

Já o SRE fortalece a maturidade dos processos de operação, como métricas, resposta a incidentes e melhoria contínua. 

Por exemplo, é muito comum ver equipes de Engenheiros DevOps implementarem ferramentas de métricas. Porém, é raro que essas equipes definam objetivos, indicadores e acordos de níveis de serviço (SLO, SLI e SLAs). Esses são temas comuns de equipes de SRE. 

Outro exemplo é o atendimento a incidentes e gestão de crises. Times de SRE levam muito a sério a relação com o usuário final. Eles implementam boas práticas para atuar em casos de incidentes críticos e para recuperação do nível de serviço. 

Além disso, a melhoria contínua também é implementada por times de SRE. Uma das práticas recomendadas é a análise de pós-incidente, que gera melhorias para os procedimentos de resposta. 

O que faz um Engenheiro DevOps?


Compreender como os profissionais atuam pode esclarecer melhor as diferenças entre os papéis.

É importante lembrar que DevOps surgiu como uma cultura que deveria ser adotada por todos no time de desenvolvimento e de operação. 

Porém, quando DevOps começou a ganhar o mercado, o que era uma cultura transformou-se em um papel. Logo, em muitas empresas surgiu um profissional chamado de “Engenheiro DevOps”. 

Esse profissional, com um perfil altamente técnico, é responsável por automatizar processos e fornecer as ferramentas necessárias para promover e sustentar um ambiente com cultura DevOps.

Sendo assim, o profissional que atuar como Engenheiro DevOps irá realizar tarefas como: 

  • Configurar ferramentas de controle de versão, como Git, Github e Gitlab;
  • Configurar ferramentas de automação de CI/CD como GitHub Actions ou Azure DevOps; 
  • Escrever scripts de Infraestrutura como código (IaC), usando ferramentas como Terraform ou Ansible;
  • Provisionar infraestrutura em cloud;
  • Gerenciar contêineres com Docker e Kubernetes;
  • Adicionar ferramentas de segurança, como verificação estática e dinâmica nos pipelines;
  • Evoluir continuamente os pipelines conforme as necessidades das aplicações e dos times; 
  • Apoiar times de desenvolvimento e operação na investigação e solução de problemas. 

Ou seja, o Engenheiro DevOps é um profissional altamente técnico, com expertise em infraestrutura e pipelines de CI/CD. Embora ele contribua na resolução de problemas, seu foco não está diretamente na linha de frente das operações.

O que faz um Analista de SRE?


No original em inglês, o cargo é chamado de Engenheiro de Confiabilidade de Sites (SRE). No entanto, no Brasil, já começou a aparecer uma variação no nome: “Analista SRE”.

Um Engenheiro ou Analista de SRE trabalha diretamente com o time de operação, responsável por uma ou mais aplicações. Suas principais funções incluem monitorar o ambiente, responder a incidentes, garantir a recuperação dos serviços e promover a melhoria contínua dos processos operacionais.

Suas atividades incluem: 

  • Definir objetivos, indicadores e acordos de nível de serviço: isso serve para combinar entre todos os envolvidos as expectativas em relação à aplicação. Pode incluir métricas como uptime e tempo de recuperação entre falhas. 
  • Monitorar as aplicações: isso começa com a configuração de ferramentas que permitam a monitoração. O Analista então utiliza essas ferramentas no dia a dia para acompanhar os SLIs. 
  • Resposta a incidentes: a equipe de SRE define os processos de resposta a incidentes. Também é responsável por atuar na identificação, resposta e resolução dos incidentes. 
  • Manutenção proativa: com previsão das necessidades de escala e capacidade, a equipe de SRE pode fazer manutenções proativas. 
  • Automação: a equipe de SRE busca sempre automatizar os processos definidos e as tarefas manuais. Para isso, utiliza infraestrutura como código (IaC). 

Portanto, podemos dizer que uma equipe de SRE é composta por profissionais técnicos com expertise em infraestrutura, IaC e DevOps. No entanto, uma equipe eficaz de SRE vai além disso, atuando diretamente na sustentação de aplicações, monitorando o ambiente e respondendo prontamente a incidentes.

E qual a relação entre SRE e ITIL?


Quem tem mais tempo no mercado de TI já ouviu falar do ITIL. E talvez se pergunte qual a diferença entre o ITIL e o SRE, e se precisamos realmente de ambos. 

O ITIL é um framework de boas práticas para o gerenciamento de serviços de TI, criado pelo governo britânico na década de 1980. Existe uma publicação oficial do Guia do ITIL, cuja versão mais recente, o ITIL 4, foi lançada em 2019.

O ITIL se propõe a organizar um compilado de boas práticas para 34 processos, incluindo, por exemplo, Gerenciamento de Mudança, Gerenciamento de Incidentes e Gerenciamento de Nível de Serviços.

O ITIL continua sendo uma importante base de conhecimento, com relevância inegável na definição e padronização de conceitos. Termos como incidente, problema e mudança ainda são amplamente utilizados conforme definidos pelo ITIL.

Na comparação entre SRE e ITIL, ambos visam garantir um bom nível de serviço, mas com abordagens distintas. O ITIL é focado na definição de processos formais e estruturados, enquanto o SRE adota uma abordagem baseada em engenharia de software, automação e princípios de DevOps.

SRE vs DevOps: o que adotar?


O SRE e o DevOps têm muito em comum. Ambos pregam a cultura de colaboração entre Dev e Ops, e a automação com práticas de engenharia. 

Porém, há diferenças significativas. O DevOps ao longo do tempo tem se concentrado mais na melhoria e automação do ciclo completo de desenvolvimento até a operação. Por outro lado, o SRE foca no nível de serviço das aplicações em produção, com o objetivo de garantir disponibilidade e confiabilidade.

Na SoftDesign, acreditamos que ambos são necessários e complementares. Entendemos que a sustentação de aplicações em produção não pode ser baseada apenas na automação de CI/CD. Ela também requer processos maduros de operação e monitoramento. O SRE complementa o DevOps ao resgatar o foco no nível de serviço, proporcionando um objetivo mais específico e nobre para o DevOps.

Um time de sustentação deve usar os dois conceitos. Isso ajuda a garantir um ciclo de desenvolvimento integrado e automatizado, mantendo como objetivo final a excelência no nível de serviço das aplicações.

Nosso palpite, é que nos próximos anos, o papel de “Engenheiro DevOps” possa desaparecer. Isso significa que teremos equipes de operação formadas por Engenheiros de Cloud e Engenheiros de Confiabilidade de Sites (SREs).  

Acreditamos que essa mudança será positiva. Afinal, ela permitirá que o DevOps seja visto como uma cultura que abrange todo o ciclo de trabalho.

Perguntas frequentes


Veja, a seguir, a resposta para as principais dúvidas sobre SRE vs DevOps.

Qual a diferença entre SRE e DevOps?

O DevOps se concentra na automação dos fluxos de trabalho para aprimorar o ciclo de desenvolvimento de software, enquanto o SRE se dedica a garantir a disponibilidade e confiabilidade dos serviços em produção.

Quanto ganha um DevOps SRE?

Segundo o Glasdoor, a média salarial do cargo de DevOps/SRE (Brasil) é de R$ 9.000 por mês. Entretanto, o salário de um DevOps SRE pode variar muito, dependendo da experiência e da localização da empresa.

O que é SRE em TI?

SRE é uma prática de engenharia em TI que foca em garantir a confiabilidade e a performance dos sistemas, aplicando princípios de engenharia para gerenciar a disponibilidade e a escalabilidade de serviços.

Por fim, acesse também:

Foto do autor

Ederson Vieira

Ederson Vieira é Product Manager na SoftDesign. Atua focado na criação de produtos digitais voltados a resultados, superando desafios técnicos e equilibrando as necessidades de empresas e usuários. Com 20 anos de experiência em tecnologia, é bacharel em Ciência da Computação pela UFRGS, tem MBA em Gestão de TI pela FGV e certificações PSPO I e II. Antes da área de produtos, atuou em infraestrutura de TI como administrador de redes, sistemas operacionais, middleware, DevOps e Cloud Computing.

Posts relacionados

18 de novembro de 2024

Desenvolvimento ágil de software: veja como acelerar inovação e entrega de valor do seu time

    Desenvolvimento de Software
Saber mais

14 de novembro de 2024

Desafios e soluções para sistemas legados: como modernizar e garantir competitividade

    Desenvolvimento de Software
Saber mais

14 de novembro de 2024

Ciclo de vida do software: fases e melhores práticas para inovar

    Desenvolvimento de Software
Saber mais

Quer saber mais sobre
Design, Estratégia e Tecnologia?