DevOps é uma cultura; é uma forma de visualizar o ciclo de vida do desenvolvimento de software como uma conversa contínua entre as equipes. O DevOps só funciona se as equipes puderem quebrar os silos e colaborar, mantendo a integridade de sua função específica.
DevOps é uma filosofia que usa um conjunto de práticas combinadas para integrar o desenvolvimento de software e as operações de TI. O DevOps complementa o desenvolvimento ágil de software, promovendo um ciclo de feedback contínuo e dividindo o trabalho e o risco associado.
Um dos melhores aspectos do DevOps é que você normalmente automatiza toda a construção de ambientes desde o início. Você constrói o aplicativo, constrói o host no qual ele ficará e o implanta de forma consistente no host.
Agora, vamos investigar as funções específicas que permitem a automação. A natureza integrada do DevOps é melhor visualizada como um loop contínuo. Cada atividade dentro do loop é mapeada para um princípio correspondente. Cada etapa ou função fundamental combina-se com as outras atraindo praticantes entre as equipes, desde a codificação e teste até a liberação e implantação e, finalmente, a operação e monitoramento, com o ciclo se repetindo infinitamente.
Fundamentos Simplificados de DevOps
Integração Contínua
Começando no canto superior esquerdo do loop DevOps está a Integração Contínua como parte do “Código” e parcialmente a função “Construir”. Aqui, estamos pegando as partes minimamente complexas do sistema e garantindo que todas elas ainda sejam construídas e aprovadas em outros testes para garantir que todo o conjunto funcione de acordo com a especificação. Muitos desenvolvedores podem escrever código para diferentes aplicativos ou APIs no mesmo sistema, e todo esse código deve “integrar-se” preservando a integridade básica de toda a coleção de componentes. Se algum componente falhar em um teste, sabemos que o sistema provavelmente falhará e não devemos implantá-lo.
Implantação Contínua
A Implantação Contínua (às vezes chamada de Entrega Contínua) pega a saída da etapa de Integração Contínua e dá a ela um lugar para morar (essas duas etapas geralmente são agrupadas e chamadas de CI/CD). Esta etapa implementa ambientes consistentes que fornecem um ambiente de execução ao vivo para o sistema funcional. O ambiente pode ser referenciado como o código que foi escrito para implantá-lo e depurado como um sistema.
Teste/validação contínua
Esta etapa da prática DevOps envolve testar o código para determinar como ele se comportará em um ambiente de produção. Aqui, os testes podem ser medidos em relação a um conjunto de métricas objetivas determinadas antecipadamente por todas as equipes envolvidas no esforço de DevOps. Essas métricas qualificam que o aplicativo está pronto para os usuários finais. Teste de carga, teste funcional, teste de regressão e teste de segurança são exemplos de testes que validam um aplicativo como pronto para produção. Este é o último local para abordar problemas de desempenho ou segurança
Monitoramento Contínuo
As atividades associadas ao monitoramento geralmente são lideradas pelo lado “Ops” do DevOps colaborativo. Rede, sistemas, aplicativos, ameaças a qualquer parte da superfície de ataque de uma organização e vulnerabilidades que surgem ao longo do tempo são monitorados em aplicativos e APIs em produção. O monitoramento destina-se a fornecer feedback que pode ser acionável e resultar na priorização do desenvolvimento desse feedback – a integração do feedback nos leva do lado certo do loop para o planejamento, codificação e construção.
O que é DevSecOps?
A base de uma prática bem-sucedida de DevOps é a automação; é por isso que adotar o DevSecOps (segurança automatizada nos fluxos de trabalho) faz tanto sentido. O DevSecOps envolve cada etapa do processo DevOps e adiciona a segurança. A segurança é aplicada a cada etapa do ciclo de vida de desenvolvimento de software (SDLC), desde a codificação e construção até a operação e monitoramento da conformidade com a política – bases de código, aplicativos e APIs são projetados, construídos e implantados com a segurança em mente. A integração da segurança em cada função do DevOps cria efetivamente o DevSecOps – uma camada abrangente que cobre todas as atividades ao longo do SDLC.
Os benefícios do DevSecOps
Os benefícios do DevSecOps incluem a sobreposição de segurança em cada etapa, para que não se torne uma reflexão tardia isolada e apenas o último “obstáculo” a ser superado antes que um aplicativo seja implantado. Em termos práticos, isso significa aplicar segurança ativamente em cada etapa do SDLC – ensinando os desenvolvedores a identificar falhas de código antecipadamente, ajudando-os a escolher bibliotecas de terceiros que não introduzam vulnerabilidades, definindo o significado de “concluído” e continuando a mudar conforme o monitoramento das superfícies de ataque.
Por que integrar testes de segurança de forma tão rígida ao processo DevOps? Ele permite que as equipes capturem potenciais alvos de ataque com antecedência, onde são muito menos dispendiosos e cansativos para consertar. Por exemplo, uma pesquisa mostrou que profissionais que participaram de ao menos uma aula de segurança para desenvolvedores levaram 110 dias para sanar 50% das falhas – enquanto os que não tiveram esse treinamento levaram 170 dias. Isso é uma diferença de dois meses!
O problema é que a implementação bem-sucedida do DevSecOps é um dos problemas mais difíceis de resolver devido a uma variedade de fatores. A adoção cultural é um dos maiores bloqueadores para mudar para a esquerda e otimizar a avaliação e teste de mudança “direita” da superfície de ataque.
Deixe um comentário