Sejamos honestos! Por melhor que sejam nossos procedimentos de teste, cada nova release colocada em produção estará recheada de novas funcionalidades e de bugs novos que precisaremos gerenciar, contornar e corrigir.
Se, por um lado, queremos permitir releases mais frequentes para atender aos anseios do negócio. Por outro, sempre temos o receio de que as novidades representem mais “dores de cabeça” do que benefícios.
No e-commerce, por exemplo, novas features podem melhorar os índices de conversão, ajudando a empresa a vender mais. Entretanto, não se pode ignorar que qualquer intervalo de indisponibilidade deteriora a confiabilidade na marca e pode afastar clientes.
[tweet]A forma mais justa de equilibrar o ímpeto inovador e a prudência é pela formação de um orçamento tolerado de erros.[/tweet]
O error budget é uma métrica definida em conjunto com os times de produto que determina a tolerância máxima de indisponibilidade para determinada área da plataforma em um determinado período de tempo. Por exemplo, se o “carrinho de compras” tem que ter um response time inferior a 300ms em 99% das requisições, assumimos que temos um error budget para retornar acima desse tempo em 1% dos requests. Assim, se são processadas 100.000 requisições por hora, poderemos “falhar” em 1.000!
Toda vez que o error budget é consumido, releases incluindo novas features são vetadas e somente voltam a ser autorizadas quando houver, mais uma vez, acúmulo de “orçamento” suficiente disponível.
A prática, embora simples, gera “efeitos colaterais” positivos:
- Os squads passam a investir consideravelmente na redução de falhas ocasionais que podem consumir o budget;
- As entregas ficam cada vez menores e localizadas, de forma que, se houver necessidade, rotinas de rollback sejam executadas mais rapidamente, reduzindo a drenagem do orçamento;
- A preocupação com a implementação de rotinas eficientes e automáticas para rollback aumenta.
- Os times de negócio adotam mais “prudência” ao definir SLOs para determinadas áreas do site. Afinal, quanto menor a tolerância a falhas, também menor será o ritmo permitido de introdução de novas features;
- O consumo desenfreado do orçamento de erros de qualquer área do site, sem sinais de recuperação, é gatilho para formação de war rooms.
No final do dia, acaba valendo a máxima de que “o combinado não sai caro, nem barato”.