Shutterstock.com/Slate

SRE significa Site Reliability Engineering. Ele se baseia nos princípios do DevOps para trazer uma abordagem orientada pela engenharia para as operações de TI. O SRE usa software para automatizar a operação do sistema, identificar problemas e implementar soluções.

O conceito SRE desenvolvido no Google. Baseia-se na ideia de que código e software são a maneira mais eficaz de gerenciar sistemas de grande escala. Os procedimentos manuais iniciados por uma equipe separada apresentam risco de supervisão e inconsistência.

Neste artigo, você aprenderá o que é o SRE e como ele ajuda a otimizar as operações na nuvem. Também explicaremos onde o SRE se sobrepõe ao DevOps, bem como as diferenças entre eles.

Onde o SRE se encaixa na entrega de software?

SRE refere-se à gestão de operações. Insira o processo de entrega de software após o código ter sido desenvolvido, revisado e implementado. Os engenheiros de confiabilidade do site geralmente monitoram, mantêm e otimizam os serviços implantados, assumindo as responsabilidades dos administradores.

A característica distintiva do SRE em comparação com as operações tradicionais é a ênfase que coloca na automação. Controles de infraestrutura, gerenciamento de mudanças, auditorias e resposta a incidentes devem ser automatizados dentro do modelo. O profissional de SRE se concentra no provisionamento e execução de ferramentas de software que realizam essas tarefas, em vez de interagir diretamente com o próprio sistema.

O SRE unifica diferentes aspectos da experiência de gerenciamento de operações. O uso de um processo orientado por ferramentas significa que há menos locais para a ocorrência de problemas. Isso ajuda a aumentar a estabilidade à medida que os sistemas crescem, mesmo que o tamanho da equipe SRE permaneça estático.

O que os engenheiros da SRE realmente fazem?

Os engenheiros da SRE geralmente são desenvolvedores de software que também têm experiência na operação de serviços de produção. Isso lhes dá uma consciência holística do processo de entrega, desde a confirmação do código até a resolução de incidentes. Eles usarão esse conhecimento para projetar e implementar mecanismos para implementar e monitorar ambientes ao vivo.

Como “confiabilidade” está literalmente no nome, as equipes de SRE também são responsáveis ​​por medir o tempo de atividade e encontrar maneiras de melhorá-lo. Os engenheiros do SRE estabelecem objetivos de nível de serviço (SLOs) que fornecem metas de confiabilidade para a organização. Eles definirão e monitorarão indicadores de nível de serviço (SLIs) que informam se as metas estão sendo atingidas, como taxa de erros, taxa de transferência de solicitações e contagem de tickets. Os SREs estarão envolvidos na elaboração de acordos de nível de serviço (SLAs) que também são compartilhados com os clientes.

Os engenheiros da SRE são os guardiões efetivos de novas implementações. Seu foco em preservar a estabilidade significa que eles às vezes causarão congelamentos de implementação se um SLO ou SLA estiver prestes a ser violado. A equipe de SRE pode direcionar os desenvolvedores para que se concentrem em abordar a causa dos incidentes, em vez de continuar implementando novos trabalhos.

Nenhum serviço pode esperar ser executado com 100% de confiabilidade. A SRE reconhece isso dando aos desenvolvedores um “orçamento de bugs” que eles podem “gastar”. Depois que esse orçamento for excedido por novos bugs, tickets ou interrupções, resolver os problemas se tornará a prioridade de todos até que o orçamento de bugs e os SLOs sejam redefinidos.

Pode ser um engenheiro do SRE concluindo esse trabalho de reparo escrevendo um novo código. Como a equipe do SRE tem experiência em engenharia de software, ela está equipada para resolver problemas por iniciativa própria. Às vezes, quando o serviço está funcionando bem, as pessoas com funções de SRE voltam a ser desenvolvedores regulares. Espera-se que os engenheiros de SRE do Google gastem pelo menos metade de seu tempo no trabalho de desenvolvimento.

Esse equilíbrio exclusivo de desenvolvimento e operações ajuda a preservar a capacidade do engenheiro do SRE de supervisionar o processo de entrega. Seu nível de visibilidade é inestimável quando se trata de identificar riscos que podem causar um incidente. Também incentiva os engenheiros a minimizar o tempo gasto em tarefas de operações implementando novas ferramentas e procedimentos automatizados. Isso pode criar um ciclo autossustentável: um grau mais alto de automação geralmente torna o serviço mais confiável, reduzindo a carga de trabalho de operações para a equipe de SRE. Por sua vez, os engenheiros são liberados para retornar ao desenvolvimento e aumentar o desempenho.

Como o SRE se alinha ao DevOps?

DevOps é um termo abrangente que descreve o uso de tecnologias e metodologias modernas para fornecer software de alta qualidade mais rapidamente. Isso é alcançado preenchendo a lacuna entre as equipes de desenvolvimento e operações e, em seguida, sobrepondo a automação ao processo de entrega de software.

Até agora, isso soa semelhante ao SRE. No entanto, o SRE tem um único objetivo em mente: confiabilidade, enquanto o DevOps também considera preocupações tangenciais, como eficiência do desenvolvedor e velocidade de entrega. Deve-se notar que o DevOps é frequentemente abordado como uma ponte entre o desenvolvimento e as operações, enquanto o SRE os funde. Na SRE, as tarefas de desenvolvimento e operações são realizadas pelas mesmas pessoas, com o desenvolvimento ganhando mais atenção.

Por esses motivos, o SRE pode ser visto como uma implementação específica do DevOps. Embora os objetivos gerais sejam semelhantes e fortemente alinhados, o SRE descreve um método para alcançá-los: use orçamentos de erro, SLOs e SLIs para proteger os serviços contra erros e, em seguida, implemente proteções que permitam que o viés de trabalho retorne ao desenvolvimento.

Benjamin Treynor Sloss, o engenheiro do Google que cunhou o termo SRE, diz que o SRE pode ser visto como “uma implementação específica do DevOps com algumas extensões idiossincráticas”. Como alternativa, você pode inverter o modelo e abordar o DevOps “como uma generalização de vários princípios básicos de SRE para uma gama mais ampla de organizações, estruturas de gerenciamento e pessoas”.

Uma maneira significativa pela qual o SRE difere do DevOps é sua dependência de dados. O DevOps é frequentemente visto como um conjunto de princípios para mover o código com eficiência das estações de trabalho do desenvolvedor para os ambientes de produção. Isso significa trabalhar em termos de commits, solicitações de mesclagem, pipelines e contêineres. O SRE é uma estratégia para implementar mudanças com máxima confiabilidade e menor chance de regressão. Um SRE eficaz requer observação e análise contínuas para determinar onde ocorreram erros e como eles podem ser repetidos no futuro. É mais investigativo e autoconsciente do que uma implementação típica de DevOps.

SRE é uma boa mudança de carreira?

O SRE começou recentemente a atrair a atenção do mainstream. Pode ser um desafio encontrar uma função de SRE porque muitas organizações ainda não reconhecem os benefícios do modelo. Em alguns casos, uma forma de SRE pode estar presente em uma organização, mas isso pode não se refletir nas funções que anunciam.

Apesar de sua natureza especializada, o SRE costuma ser uma boa mudança de carreira. Requer uma interseção de habilidades, que vão desde o desenvolvimento de software até a operação de serviço e a resposta a incidentes, com um bom grau de profundidade em cada uma delas. Existem poucos candidatos que podem oferecer isso, o que significa que as funções da SRE tendem a ser posições lucrativas.

Uma análise do GitLab em abril de 2022 encontrou apenas 21.000 vagas de SRE, enquanto havia 104.000 posições de DevOps. No entanto, os dados do Glassdoor indicaram uma faixa salarial de até US$ 300.000 para trabalho SRE, em comparação com US$ 234.000 para DevOps.

Mover-se para uma função de SRE pode ser uma oportunidade gratificante para pessoas que desejam permanecer no campo de desenvolvimento enquanto ganham experiência prática em operação de serviços. É especialmente adequado para pessoas que acham as funções de administrador tradicionais muito repetitivas e mundanas. Como um SRE, espera-se que você automatize as operações, procure oportunidades para melhorar a qualidade do serviço e contribua para os esforços regulares de desenvolvimento depois que o rastreador de incidentes ficar em silêncio.

conclusão

A Engenharia de Confiabilidade do Site usa métodos comumente associados ao desenvolvimento de software para automatizar as operações de serviço. Os engenheiros da SRE são desenvolvedores experientes que também estão familiarizados com os desafios de executar e dimensionar serviços em produção. Eles estabelecem uma cadeia de ferramentas para medir e otimizar a confiabilidade, assumindo tarefas anteriormente tratadas por administradores de sistema dedicados.

O SRE pode ser visto como uma implementação dos princípios do DevOps. A nomeação de engenheiros SRE deve resultar em um serviço mais resiliente que pode aceitar mudanças rápidas. Isso atinge a meta do DevOps de acelerar a implantação de software sem afetar a qualidade. A SRE estabelece uma estratégia específica que trabalha nessa direção, enfatizando a medição de dados, bem como a unificação de talentos de desenvolvimento e operações.

Embora o DevOps agora seja amplamente compreendido na comunidade, o SRE continua sendo uma área de foco emergente para muitas organizações. As vagas de emprego podem ser mais difíceis de encontrar, mas tendem a ser mais lucrativas quando aparecem. Isso reflete o conjunto variado de habilidades que os engenheiros de SRE devem possuir. A demanda provavelmente crescerá rapidamente nos próximos dois anos, então agora é a hora de candidatos e organizações começarem a prestar atenção à mudança para o ERS.

O post O que é SRE? Como isso está relacionado ao DevOps? apareceu primeiro em Daily Report.