Login / Registre-se Account

DevOps

O que é SRE (engenharia de confiabilidade de sites)?

Engenharia de confiabilidade de sites (SRE) é 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.

Na abordagem de SRE, as tarefas que historicamente foram realizadas pelas equipes de operações, muitas vezes manualmente, passam a ser delegadas a engenheiros ou equipes de operações, que usam software e automação para solucionar problemas e gerenciar sistemas de produção. 

A prática de SRE é muito útil sobretudo na criação de sistemas de software escaláveis e altamente confiáveis. Ela ajuda a gerenciar sistemas extensos por meio do código, o que é mais escalável e viável para administradores de sistemas que administram centenas ou milhares de máquinas. 

O conceito de engenharia de confiabilidade de sites foi criado pela equipe de engenharia do Google e é atribuído a Ben Treynor Sloss. 

A abordagem de SRE ajuda as equipes a encontrar um equilíbrio entre lançar novas funcionalidades e assegurar que elas sejam confiáveis para os usuários.

Padronização e automação são dois componentes importantes do modelo de SRE. Os engenheiros de confiabilidade de sites devem sempre procurar uma maneira de aprimorar e automatizar as tarefas operacionais.

Desse modo, a SRE ajuda a aumentar a confiabilidade de um sistema não somente no presente, mas também a aprimorá-la ao longo do tempo, conforme esse sistema cresce. 

As práticas de SRE facilitam o trabalho das equipes que estão abandonando a abordagem mais tradicional para a execução de operações de TI e adotando a natividade em nuvem.

O que faz um engenheiro de confiabilidade de sites?

A função do engenheiro de confiabilidade de sites é singular e requer experiência, conhecimento e habilidades em desenvolvimento de software, administração de sistemas e operações de TI. 

As equipes de SRE são responsáveis pela maneira como o código é implantado, configurado e monitorado, bem como pela disponibilidade, latência, gerenciamento de mudanças, resposta a emergências e gerenciamento de capacidade dos serviços em produção.

A adoção das práticas de SRE ajuda as equipes a determinar quais funcionalidades novas podem ser lançadas e em que momento. E isso é feito com o uso de contratos de nível de serviço (SLAs) que definem a confiabilidade obrigatória de um sistema por meio de indicadores de nível de serviço (SLI) e objetivos de nível de serviço (SLO). 

O SLI é uma métrica definida sobre aspectos específicos dos níveis de serviços oferecidos. Os principais indicadores incluem latência de solicitação, disponibilidade, taxa de erro e capacidade do sistema. Um SLO é baseado no intervalo ou valor desejado para um nível de serviço com base no SLI.

Em seguida, um SLO é determinado para a confiabilidade exigida do sistema com base no tempo de inatividade considerado aceitável. Esse nível de tempo de inatividade é chamado de "orçamento de erro", o limite máximo permitido para erros e interrupções. 

Na abordagem de SRE, não se espera que haja 100% de confiabilidade, mas as falhas são planejadas e aceitas. 

A equipe de desenvolvimento pode "gastar" o orçamento de erro ao lançar uma funcionalidade nova. Com base no SLO e no orçamento de erro disponível, a equipe de desenvolvimento pode determinar se é viável ou não lançar uma certa solução ou serviço.

Se um serviço em execução está dentro desse orçamento, então, a equipe de desenvolvimento pode lançar esse serviço quando desejar. No entanto, se o sistema apresentar muitos erros ou permanecer inativo por um tempo maior do que o permitido pelo orçamento de erro, nenhum lançamento novo deverá ser realizado até que as falhas estejam dentro do parâmetro.   

A equipe de desenvolvimento conduz testes automatizados nas operações para demonstrar a confiabilidade. 

Os engenheiros de confiabilidade de sites dividem seu tempo entre a execução de tarefas operacionais e o trabalho em projetos. De acordo com as práticas recomendadas pelo Google para SRE, um engenheiro de confiabilidade de sites só pode gastar no máximo 50% do tempo trabalhando nas operações. O tempo deve ser monitorado para assegurar que essa porcentagem não seja ultrapassada. 

O restante do tempo é gasto em tarefas de desenvolvimento, como criação de funcionalidades novas, escalonamento do sistema e implementação da automação.

O excesso de trabalho operacional e o baixo desempenho dos serviços podem ser redirecionados para que a equipe de desenvolvimento solucione esses problemas. Assim, o engenheiro de confiabilidade de sites não passa tanto tempo nas operações de uma aplicação ou um serviço. 

A automação é uma parte importante da função do engenheiro de confiabilidade de sites. Se eles estiverem enfrentando um problema que se repete, então devem criar uma solução automatizada. Essa também é uma maneira de assegurar que o trabalho operacional não ocupe mais da metade da carga de trabalho desses profissionais. 

Manter o equilíbrio entre o trabalho operacional e de desenvolvimento é essencial na abordagem de SRE. 

DevOps x SRE

A metodologia DevOps é uma abordagem de cultura, automação e design de plataforma que tem como objetivo agregar mais valor aos negócios e aumentar a capacidade de resposta às mudanças por meio de entregas de serviços rápidas e de alta qualidade. A SRE pode ser considerada uma forma de implementar a metodologia DevOps.

Assim como o DevOps, a SRE tem como foco a cultura e os relacionamentos. Ambas as abordagens têm como objetivo aproximar as equipes de operações e desenvolvimento para acelerar a entrega de serviços. 

Ciclos de desenvolvimento mais rápidos, melhor qualidade de serviço, maior confiabilidade e redução no tempo gasto pela TI em cada aplicação desenvolvida são alguns dos possíveis benefícios alcançáveis com as práticas de DevOps e SRE.

No entanto, a SRE é diferente porque depende dos engenheiros de confiabilidade de sites da equipe de desenvolvimento que também têm experiência em operações de TI para eliminar problemas de comunicação e fluxo de trabalho.

A função do engenheiro de confiabilidade de sites combina as habilidades das equipes de desenvolvimento com as de operações porque tem responsabilidades que abrangem ambas as áreas. 

A SRE pode ajudar as equipes de DevOps cujos desenvolvedores estão sobrecarregados com as tarefas operacionais e precisam de alguém com habilidades mais especializadas nessa área. 

Em termos de codificação e criação de novas funcionalidades, o foco da metodologia de DevOps está em percorrer o pipeline de desenvolvimento de modo eficiente. Já a abordagem de SRE está focada no equilíbrio entre os esforços de manter a confiabilidade de sites e a criação de novas funcionalidades. 

As plataformas de aplicações modernas baseadas em tecnologia de containers, Kubernetes e microsserviços são essenciais para as práticas de DevOps, pois ajudam a entregar serviços de software seguros e inovadores.

 

Tecnologia que viabiliza a SRE

A abordagem de SRE depende da automação de tarefas operacionais rotineiras e da padronização de todo o ciclo de vida das aplicações. Ao adotar os containers Linux®, sua equipe tem a tecnologia subjacente necessária para o desenvolvimento nativo em nuvem. Os containers são compatíveis com um ambiente unificado para desenvolvimento, entrega, integração e automação.

E o Kubernetes é o meio mais moderno de automatizar as operações de containers Linux. Ele possibilita o gerenciamento fácil e eficiente dos clusters que executam containers Linux em nuvens públicas, privadas e híbridas.

Com a plataforma certa, você aproveita ao máximo as mudanças que sua empresa implementou na cultura e nos processos. O Red Hat® OpenShift® é uma plataforma de Kubernetes para empresas que viabiliza as iniciativas de SRE.

As ferramentas necessárias para adotar a SRE

Red Hat Ansible Automation

Uma tecnologia de automação de TI simples e sem agentes que permite aprimorar os processos existentes e migrar aplicações para aumentar a otimização, além de oferecer uma linguagem unificada para as práticas de DevOps em toda a organização.

Red Hat OpenShift

Plataforma empresarial de containers Kubernetes com um stack completo de operações automatizadas para gerenciar implantações de nuvem híbrida e multicloud. 

Você pode fazer muito mais com o DevOps