Você sabia que existe uma estimativa de que 40% a 90% do custo total de um sistema de software incidem após o seu lançamento? Isso acontece porque a manutenção do software, necessária para manter o ambiente estável, é bastante complexa e requer múltiplas habilidades da equipe. É aí que entra em ação o Site Reliability Engineering (SRE).
O propósito do SRE é agregar confiabilidade ao sistema, o qual, não apenas em tese, deve ser utilizado por todos. Quando efetivamente confiável, o software está pronto para suportar a adição de novas funcionalidades, por exemplo, tornando-o mais útil e rentável para o fabricante.
Para que você compreenda os principais pontos acerca dessa metodologia de gerenciamento de TI, este conteúdo apresenta em mais detalhes os princípios do SRE, os benefícios para o desenvolvimento de sistemas, as funções dos envolvidos na abordagem e as melhores práticas. Vamos continuar?
Princípios fundamentais do SRE (Site Reliability Engineering)
De acordo com Benjamin Treynor Sloss, fundador do Google SRE, o conceito “é o que ocorre quando você pede a um engenheiro de software para projetar uma equipe de operações”. Isto é, mais precisamente, montar um time de engenharia dedicado a assegurar a confiabilidade e a agilidade dos serviços online ininterruptamente.
O Google é a referência primária quando o assunto é SRE. Nele, Sloss teve a experiência de projetar e liderar um time operacional composto por sete engenheiros de software. Em consequência do seu aprendizado, o vice-presidente de engenharia da empresa elaborou a metodologia, embasando-a em um conjunto de princípios fundamentais. Veja, abaixo, quais são elas:
- abraçar o risco;
- ter objetivos do nível de serviço;
- eliminar trabalho desnecessário;
- monitorar sistemas distribuídos;
- automatizar processos;
- ter engenharia de lançamentos;
- buscar a simplicidade.
Entretanto, cabe frisar que os princípios são colocados em prática a partir de múltiplas ações. Por exemplo, “abraçar o risco” significa gerenciá-lo para manter a confiabilidade em um nível aceitável, o qual permita à organização investir em inovações e, ao mesmo tempo, mitigar impactos negativos ao consumidor.
Por sua vez, a simplicidade se resume a dar estabilidade a um sistema reduzindo mudanças no código-fonte, ou seja: menos códigos inseridos, menos bugs gerados. Conforme prega a filosofia Unix, “faça com que cada programa faça uma coisa bem. Para fazer um novo trabalho, construa novamente, em vez de complicar programas antigos, adicionando novos recursos”.
Benefícios do SRE para o desenvolvimento de sistemas
Os benefícios de adotar o SRE não são poucos. Afinal, a empresa trabalha diretamente na melhora da experiência do usuário e agrega estabilidade ao sistema com mais facilidade. Além disso, há outras vantagens em destaque:
- gerenciamento de incidentes;
- otimização do produto desde o desenvolvimento;
- cumprimento de SLA com menos esforços;
- agilidade na entrega de serviço;
- aumento da eficiência operacional.
Como podemos constatar acima, os benefícios promovidos pelas práticas de SRE não podem ser ignorados. Contudo, a metodologia tem de ser muito bem aplicada para que eles se manifestem. A seguir, separamos três dicas que vão levá-lo ao êxito.
Melhores práticas para ter sucesso com o SRE
A aplicação de melhores práticas é sempre bem-vinda na melhoria de um processo de TI, não é mesmo? Quer saber o que a sua empresa pode fazer para implementar o SRE e ter sucesso? Elencamos, abaixo, três hábitos comuns de um time vencedor.
Adotar a filosofia KISS
A filosofia KISS (Keep It Simple, ou Mantenha Simples, em português), criada por Eric Steven Raymond, autor do livro “The Art of Unix Programming”, é excelente referência para todos os integrantes de um time de SRE. Entre as regras nela empregadas que se aplicam à metodologia, destacam-se:
- composição: projete os programas para serem conectados com outros programas;
- silêncio: quando um programa não tem nada de surpreendente a dizer, ele não deve dizer nada;
- simplicidade: projete para a simplicidade, adicione complexidade apenas onde é necessário;
- robustez: ela é filha da transparência e da simplicidade.
Além da filosofia KISS, há muitas outras escritas por grandes nomes da programação que são condizentes com os objetivos do SRE. Exemplos: as notas para programação na linguagem C, por Rob Pike, e a já mencionada filosofia Unix.
Evitar acúmulo de funções
Dentro do SRE, existe uma questão muito séria: as interrupções. A capacidade de lidar com interrupções é a virtude que a equipe deve ter para manter o sistema em um estado funcional. A complexa carga operacional de TI, como ocorre no desenvolvimento de software, não é tolerante a interrupções, pois elas geram:
- acumulo de problemas;
- lentidão de processos;
- atraso na solução de problemas;
- perda de dinheiro.
Portanto, assim como o engenheiro SRE tem de evitar distrações e se concentrar apenas no plantão da equipe, o próprio deve assegurar que os profissionais mais bem capacitados estão assumindo as funções adequadas. Isso ajuda a reduzir chamadas desnecessárias e falhas operacionais que dão origem a requisições.
Realizar testes de software
Quantificar a confiança do software é uma das responsabilidades mais importantes do engenheiro em projetos SRE. Nesse contexto, embora a realização de testes não traduza confiabilidade, uma série de resultados insatisfatórios denota ausência dela. Além disso, os testes ajudam a identificar e a solucionar problemas rapidamente.
De acordo com Alex Perry e Max Luebbe, ambos engenheiros especialistas em SRE, os testes tradicionais são divididos em três categorias: de unidade, de integração e de sistema.
Na base da pirâmide estão os testes de unidade, voltados a partes isoladas do software, como classes ou funções. Os testes de integração servem para analisar o desempenho dos elementos quando montados em componentes maiores. Já os testes de sistema são de larga escala. Aqui, são executados: testes de regressão, performance, estresse etc.
O conteúdo que você acaba de ler foi elaborado com objetivo de mostrar que, muitas vezes, os altos custos da TI estão ligados a questões que, felizmente, têm solução. No caso do SRE, é possível reduzir consideravelmente o impacto financeiro gerado pela manutenção e, ao mesmo tempo, desenvolver um produto confiável.
Se você gostou da publicação e deseja estar entre os primeiros a receber as novidades, aproveite para assinar a nossa newsletter. Ao cadastrar-se, os próximos conteúdos e materiais serão encaminhados a sua caixa de e-mail!
Valeska Fernandes diz
Boa leitura.
Humberto L Fadul diz
Gostei muito do que eu li!
Alessandro zao diz
Muito bom!
Giovanna diz
Excelente conteúdo
isabella a. diz
parabéns pelo texto, muito informativo e completo.
Marco Aurélio Balduino diz
Conteúdo bem explicativo….