Site Reliability Engineer - SRE: 7 Hábitos bem-sucedidos | MANDIC
7 Hábitos de Site Reliability Engineers (SREs) altamente bem-sucedidos
Como se tornar um Site Reliability Engineer bem-sucedido? Neste post, investigamos algumas das características e hábitos comuns aos SREs altamente qualificados em suas áreas de atuação. Os 7 hábitos descritos abaixo são derivados de extensas entrevistas com o engenheiro de software Beth Long, e com Jason Qualman, Site Reliability Engineer, ambos da New Relic.
#1: Você analisa cada mudança em um contexto sempre [muito] maior
Desenvolvedores de software bem-sucedidos entendem como o código que produzem ajuda a impulsionar os negócios em geral. Os Site Reliability Engineers – SREs têm um faro próprio para isso. "Você está procurando alguém que esteja realmente pensando muito maior no dia-a-dia", diz Jason. "Um SRE bem sucedido é alguém que pode entender e interpretar as coisas em um nível mais alto do que isso." Na New Relic, nós o descrevemos internamente como "alguém que está constantemente analisando cada mudança por seu próprio risco e qual o impacto que pode se esperar no futuro, não apenas hoje. E o que isso significa para uma infraestrutura muito maior?"
#2: Você é pragmático e visionário sobre essa análise
Os melhores SREs adotam uma abordagem pragmática e consideram como seu trabalho afetará o restante da equipe. "Tomanos decisões muito baixas na pilha", diz Jason sobre o papel do SRE. "Às vezes, isso pode afetar a todos os envolvidos no caminho. Você precisa de alguém que possa entender como sua solução para um problema em particular afetará alguém mais adiante."
#3: Você está disposto a seguir em frente quando algo não está bem
Para um SRE, parte de ser pragmático significa estar disposto a lidar com processos e procedimentos que possam ser bem intencionados, mas que acabam por não se mostrarem realmente produtivos. Beth se recorda de um exemplo quando a New Relic estava evoluindo com suas práticas de Site Reliability Engineer – SRE.
"Há alguns anos passávamos por uma fase de rápido crescimento e, para lidar com qualquer instabilidade associada, implementamos um processo de 'Change Acceptance Board' (CAB). O objetivo era nos ajudar a avaliar os releases antes que entrassem em produção, a fim de impedir que as alterações de quebra causassem novos incidentes. A ironia foi que, ao desacelerar nosso ciclo de lançamento, começamos a acumular mudanças maiores e maiores, que tinham exatamente o oposto do efeito pretendido. Essas mudanças maiores na verdade aumentaram o risco associado a cada novo lançamento".
Eventualmente, o processo do CAB foi descartado em favor de releases mais frequentes, porém menores, e que renderam resultados muito melhores.
#4: você aproveita todas as oportunidades para automatizar
Os SREs de primeira linha lidam com sucesso com um desafio importante: como aumentar a confiabilidade de tudo o que eles tocam sem diminuir a capacidade da empresa de entregar software rapidamente? A solução é quase sempre automação. Grandes SREs são pró-ativos em encontrar maneiras de lidar com tarefas manuais, bugs e assim por diante, com novas maneiras de automatizar esse processo ou mesmo corrigi-lo.
Esse foco obsessivo na automação não é exclusivo da New Relic. O "DevOps Handbook" tem um capítulo que discute os efeitos contra-intuitivos dos processos de aceitação manual, por exemplo. E "automação" e suas variantes parecem aparecer com mais frequência do que qualquer outra palavra nas descrições de trabalho dos SREs.
#5: Você pode persuadir as organizações a fazer o que precisa ser feito
A confiança para advogar por uma tarefa de automação específica é outro atributo que define os SREs classe "A". Você precisa estar disposto a entender por que é essencial automatizar um processo específico ou outro trabalho. E isso pode ser problemático, porque pode parecer colidir com a cultura e o ritmo de muitas organizações de software tradicionais.
Os "top" Site Reliability Engineers – SREs precisam ser vendedores eficazes, capazes de vender a seus colegas os benefícios da automação de longo prazo de um determinado processo ou projeto, mesmo que isso pareça envolver alguma dor à curto prazo. Moral da história? "Você precisa ser capaz de se envolver a ponto de poder dizer 'pare' e 'não, nós realmente precisamos fazer isso agora', o que pode ser difícil de fazer em algumas organizações de engenharia tradicionais", explica Beth.
#6: Você expande seu conjunto de habilidades para incluir novas ferramentas e abordagens
Como o conceito Site Reliability Engineer – SRE ainda é novo, muitos SREs já trabalharam em outros cargos antes de assumir esse perfil. Alguns SREs podem ter experiência como desenvolvedores, enquanto outros podem vir de um histórico de operações mais tradicional. Jason e Beth observam que, em geral, os gerentes de contratação são melhor servidos quando não classificam o papel do SRE em apenas um determinado contexto. Um engenheiro de QA tradicional, por exemplo, pode ter um bom background para a posição de SRE.
#7: Você confia no processo
Se há uma filosofia orientadora para o Site Reliability Engineer (SRE) altamente bem-sucedido, pode ser expresso desta forma: você não está impedindo que algo seja quebrado. Isso raramente funciona. Em vez disso, você trabalha incansavelmente para enxergar o quadro geral, incorporar a automação, incentivar padrões saudáveis, aprender novas habilidades e ferramentas e melhorar a confiabilidade em tudo o que faz. Perfeição nunca pode ser alcançada, mas constantemente se esforçar para fazer as coisas melhor é o caminho possível para chegar o mais próximo possível dela.