Categories: Inovação

SRE: entenda sobre o Site Reliability Engineering

Share

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!

This post was last modified on maio 19, 2021 15:55

Comentários

Posts Recentes

Conheça os principais desafios da adequação à LGPD!

A adequação à LGPD é uma preocupação de várias empresas. Afinal de contas, não se…

3 anos ago

O que muda do COBIT 5 para o COBIT 2019? Entenda!

A tecnologia tem passado por mudanças contínuas. Nesse contexto, modelos de gestão e governança estão…

3 anos ago

Serviços gerenciados de TI e outsourcing de TI: entenda as diferenças

Conhecer um pouco mais sobre serviços gerenciados de TI (Tecnologia da Informação) e outsourcing de…

3 anos ago

Entenda a importância da TIC para a segurança de dados da empresa

TIC e segurança de dados são conceitos que nasceram "entrelaçados". Enquanto o primeiro representa a…

4 anos ago

Saiba como a segurança de dados melhora a experiência do cliente

Como melhorar a experiência do cliente? Essa é uma pergunta recorrente entre os gestores de…

4 anos ago

Gestão de incidentes em TI: saiba como fazer de forma eficiente

A gestão de incidentes em TI nada mais é que um conjunto de boas práticas…

4 anos ago