A engenharia de confiabilidade do site é o processo de utilizar processos operacionais e atribuí-los à equipe de engenharia de software para a automação.
As equipes de TI estão constantemente buscando adotar metodologias de SRE. A engenharia de confiabilidade do site está pegando as práticas de operações e entregando-as aos engenheiros de software para automação de tarefas humanas, solução de problemas e gerenciamento de sistemas. Uma equipe de SRE é responsável pelo gerenciamento de mudanças, resposta de emergência, monitoramento, disponibilidade, desempenho, latência, eficiência e planejamento de capacidade dos serviços, geralmente escrevendo software para automação de processos.
O SRE é um excelente ativo para confiabilidade em software e escalabilidade, pois os sistemas podem ser gerenciados por meio de código, para um equilíbrio entre garantir que um produto e recursos sejam confiáveis e lançar novos produtos e recursos.
Ben Treynor Sloss, do Google, é o mentor por trás do SRE. Ele o descreve apropriadamente como "o que acontece quando um engenheiro de software é encarregado do que costumava ser chamado de operações". O conceito surgiu após uma análise dos conflitos entre as operações que querem garantir que os recursos não prejudiquem nada ou incomodem os usuários finais, e as equipes de desenvolvimento, que desenvolveram e desejam lançar novos recursos assim que estiverem prontos para uma implementação. SRE é uma reconciliação entre os dois.
O Google publicou um livro sobre SRE, disponível gratuitamente on-line. Ele oferece um aprofundamento sobre o papel do SRE e as práticas recomendadas para execução. Os destaques vão para as partes II e III, princípios e práticas (respectivamente).
Princípios do SRE: de acordo com o Google, os princípios fundamentais do SRE são:
- Adoção do risco: fornece abordagens neutras ao Service Management usando orçamentos de erro.
- Objetivos de nível de serviço: fornece recomendações para indicadores desintegrados a partir de contratos e examina como o SRE usa os termos.
- Eliminação de esforço: afastando-se de tarefas mundanas e repetitivas que são desprovidas de valor.
- Monitoramento de sistemas distribuídos: sempre evite fechar os olhos para o que está acontecendo na organização por causa da confiabilidade.
- Engenharia de versões: considere cuidadosamente as versões para garantir que elas sejam consistentes e não contribuam com indisponibilidades.
- Simplicidade: um sistema muito complexo pode reduzir a confiabilidade e dificultar o dimensionamento para um local mais simples.
A função de um engenheiro de confiabilidade do site é melhor desempenhada por alguém com experiência em software. Certamente não é uma posição de nível básico. A execução adequada do SRE exige fluência na engenharia de software e compreensão de um sistema de grande escala e complexidade.
Um engenheiro de confiabilidade do site precisa da mentalidade certa para essa posição. Habilidades técnicas são necessárias, mas um entendimento conceitual das operações é fundamental. É importante que os SREs sejam baseados em processos tradicionais de desenvolvimento de software, mas também é muito importante um entendimento holístico dos processos da empresa e do avanço de um sistema confiável.
É trabalho de todos na organização ser o mais confiável possível, aplicando assim os princípios importantes de SRE. Aplique um modelo de confiabilidade a cada equipe e discuta como a confiabilidade pode se encaixar em cada uma delas e afetar a todos.
Novos lançamentos recebem luz verde com base no desempenho atual do produto: em geral, os aplicativos não chegam em 100% do tempo. A equipe de SRE deve criar um contrato de nível de serviço para definir o sistema e como ele será usado para usuários finais. Uma parte comum de um contrato de nível de serviço é um orçamento de erro ou a quantidade máxima de limite para interrupções e erros.
As equipes de desenvolvimento e os SREs compartilham pessoal, ou seja, um SRE adicional significa menos um desenvolvedor e vice-versa. O sistema é autorregulado para evitar qualquer batalha entre desenvolvedores e SREs por necessidade de pessoal. Os SRES também conseguem codificar e desenvolver, o que os ajuda a trabalhar bem junto com a equipe de desenvolvimento.
Os SRES podem se mover entre os projetos, pois criam um forte senso de motivação e dedicação para permitir que os membros da equipe busquem metas e objetivos pessoais.
- Criar software para ajudar as operações e as equipes
- Corrigir problemas de escalonamento
- Otimizar processos de plantão
- Documentar o conhecimento da equipe
- Realizar análises após os incidentes
Os SREs podem se adaptar ao cerne das operações de TI, engenharia de software e suporte para fornecer uma base sólida e um relacionamento entre as equipes, o que ajuda nos ciclos de feedback, colaboração e confiabilidade.
Os SREs estão em busca de necessidades gerais para orientar as diferentes equipes em direção a um objetivo único.
Grande parte da função SRE está enraizada em eliminar ineficiências e identificar coisas que são fáceis de automatizar. Tarefas demoradas podem ser interrompidas e a eficiência pode aumentar sem muito trabalho manual.
As práticas de SRE não precisam se aplicar apenas ao setor de tecnologia. Uma cultura de engenharia de confiabilidade do site pode ser expandida para comércio eletrônico, atendimento ao consumidor e fabricação.
DevOps é um método para criar e entregar um bom software, combinando desenvolvimento e operação de software com a intenção de fundir operações e funções de desenvolvimento. O SRE tende a ser conduzido mais pelo lado do desenvolvimento do que pelo lado operacional da DevOps.
Saiba mais sobre DevOps
Entregue operações modernas para as equipes de DevOps e SRE
Os contêineres do Linux podem fornecer a tecnologia necessária para um desenvolvimento nativo em nuvem. Os contêineres dão suporte à unificação do ambiente para integração, automação, desenvolvimento e entrega. O Kubernetes pode automatizar os contêineres necessários do Linux.
Não há um conjunto de ferramentas uniforme e único para SRE. Mas é fundamental criar funções de SRE dentro de uma empresa associadas à automação para escalabilidade e capacidade de repetição.
A ServiceNow oferece maior valor ao unir o trabalho entre várias equipes, registrar microsserviços, correlacionar dados observáveis, fornecer métricas de confiabilidade ao alcance dos dedos, automatizar mudanças e prever falhas, tudo isso mantendo intactas as ferramentas existentes.
Crie seu próximo plano de transformação de SRE com a ServiceNow.