Princípios e práticas fundamentais da SRE: O lado humano da SRE
Um processo de operações bem-sucedido é aquele que alcança a confiabilidade desejada e a sustenta. Esse processo depende de como as pessoas responsáveis por esse ambiente e os computadores envolvidos são tratados. A engenharia de confiabilidade de sites reconhece essa afirmação verdadeira de várias maneiras que são fundamentais para a prática.
Trabalho árduo
A primeira tem como foco a noção de “trabalho árduo”. Em um contexto da SRE, trabalho árduo refere-se ao trabalho de operações feito por uma pessoa que tem determinadas características. O trabalho árduo não tem nenhum valor de resgate a longo prazo. Ele não promove o serviço de maneira significativa. Ele costuma ser repetitivo e principalmente manual (mesmo que possa ser automatizado). Conforme o serviço ou os sistemas aumentarem ao longo do tempo, o número de solicitações para o sistema provavelmente também aumentará em quantidade em uma taxa proporcional e exigirá mais trabalho manual.
Por exemplo, um serviço pode exigir que a equipe de SRE gere cargas operacionais como estas que são consideradas trabalho árduo:
- Redefinir algo toda semana.
- Provisionar novas contas e espaço em disco manualmente.
- Reiniciar repetidas vezes um processo manualmente.
A conclusão dessas ações não melhora o serviço de modo persistente e em longo prazo. Também é provável que essas ações precisem ser repetidas várias vezes.
Observação
Mesmo se você mantiver solicitações dessa natureza em algum tipo de sistema de tíquete, assim como muitos locais, a execução da ação e a resolução de um tíquete ainda será um trabalho árduo. É apenas um trabalho árduo bem controlado.
As SREs odeiam trabalho árduo. Elas funcionam para eliminá-lo sempre que possível e de forma adequada. Esse objetivo é um dos aspectos em que a automação entra em cena na SRE. Se essas solicitações podem ser tratadas automaticamente, isso libera a equipe para trabalhar em coisas mais gratificantes e impactantes do que esvaziar a fila de solicitações.
O uso da palavra "apropriado" em relação ao trabalho árduo é semelhante ao uso em relação à confiabilidade. Há situações em que o trabalho de eliminação de trabalho árduo é de prioridade mais baixa do que outro trabalho, mas de modo geral, a remoção do trabalho árduo de um serviço é dos principais focos para uma SRE.
Trabalho de projeto vs. trabalho de "Ops" reativo
Para conseguir eliminar o trabalho árduo ou melhorar a confiabilidade de um sistema, o tempo de uma SRE precisa ser alocado de maneira adequada. Eles querem garantir que não passem o tempo todo apagando incêndios, respondendo a páginas ou apenas processando uma fila de tíquetes. Ela precisa ter o tempo reservado para a escrita de códigos para eliminar o trabalho árduo, para a construção da automação de autoatendimento para que tíquetes não sejam necessários e para a criação de projetos que tornem o serviço e as pessoas mais eficientes. A figura geralmente citada (obtida do modelo original da Google) é de uma carga operacional não superior a 50% sobre uma equipe.
Observação
De certa forma, 50% é um número arbitrário, mas na prática, ele parece funcionar como uma meta razoável para muitas pessoas.
Há momentos na vida de uma SRE em que todo o seu tempo é dedicado à resolução de problemas, mas esse não pode ser um estado estável. Se o trabalho de "Ops" reativo de uma equipe (grande parte de seu trabalho árduo) ocupa mais de 50% de seu tempo por um longo período, essa é uma receita para o esgotamento e uma baixa confiabilidade. Nessa situação, os ciclos virtuosos abordados anteriormente não podem operar nem ser construídos. Da mesma forma, a SRE volta a atenção para a carga em serviço mal balanceada porque isso também tem o potencial de prejudicar bastante a equipe.
Agora que tivemos uma oportunidade de ver algumas das principais práticas e princípios da SRE, vamos falar um pouco sobre como começar a usá-la.