Se você está pensando em mudar para uma metodologia DevOps ou procurando melhorar suas operações atuais de DevOps, você pode considerar a Engenharia de Confiabilidade do Site.
A transformação de uma metodologia tradicional de desenvolvimento de software para DevOps pode ser um caminho complicado. Você não está apenas fazendo uma mudança drástica na forma como suas equipes desenvolvem e implantam software, mas também está mudando toda a cultura das operações de negócios. Se você não gastar muito tempo planejando essa mudança, as coisas podem dar errado.
Ou talvez você já tenha implementado o DevOps e esteja descobrindo que não está indo tão bem quanto você imaginava. Suas equipes não estão colaborando, a automação não está funcionando e os prazos estão sendo perdidos.
Tanta coisa pode acontecer quando há tantas peças móveis.
Felizmente, existem maneiras de fazer mudanças positivas em seus métodos de DevOps que podem não apenas aliviar o estresse esmagador que pode surgir com uma mudança tão dramática, mas também ajudar a tornar o DevOps muito mais eficaz.
Uma opção que pode afetar positivamente o DevOps é implementar a Engenharia de Confiabilidade do Site. Pode parecer um exagero, mas tenha paciência conosco e você verá como isso pode se aplicar.
O que é engenharia de confiabilidade do site?
Site Reliability Engineering (SRE) é um conjunto de princípios que aplica vários aspectos da engenharia de software às operações tradicionais de TI. O SRE visa criar sistemas de software confiáveis e escaláveis e, embora não seja uma comparação 1:1 com o DevOps, muitos dos princípios se aplicam.
Com o SRE, existem 7 pilares orientadores, cada um dos quais pode ser aplicado diretamente ao DevOps para um fluxo de trabalho muito melhorado.
Abraçando o risco
Nenhum serviço é 100% garantido e quase todos os consumidores e consumidores entendem isso. Simplificando, o risco é inerente ao desenvolvimento de software e aos negócios em geral. Quando uma empresa evita o risco, ela também evita as recompensas que acompanham o risco. Ao abraçar o risco, você aumenta muito as chances de que seus desenvolvedores e operações de TI possam criar algo que irá superar em muito o desempenho ou vender mais do que você já implantou ou lançou anteriormente.
No que diz respeito ao DevOps, o risco está implícito e, se você se recusar a adotá-lo, descobrirá que o DevOps é muito mais desafiador do que deveria ser. Quando você (e suas equipes) se expõem ao risco, descobrirão que a metodologia DevOps não é apenas mais fácil de empregar, mas também mais fácil de crescer e melhorar. Uma coisa a ter em mente, no entanto, é que quando você aplica esse princípio ao DevOps, é imperativo que suas equipes também entendam que junto com o risco, também há segurança e proteção, e elas não serão punidas quando o risco der errado.
Objetivos de nível de serviço
É importante ter objetivos. Mas com o SRE, também é crucial empregar o que chamamos de Objetivos de Nível de Serviço (SLO). Os SLOs estão diretamente ligados à satisfação do cliente e devem ser uma chave importante para qualquer negócio. Quando você considera a satisfação do cliente e a aplica aos seus objetivos, isso pode mudar radicalmente a forma como você faz as coisas.
Lembre-se de que o cliente é um componente central do seu negócio e, sem ele, você teria dificuldade para sobreviver. O velho ditado “o cliente tem sempre razão” agora pode ser visto mais na linha de “a satisfação do cliente impulsiona a inovação”.
Você deve estar sempre pensando em como pode melhorar a satisfação do cliente, e isso se aplica diretamente ao DevOps porque o DevOps já deve ser um componente-chave para o crescimento do seu negócio para atender o cliente. Você deseja ser capaz de escalar para atender à demanda, implementar recursos para melhorar a experiência do cliente e ser capaz de resolver problemas que afetam diretamente os clientes com rapidez.
Eliminando o Trabalho
Este princípio deve ser bastante óbvio quanto à forma como se aplica ao DevOps. Eliminar o trabalho significa eliminar o trabalho repetitivo que pode paralisar as equipes. Quando seus engenheiros precisam lidar com tarefas simples e repetitivas, eles são impedidos de fazer o que é realmente importante: focar no desenvolvimento e nas operações.
O DevOps está perfeitamente preparado para eliminar o trabalho árduo com a adição de automação. Com a automação eliminando essas tarefas repetitivas, o DevOps deverá funcionar com mais facilidade. Seus engenheiros serão então capazes não apenas de manter tudo funcionando conforme o esperado, mas também de desenvolver novos recursos para software e até mesmo de melhorar o ciclo de vida de desenvolvimento de software que ajuda a impulsionar sua empresa.
Monitoramento
Se você não estiver monitorando de perto seu fluxo de trabalho DevOps, estará perdendo insights importantes sobre como tudo funciona e como as coisas poderiam ser melhoradas. O monitoramento do DevOps (com uma homenagem ao SRE) envolve a visualização cuidadosa dos dados que seus sistemas produzem e a tomada de decisões importantes com base nessas informações.
As informações que você coleta podem não apenas ajudar a melhorar todo o fluxo de trabalho do DevOps, mas também podem ajudar muito a economizar dinheiro para sua empresa e até mesmo tornar o trabalho de todos consideravelmente mais fácil.
As quatro informações mais importantes que você deseja monitorar são latência, padrões de tráfego, erros e saturação do serviço.
Este princípio vai direto ao cerne do DevOps.
Engenharia de Liberação
Este é outro princípio que deveria ser óbvio na forma como é aplicado ao DevOps. A engenharia de lançamento trata da implantação de software de forma consistente, estável e repetível.
Direto ao ponto, a engenharia de liberação deve levar em consideração estes elementos:
- Gerenciamento de configuração – desenvolvimento de um padrão pelo qual as versões são configuradas.
- Documentação do processo – a criação de documentação para cada versão.
- Automação – a automação de tarefas rotineiras e repetíveis.
- Implantação rápida – itere com rapidez e frequência, em vez de usar o método tradicional de implantação de software.
- Testes – devem ser contínuos e confiáveis.
Automação
Outro princípio absolutamente fundamental para DevOps é a automação. No mundo do DevOps, existem muitas áreas onde a automação pode ser empregada, desde compilações até lançamentos.
À medida que a automação torna seu fluxo de trabalho DevOps mais confiável, ela também elimina muitas tarefas rotineiras que são tradicionalmente atribuídas a desenvolvedores e operações de TI. Quanto mais essas tarefas puderem ser automatizadas, mais positivamente elas afetarão sua metodologia DevOps.
Simplicidade
Embora DevOps seja um método muito complicado e desafiador de implantação de software, qualquer chance que você tiver de simplificar as coisas ajudará a melhorar todo o fluxo de trabalho.
Em vez de projetar e desenvolver sistemas excessivamente complexos, você deve colocar a simplicidade no centro de tudo. Lembre-se disto: quando sistemas complexos quebram, as correções são quase igualmente complicadas. Pelo contrário, quando um sistema simples quebra, a correção geralmente é rápida e fácil.
Se você puder reimaginar seu fluxo de trabalho DevOps com a simplicidade em mente, você deverá fazê-lo. Isso não significa que você tenha que simplificar tudo a ponto de não atingir seus objetivos. O que isso significa, entretanto, é que você projeta e desenvolve com intenção e propósito. Se você achar que algum componente de seu fluxo de trabalho DevOps é excessivamente complexo, encarregue suas equipes de simplificar essa peça de forma que, se ela quebrar, a correção seja óbvia e rápida.
Conclusão
DevOps e engenharia de confiabilidade de sites podem andar de mãos dadas. Embora essas duas ideias possam ser vistas como aplicáveis a aspectos muito diferentes do seu negócio, a verdade é que elas estão muito mais próximas do que você pensa.
Siga os 7 princípios do SRE com sua metodologia DevOps e você verá que as coisas correrão muito mais tranquilamente do que você pode imaginar.
Se você gostou disso, não deixe de conferir nossos outros artigos sobre DevOps.
- Como acelerar o desenvolvimento de software adotando a cultura DevOps
- A onda de MLOps (aprendizado de máquina e Devops)
- As 7 melhores ferramentas de integração contínua para 2023
- Compreendendo o hype do DevOps
- O que é DevSecOps e por que você precisa dele?