O pêndulo DevOps: agilidade vs. Ao controle
Por: Cindy Blake em 2 de agosto de 2023
Gerenciar mudanças em ativos de nuvem é uma dor universal sentida por muitos líderes de engenharia atualmente, apesar de todos os avanços em ferramentas e práticas como GitOps. Isto porque, na realidade, é simplesmente impossível ter sempre tudo completamente trancado – não vivemos numa utopia com zero incidentes. Se sua organização de engenharia impede que quaisquer alterações sejam feitas por meio do console de nuvem ou em sua infraestrutura como código (IaC) sem cumprir práticas rígidas de GitOps ou processos de gerenciamento de mudanças via CI/CD, então é provável que você tenha desenvolvedores muito frustrados - desenvolvedores que não conseguem solucionar problemas ou depurar em tempo real e que têm pouco controle em um incidente do mundo real.
A engenharia, como tudo na vida, tem tudo a ver com equilíbrio.
A pandemia criou uma mentalidade e uma prática totalmente novas para o gerenciamento de engenharia e operações distribuídas e de alta velocidade. Da noite para o dia, as empresas que não foram construídas para formas remotas de trabalho tiveram que continuar as suas operações de uma forma global, distribuída e assíncrona com a qual não estavam completamente familiarizadas. Isso exigiu uma nova maneira de pensar sobre a entrega de software — e acelerou as práticas de DevOps que dão suporte a essa entrega. A infraestrutura de autoatendimento removeu barreiras para os desenvolvedores garantirem desempenho e velocidade contínuos.
Ao mesmo tempo, a sua nuvem não pode ser o oeste selvagem, com todos criando infraestruturas sob medida. Torna-se impossível gerenciar e configurações incorretas podem ser arriscadas. As proteções e a automação de políticas tornaram-se um tema quente. Hoje, com os mercados tecnológicos deprimidos e os custos da nuvem a aumentar, parece haver uma tendência crescente para bloquear novamente as coisas, mesmo correndo o risco de frustrar os programadores.
Isso levanta a questão: como você pode obter uma infraestrutura livre para seus desenvolvedores e, ao mesmo tempo, seguir políticas e práticas recomendadas de conformidade, riscos e custos? Existe uma maneira de encontrar o equilíbrio.
Como muitos aspectos da segurança, aprendemos que quando as restrições e barreiras são muito altas, os usuários acabam encontrando maneiras de contorná-las. Isso também se aplica às operações. Embora às vezes possa parecer mais fácil bloquear tudo do que projetar uma maneira melhor e mais equilibrada de permitir que os desenvolvedores ajam rapidamente, eventualmente essa abordagem sai pela culatra. Esta é exatamente a mesma evolução pela qual o setor de aplicativos e segurança nativa da nuvem está passando atualmente. Todas as proteções e controles aplicados criaram muitos atritos nos processos de desenvolvimento e os desenvolvedores acabaram por contorná-los.
CloudOps pode aprender muito com a disrupção pela qual o setor de segurança está passando hoje. Da mesma forma que a segurança pontual se tornou completamente inútil, alertas que não sejam em tempo real ou alertas eventuais sobre desvios de infraestrutura simplesmente não serão suficientes no gerenciamento de uma nuvem efêmera. O que é realmente necessário é o mesmo tipo de varredura contínua e em tempo real de ativos de nuvem e IaC, semelhante ao que aplicamos aos nossos sistemas por meio de monitoramento e observabilidade. Essas soluções se tornaram a espinha dorsal essencial do nosso negócio para garantir operações contínuas e disponibilidade de serviços em nuvem.
À medida que adotamos a IaC e os benefícios que ela traz, tudo como código proporciona maior agilidade e visibilidade, permitindo que você remedie automaticamente sem bloquear tudo. Como diz o DevOps, “falhe adiante e falhe rápido”. Em vez de focar em nunca cometer um erro, concentre-se em como corrigi-lo imediatamente.
Ao fornecer uma comparação contínua dos ativos reais da nuvem com seu estado desejado por meio de IaC e GitOps, é possível revelar desvios de configuração e violações de políticas imediatamente, assim como qualquer outro tipo de violação ou falha grave do sistema. Falhas e incidentes são inevitáveis. Não é realista e até perigoso construir sistemas com um design subjacente inerente que impede que você altere algo no console da nuvem às 2h durante uma interrupção.
