DevOps vs SRE

No items found.
9/4/2020
Guillaume Falourd
Guillaume Falourd
Back-end Developer

Zupper curioso, sempre procurando impactar da melhor forma as pessoas ao seu redor.

Está sem tempo para ler? Aperte o play para escutar o artigo.

DevOps e SRE são 2 termos bastante usados atualmente no mercado de tecnologia e frequentemente confundidos. Apesar de serem intimamente relacionados, não se referem, necessariamente, aos mesmos profissionais.

Devops

O termo foi sugerido por Andrew Shafer e Patrick Debois em 2008 e, embora demorasse alguns anos para ele se tornar um conceito comum, hoje praticamente todas as empresas, de startups a grandes corporações, estão contratando DevOps.

De maneira resumida, é um método de desenvolvimento de software onde o principal objetivo é aprimorar a capacidade de distribuir em alta velocidade aplicativos e serviços. 

Entenda os 4 pilares da cultura DevOps

  • Colaboração: é o passo além da comunicação, cujo objetivo é de facilitar a integração entre as equipes (de diversas áreas) a fim de alcançar um processo simplificado, colocando em prática soluções colaborativas que resolvam ou minimizem os problemas enfrentados.
  • Afinidade: é importante que o time tenha os mesmos objetivos organizacionais, empatia e aprendizagem entre diferentes grupos de pessoas.
  • Ferramentas: são usadas para acelerar processos e economizar custos, mas devem se encaixar nos métodos de trabalho.
  • Dimensionamento e escala: os conceitos de DevOps podem ser aplicados em vários tipos de organizações independente do estágio: crescimento, amadurecimento e até retração.

Ou seja, quando usamos o termo DevOps para se referir a um profissional, falamos de quem segue as boas práticas sugeridas pelo movimento DevOps, mas ele não representa um cargo. Tanto que desenvolvedores, analistas ou engenheiros podem ser profissionais DevOps.


Site Reliability Engineering (SRE)

Já o conceito de SRE existe desde 2003. Quem criou foi o Ben Treynor, fundador do Site Reliability Team do Google.

Segundo Treynor, o SRE é "o que acontece quando um engenheiro de software é encarregado do que costumava ser chamado de operações". É uma disciplina que incorpora aspectos da engenharia de software e os aplica a problemas de infraestrutura e operações. Seu principal objetivo é criar sistemas de software escaláveis e altamente confiáveis.

O Site Reliability Engineer (cargo) é responsável pela disponibilidade, latência, desempenho, eficiência, gerenciamento de mudanças, monitoramento, resposta a emergências e planejamento de capacidade. 

O papel deles é criar uma ponte entre desenvolvimento e operações aplicando uma mentalidade de engenharia de software aos tópicos de administração do sistema, buscando automatizar ao máximo os processos.

Veja um exemplo: 

Uma empresa mais nova pode precisar do suporte do SRE para controlar as interrupções gerais. E muita energia do SRE vai ser dedicada para esse nível básico de confiabilidade.

No entanto, outras empresas que estão mais maduras nessa jornada podem ter eliminado as interrupções em toda a empresa. Nesse caso os SREs podem gastar mais tempo aprimorando ou validando métricas de serviço relacionadas aos negócios.

DevOps vs SRE

Em 2018, o Google escreveu um artigo sobre DevOps e SRE explicando que:


“Não são dois métodos concorrentes para desenvolvimento e operações de software, mas sim amigos íntimos projetados para quebrar as barreiras organizacionais e oferecer um software melhor mais rapidamente.”


Ainda hoje essa diferenciação não está clara no mercado e até o google criou sua própria definição. 

Veja um exemplo de um pipeline de um processo de entrega contínua automatizado (no Jenkins ou em uma outra plataforma como Travis ou Bamboo) que poderia ser planejado por profissionais com bom domínio das práticas DevOps.

devops vs sre


Os times de desenvolvimento e de operações escolheriam em conjunto as ferramentas que eles usariam para cada parte do pipeline, e o Site Reliability Engineer seria o profissional que garantiria como tudo isso seria feito.

No exemplo acima, o SRE cuidaria de cada pedaço do pipeline separadamente em um primeiro momento, e junta eles ao longo do ciclo de vida do projeto melhorando o modelo para tornar ele cada vez mais perto do planejamento inicial (quanto mais automatizado melhor).

Ou seja, é o SRE que vai construir/implementar essas soluções de acordo com as métricas definidas pelo time/empresa e que vai monitorar essa infraestrutura ao longo do seu amadurecimento. 

Através desse exemplo, entendemos que os SREs precisam ter um ótimo conhecimento das práticas e da cultura DevOps para encontrar as propostas de estrutura mais adequadas às necessidades. 

Quero saber sua opinião sobre o assunto! Deixe seu comentário com dúvidas e questionamentos sobre o assunto.

Newsletter de desenvolvimento

Quer receber em primeira mão conteúdos como esse por e-mail?

Assine agora nossa newsletter semanal.

O que você achou deste conteúdo?
Quer receber nossos conteúdos?
Seu cadastro foi efetuado com sucesso! Enviaremos as novidades no seu email.
Oops! Something went wrong while submitting the form.