O DevSecOps é uma cultura e prática organizacional de engenharia de software que visa unificar o desenvolvimento de software (Dev), a segurança (Sec) e as operações (Ops), de modo que uma ideia de negócio seja de fato, materializada em um produto ou serviço, promovendo a melhor experiência para o usuário consumidor.
A principal característica do DevSecOps é melhorar os resultados de negócio e o valor entregue de um software, e isto somente se faz automatizando, monitorando e aplicando a segurança em todas as fases do ciclo de vida do mesmo.
A prática do DevSecOps fornece melhorias evidentes na qualidade e na segurança ao longo do ciclo de vida de uma aplicação tradicional. Algumas métricas importantes que podemos extrair que comprovam isto são:
- Tempo médio para produção: o tempo médionecessáriodesde a fase de concepção de um novo recurso de software até sua execução em produção.
- Velocidade de implantação: com que rapidez uma nova versão do aplicativo pode ser implantada no ambiente de produção.
- Frequência de implantação: com que frequência uma nova versão pode ser implantada no ambiente de produção.
- Taxa de falhas na produção: com quefreqüênciatemos falhas de software implantados em produção.
- Tempo médio para recuperação: quanto tempo leva para que os aplicativos no estágio de produção se recuperem da falha. Além disso, a práticaaindapermite:
- Caracterização, monitoramento e mitigação de riscos totalmente automatizados ao longo do ciclo de vida do aplicativo.
- Número de atualizações e correções de software necessários para tratamento de vulnerabilidades de segurança e fraquezas de código.
No DevSecOps, testes e segurança são tratados de forma proativa, o que conceitualmente chamamos de “shift-left security”, por meio de testes automatizados de código Estático (SAST), Dinâmico (DAST) e Integrado (IAST), adicionados aos testes de componentes como imagens de contâiners e os já tradicionais de qualidade de código, garantindo um importante diferenciador do processo, pois recursos funcionais e de segurança são testados e construídos simultaneamente.
Neste contexto, o sucesso de uma execução de abordagem DevSecOps segue alguns princípios-chave:
- Remover gargalos (incluindo humanos) e ações manuais.
- Automatizar o máximo possível das atividades de desenvolvimento e implantação.
- Adotar ferramentas comuns, desde o planejamento e requisitos até a implantação e operações.
- Aproveitar os princípios de software ágil e favorecer pequenas atualizações incrementais e frequentes em relação a versões maiores e mais esporádicas.
- Aplicar os conjuntos de habilidades multifuncionais de Desenvolvimento, Cibersegurança e Operações ao longo do ciclo de vida do software, adotando uma abordagem de monitoramento contínuo em paralelo, ao invés de esperar para aplicar cada conjunto de habilidades em sequência.
- Implantar infraestrutura imutável, com adoção massiva de contâiners para beneficiar uma arquitetura de software em microserviços.
A adoção do DevSecOps em todas as fases em um ciclo de vida de software, tem o objetivo de reduzir ao máximo o esforço necessário de correção, testando e corrigindo as falhas encontradas na ordem em que o código é produzido.
Esta abordagem gera economia de tempo, evitando o retrabalho de toda a cadeia do ciclo de desenvolvimento e produção, além de trazer maior tranquilidade ao negócio, com um software seguro e eficiente aos seus clientes.