DEV precisa se preocupar com SRE
Tags: software, sre
Published: 2022-08-02 16:38:00

Toda pessoa desenvolvedora de software deve se preocupar com a confiabilidade do sistema, essa não é uma tarefa apenas do time de SREs.

SRE, sigla em inglês para Site Reliability Engineering ou "Engenharia de Confiabilidade de Sites", é uma abordagem da engenharia de software às operações de TI. As equipes de SRE usam software como uma ferramenta para gerenciar sistemas, solucionar problemas e automatizar tarefas operacionais.

Se você está desenvolvendo software, então você tem interesse em garantir que esse software seja o mais confiável ​​possível.

Aqui está um tópico com sugestões e observações sobre este tópico:

O que é confiabilidade?

A confiabilidade do sistema é a probabilidade de um sistema desempenhar suas funções requeridas por um tempo e sob condições especificadas.

É importante porque determina a probabilidade do sistema atender às necessidades de seus usuários.

Planejar durante a fase de projeto é muito mais fácil do que deixar para depois.

A arquitetura para confiabilidade na nuvem envolve ter consciência das deficiências dos sistemas distribuídos.

Confiabilidade é um "subconjunto" de disponibilidade, que pode ser interpretado como a porcentagem de tempo em que o serviço está ativo.

Se sua disponibilidade for baixa e seu sistema estiver frequentemente inativo, os usuários não poderão usar seu produto e vão em breve migrar para outro sistema.

- A confiabilidade não é responsabilidade exclusiva do engenheiro de SRE, mas de todos na organização.

A confiabilidade é crucial porque o tempo de atividade afeta diretamente o resultado final.

O tempo de inatividade significa perda de produtividade, o que resulta em perda de receita.

Todos precisam estar cientes e assumir a responsabilidade pela confiabilidade do sistema para garantir que ele esteja disponível quando necessário.

Como os diferentes papéis contribuem:

SRE - Ajudam a identificar riscos e manter o sistema funcionando. Eles garantem que existam procedimentos de backup em caso de falhas.

Produto - Eles defendem as necessidades dos usuários e garantem que o sistema atenda às suas expectativas.

Engenheiros - Eles projetam e implementam aplicativos resilientes. Eles lidam com erros com facilidade e garantem que os dados sejam armazenados de forma durável para que possam ser recuperados em caso de falha.

Tester - Eles testam o sistema completamente para garantir que ele seja capaz de lidar com toda a carga e tráfego esperados.

- As organizações devem ser proativas na prevenção de problemas de confiabilidade, em vez de serem reativas ao lidar com eles após a ocorrência.

Melhorar a confiabilidade não é uma atividade única, pois requer uma cultura de aprendizado e aprimoramento contínuos.

Os problemas de confiabilidade geralmente são resultado de:

• Falta de experiência na identificação de riscos de confiabilidade.

• Falta de foco organizacional na confiabilidade do sistema durante as fases do Ciclo de Vida de Desenvolvimento de Software.

• Falta de suporte para criar e manter condições que sustentem a confiabilidade ao longo do tempo.

Isso geralmente leva a falhas não detectadas que só surgem sob condições de carga não testadas.

Este é um lugar difícil de se estar.


- Adote uma abordagem proativa para lidar com mudanças arriscadas.

Na evolução de um sistema (especialmente grandes mudanças), a gestão de riscos é fundamental.

Isso significa estar ciente dos riscos potenciais associados à mudança e tomar medidas para mitigar esses riscos antes que eles causem problemas.

Muitas vezes, isso significa realizar etapas extras de desenvolvimento para garantir que não haja tempo de inatividade, como migrar usuários sem problemas para evitar inconvenientes.

- Monitore seu sistema para prevenir problemas e evitar que eles afetem os usuários.

O monitoramento é crucial para detectar problemas desde o início, para que possam ser resolvidos antes que afetem a experiência do cliente..

Também pode ajudar a identificar tendências que podem levar a problemas futuros.

Quando as coisas dão errado, você quer minimizar o impacto em seus clientes.

Investir em observabilidade pode ajudá-lo a identificar erros rapidamente e reduzir o tempo médio de recuperação.

Resumindo:

1. Aumentar a conscientização sobre confiabilidade e compartilhar responsabilidades.
2. Compreender as causas comuns de problemas de confiabilidade.
3. Adotar uma abordagem proativa para lidar com riscos e antecipar falhas.
4. Monitorar seus sistemas e invista em observabilidade.


Esse texto é uma tradução e adaptação de várias postagens que acompanhei no twitter, em especial do perfil: @_jonalonso e achei importante compartilhar.