Aprendizado e descoberta 3min de Leitura - 30 de setembro de 2019

DevSecOps: o equilíbrio perfeito entre agilidade e segurança

Mulher apontando para tela de computador orientando o homem ao seu lado sobre DevSecOps

This post is also available in: Português English

Criar um software e mantê-lo atualizado é um processo constante e complexo, que demanda uma intensa integração entre as equipes de Desenvolvimento (Dev) e de Operação (Ops). Esse método em que ambas atuam em conjunto é chamado de DevOps – termo que surgiu há dez anos com os engenheiros de software John Allspaw e Paul Hammond ao apresentarem uma palestra sobre suas conquistas no Flickr com a maior aproximação entre a equipe de desenvolvimento e de operações. Entretanto, com as crescentes demandas por maior segurança nos sistemas de informação, o termo foi atualizado para DevSecOps, com a inclusão de um time especializado em segurança nos processos.

Nesse contexto, o DevSecOps considera a segurança da aplicação e da infraestrutura desde o início da fase de desenvolvimento. Isso leva à automatização de barreiras de segurança que trazem consistência às entregas, sem prejudicar a velocidade de trabalho de DevOps. Portanto, é preciso selecionar as ferramentas corretas para integrar a segurança de maneira contínua e ágil. Contudo, deve-se ter em mente, que a inclusão da segurança no DevOps requer a construção de mudanças culturais nas empresas, para que o resultado atenda as expectativas dos times envolvidos no fase de construção e continuidade dos produtos.

A evolução no jeito de fazer software

Para entender com maior clareza sobre a conexão de equipes, que é a base do DevSecOps, é necessário contar um pouco da história da evolução da metodologia de produção de software. Em décadas passadas, o processo que imperava era conhecido como cascata. Nele, as etapas seguiam a seguinte sequência: requisitos de sistema, requisitos de software, análise, design de código, codificação, testes e, por fim, operação.

O modelo funcionava bem, mas trazia pontos negativos. Um deles é o fato de não haver feedback entre as etapas e as equipes responsáveis. Outra falha é que os testes ficavam no final do ciclo. Aí, eventuais ajustes necessários poderiam impactar as etapas anteriores, situação que tende a piorar prazos e orçamentos. Com a necessidade de ciclos de entrega cada vez menores, onde a exigência por qualidade sempre aumentava, logo a metodologia em cascata foi se tornando ultrapassada, incompatível com um mundo que depende a cada dia mais e mais da tecnologia – numa frequência crescente.

Por essas razões, tornou-se primordial o desenvolvimento de metodologias ágeis para conduzir projetos de software. Tais metodologias precisam de práticas e ferramentas totalmente diferentes das que estavam em uso até então, reordenando profundamente os papéis de desenvolvimento e de operação – bem como a sua própria essência.

Uma alternativa chamada DevOps

Nas metodologias mais antigas, ficava de um lado o time de desenvolvimento buscando autonomia e atuando com ciclos de release menores a cada dia; do outro lado, estava a equipe de operações, com um ritmo completamente diferente, em meio a processos que exigem mais controle e estabilidade. Sendo duas áreas tão distintas, surgiam conflitos cujas existências eram nocivas aos produtos e às empresas como um todo.

Começaram a existir, então, movimentos que estimulavam as duas áreas a trabalharem juntas, de maneira colaborativa e com objetivos comuns. Assim, buscariam ferramentas, processos e práticas que tivessem o objetivo de otimizar o trabalho, levando a resultados mais satisfatórios. Eram os embriões do DevOps.

Com o DevOps, o time de desenvolvimento passou a ter uma ideia melhor a respeito dos processos, desafios e problemas enfrentados pela equipe de operações. E o contrário também ocorre. Os objetivos, então, passam a ser a procura por maneiras de simplificar os procedimentos, com o intuito de tornar tudo mais ágil. Dessa maneira, quesitos como integração e entrega contínua, monitoramento, logs e escalabilidade recebem maior ênfase e o tratamento mais eficaz possível.

Tudo resolvido então? Não mesmo. Havia uma outra área ainda não envolvida, cuja importância cresceu exponencialmente nos últimos anos, com seus próprios valores, práticas e processos: a área de segurança da informação. Temos então o surgimento do conceito DevSecOps.

A segurança fazendo parte do processo de desenvolvimento

Para integrar a segurança da informação nesse contexto, deve-se determinar a tolerância a riscos e conduzir uma análise acerca de riscos e benefícios. É preciso definir, por exemplo, qual a quantidade de controles de segurança para determinadas aplicações. Nesse contexto, automatizar tarefas repetitivas é fundamental na DevSecOps, pois as verificações de segurança manuais podem ser demoradas e minar a eficácia.

A dica, então, é manter os ciclos de desenvolvimento curtos e frequentes, bem como integrar as medidas de segurança com a menor quantidade possível de interrupção das operações. Outra medida é acompanhar o ritmo das tecnologias inovadoras e promover a estreita colaboração entre as equipes – principalmente aquelas que trabalham isoladas. Pela complexidade da iniciativa, a adoção do DevSecOps pode ser acompanhada por empresas especializadas em segurança da informação, como a OSTEC. Fale conosco e entenda quais diferenciais podemos trazer para o seu negócio!

This post is also available in: Português English