Desenvolver aplicações ou manter a alta disponibilidade dos sistemas é sempre um desafio. Contar com um desenvolvimento ágil e ter um fluxo constante de liberação de releases com novas funcionalidades sempre pode conter erros. Por mais que se utilize uma série de procedimentos de testes, os novos códigos podem acabar trazendo novos bugs que precisam ser gerenciados e corrigidos.
Uma maneira de garantir que os lançamentos sejam mais planejados e confiáveis para o usuário final é por meio da criação de um orçamento tolerado de erros, também conhecido como error budget.
Quer saber mais detalhes sobre como funciona o error budget e como ele pode ajudar sua empresa. Então confira nosso artigo!
O que é error budget?
O orçamento de erro (error budget), dentro do contexto de Site Reliability Engineering (SRE), serve como uma estrutura para gerenciamento de riscos, visando trazer equilíbrio entre o time de desenvolvimento e os SREs. Em linhas gerais, são usados para medir o quanto de risco a empresa está disposta a tolerar em um serviço.
A base de cálculo é tempo de atividade / disponibilidade medida, desde que o erro de orçamento gerado esteja acima dos SLAs e dos SLOs, ainda haverá um erro de orçamento restante a ser utilizado. Assim, novos recursos e lançamentos podem ser alocados na produção.
Alguns pontos devem ser levados em consideração para que o error budget funciona bem, como:
- Contar com SLOs adequados e aprovados pelas partes envolvidas na empresa (time técnico e time de negócio);
- Tendo esgotado o orçamento de erro ou perto de, algo deve ser feito para restaurar a estabilidade do sistema;
- Os responsáveis por garantir que o serviço atenda o SLO devem estar de acordo que seja possível alcançá-lo em circunstâncias normais;
- A empresa ter o comprometimento de utilizar o error budget para a tomada de decisões e priorização e oficializar isso, em uma política de orçamento de erros;
- Caso o orçamento de erro esgote-se para o período estabelecido, deve-se cumprir o não lançamento de novas releases.
- Ter um processo de melhoria contínua dos SLOs.
Como calcular o error budget?
Para a definição da métrica, os times de produto e SRE devem se reunir para criar em conjunto o orçamento de erros, levando como base o objetivo de nível de serviço (SLO). Nessa métrica deve estar claro e objetivo o quanto de tempo, dentro do período estabelecido, que o serviço pode ficar indisponível ou não-confiável. Como a métrica é definida em conjunto com os times, isso ajuda a diminuir a tensão sobre negociações para a definição de qual o nível de risco que se deve assumir em uma atualização de serviço.
Por exemplo, se for definido que o objetivo (SLO) é ter 99% dos eventos válidos com sucesso, se tem 1% de margem de erro, ou seja, a API recebe 1.000.000 requisições, com o SLO de disponibilidade de 99% o orçamento é de 10.000 erros de requisição durante esse período de tempo. Caso você queira fazer simulações de possíveis errors budgets, calcule aqui.
Qual Error Budget Alvo minha empresa deve buscar?
Uma dica importante que a equipe do Google dá sobre qual a janela de tempo utilizar para o orçamento de erros é sempre buscar períodos iguais. Eles mesmos utilizam janelas de 28 dias. Segundo eles, este período, além de representar 4 semanas corridas, é a memória curta do usuário para erros.
Dentro deste período, por exemplo, uma disponibilidade de 99.9% significa uma parada de 43.2min durante o período inteiro. Portanto, cuidado ao buscar SLOs com disponibilidades altíssimas, como 99.999%, que significaria 24.2 segundos apenas de indisponibilidade durante o período inteiro.
De acordo com Benjamin Treynor Sloss, Vice presidente de Engenharia 24×7 do Google, “100% é uma confiabilidade alvo errada por basicamente qualquer parâmetro”. Isso porque não permite flexibilidade, barra a inovação/experimentação e simplesmente custa caro demais, mesmo para as maiores empresas.
Em linhas gerais, SLOs com disponibilidades de 99.9% para cima são para grandes empresas. SLOs de 99.999% são para pouquíssimas empresas, como Google, Netflix, Uber, etc.
Para o cenário brasileiro, SLOs de 99% já começam ser interessantes e possibilitam espaço para inovações e experimentações.
Como aplicar Error Budgets na sua empresa?
Como podemos observar, contar com um error budget traz para os times de produto e SRE mais tranquilidade e segurança na hora de desenvolver e lançar serviços. Tendo estipulado até onde se pode ir, sem causar perdas financeiras que venham a impactar o negócio, fica mais fácil planejar a estabilidade das aplicações que serão acessadas pelos seus clientes.
Caso queira saber mais sobre como aplicar na sua empresa os conceitos mais modernos de SRE (Site Reliability Engineering), como SLOs, SLIs e Error Budgets, entre em contato com nossos especialistas para garantir a estabilidade das suas aplicações.