Editar

Share via


Perguntas frequentes: Qual é a relação entre SRE e DevOps?

Há um conjunto de perguntas comuns que surgem em torno da relação entre a engenharia de confiabilidade do site e o DevOps, incluindo: "Como eles são iguais? Em que diferem? Podemos ter os dois na nossa organização?". Este artigo tenta compartilhar algumas das respostas que foram oferecidas pelas comunidades SRE e DevOps que nos aproximam de uma compreensão dessa relação.

Como são iguais?

SRE e DevOps são práticas de operações modernas que foram criadas e desenvolvidas em resposta a desafios que incluíam:

  • uma complexidade crescente dos nossos ambientes de produção e processos de desenvolvimento
  • o aumento da dependência do negócio no funcionamento contínuo desses ambientes
  • a incapacidade de dimensionar a força de trabalho de forma linear com o tamanho destes ambientes
  • a necessidade de avançar mais rapidamente, mantendo a estabilidade operacional

Ambas as práticas de operações valorizam a atenção a assuntos que são cruciais para lidar com esses desafios, como monitoramento/observabilidade, automação, documentação e ferramentas colaborativas de desenvolvimento de software.

Há uma sobreposição considerável em ferramentas e áreas de trabalho entre SRE e DevOps. Como diz o The Site Reliability Workbook , "a SRE acredita nas mesmas coisas que o DevOps, mas por razões ligeiramente diferentes".

Três formas diferentes de comparar as duas práticas operacionais

As semelhanças entre SRE e DevOps são claras. Onde fica realmente interessante é como os dois diferem ou divergem. Aqui oferecemos três formas de pensar a sua relação como forma de trazer alguma nuance a esta questão. Você pode não concordar com essas respostas, mas cada uma delas fornece um bom ponto de partida para a discussão.

"classe SRE implementa interface DevOps"

A Pasta de Trabalho de Confiabilidade do Site (mencionada em nossa lista de livros de recursos) discute SRE e DevOps em seu primeiro capítulo. Esse capítulo usa a frase "class SRE implementa interface DevOps" como subtítulo. Isso serve para sugerir (usando uma frase destinada a desenvolvedores) que o SRE pode ser considerado uma implementação específica da filosofia DevOps. Como o capítulo aponta, "o DevOps é relativamente silencioso sobre como executar operações em um nível detalhado", enquanto o SRE é consideravelmente mais prescritivo em suas práticas. Portanto, uma possível resposta para a questão de como os dois se relacionam é o SRE pode ser considerada uma das muitas implementações possíveis de DevOps.

SRE está para a confiabilidade como o DevOps está para a entrega

Essa comparação é um pouco confusa porque há várias definições para SRE e DevOps, mas ainda é potencialmente útil. Começa com a pergunta "Se você tivesse que destilar cada prática de operações em uma ou duas palavras que refletem sua preocupação central, qual seria?"

Se usarmos esta definição de SRE do hub de engenharia de confiabilidade do site:

A Engenharia de Fiabilidade do Site é uma disciplina de engenharia dedicada a ajudar uma organização a alcançar, de forma sustentável, o nível de fiabilidade adequado nos seus sistemas, serviços e produtos.

então seria fácil dizer que a palavra para SRE é "confiabilidade". Tê-lo bem no meio do nome também oferece algumas excelentes evidências para esta afirmação.

Se usarmos esta definição de DevOps do Centro de Recursos de DevOps do Azure:

O DevOps é a união das pessoas, do processo e dos produtos que nos permite proporcionar valor aos nossos utilizadores finais.

então uma destilação semelhante para DevOps poderia ser "entrega".

Por isso, "SRE está para a confiabilidade como o DevOps está para a entrega".

Direção da atenção

Esta resposta é citada ou ligeiramente parafraseada a partir de uma contribuição de Thomas Limoncelli para o livro Seeking SRE mencionado na nossa lista de livros de recursos. Ele observa que os engenheiros de DevOps estão se concentrando em grande parte no pipeline de ciclo de vida de desenvolvimento de software com responsabilidades ocasionais de operações de produção, enquanto os SREs se concentram em operações de produção com responsabilidades ocasionais de pipeline SDLC.

Mas, mais importante, ele também desenha um diagrama que começa com o processo de desenvolvimento de software de um lado e o trabalho de operações de produção do outro. Os dois são conectados pelo pipeline usual que é construído para pegar o código de um desenvolvedor, guiá-lo através do número desejado de testes e estágio e, em seguida, mover esse código para a produção.

Limoncelli observa que os engenheiros de DevOps começam no ambiente de desenvolvimento e automatizam as etapas para a produção. Uma vez concluídos, eles voltam a otimizar os gargalos.

Os SREs, por outro lado, concentram-se nas operações de produção e atingem profundamente o pipeline como um meio de melhorar o resultado final (trabalhando basicamente na direção oposta).

É essa diferença na direção do foco SRE e DevOps que pode ajudar a diferenciá-los.

Coexistência na mesma organização

A pergunta final que gostaríamos de abordar é: "Você pode ter SRE e DevOps na mesma organização?"

A resposta a esta pergunta é um enfático "sim!".

Esperamos que as respostas anteriores ofereçam alguma ideia de como as duas práticas operacionais se sobrepõem e, quando não se sobrepõem, como podem ser complementares em foco. As organizações com uma prática de DevOps estabelecida podem experimentar práticas de SRE em pequena escala (por exemplo, experimentando SLIs e SLOs) sem ter que se comprometer a criar posições ou equipes de SRE. Este é um padrão de adoção de SRE bastante comum.

Próximos passos

Interessado em saber mais sobre engenharia de confiabilidade de site ou DevOps? Confira nosso hub de engenharia de confiabilidade de site e o Centro de Recursos de DevOps do Azure.