Menu English version
Blog Infra como Código

DevOps e Segurança: como encontrar um equilíbrio entre os times?

Entenda como é possível harmonizar o trabalho entre as duas equipes para uma produção de código mais ágil e segura

Os profissionais do DevOps se consideram ágeis, à frente da realidade e capazes de oferecer novos programas de forma rápida e eficiente. Os processos tradicionais de segurança, no entanto, priorizam ser minuciosos em relação à agilidade e são frequentemente abordados nas últimas etapas de implementação. Por isso, essas duas abordagens podem se tornar inimigas durante o processo de desenvolvimento de software.

No entanto, não é preciso ter um embate entre equipes: com mais brechas de segurança descobertas todas as semanas, é de vital importância que a segurança e o DevOps trabalhem juntos para integrar e agilizar a entrega, atingindo a velocidade sem comprometer a segurança das aplicações.

 

Diferentes pontos de vista: DevOps x Segurança

A visão geral é que o DevOps é uma abordagem rápida para desenvolvimento e implementação, permitindo rapidamente que as empresas introduzam novos códigos e programas disponíveis para o uso de toda a organização. No entanto, a segurança precisa ser mais cuidadosa, assegurando que todos os aspectos necessários para a proteção tenham sido considerados e avaliados.

Ambas as abordagens são válidas e vitais para o bom funcionamento de uma organização. No entanto, os dois grupos que trabalham nessas áreas não são tradicionalmente integrados, o que pode levar a incompreensão e até ao confronto direto entre equipes. Embora o time de DevOps possa ser conhecido por perpetuar o uso de práticas de segurança ruins, é inapropriado pensar nessa questão como uma rivalidade.

Na verdade, muitos profissionais em uma equipe DevOps são mais focados em segurança do que uma equipe de desenvolvedores tradicional. Dada a orientação direta sobre parâmetros de segurança e prioridades, eles podem trabalhar juntos com as equipes especializadas muito bem. Com um alinhamento adequado de objetivos e expectativas, as equipes podem identificar dores e objetivos compartilhados e desenvolver uma prática de trabalho boa para os dois lados.

Tanto o time de DevOps quanto o de segurança possui profissionais com um profundo nível de experiência e habilidades técnicas. Por isso, desenvolver a compreensão mútua é fundamental para gerar bons resultados para toda a organização. Ambas as equipes têm recursos que se complementam e podem trabalhar juntas de maneira efetiva.  O objetivo deve ser realizar mudanças nos processos para garantir a segurança em todas as etapas, orientando as equipes DevOps durante o desenvolvimento, já que elas estão envolvidas desde o início no mesmo projeto.

 

Automação

Ao descobrir quais componentes dos processos de segurança podem ser automatizados, as empresas asseguram que essas tarefas sejam realizadas com antecedência, frequência e consistência. A automação é importante, pois libera tempo de trabalho da equipe e garante a regularidade de determinadas atividades. No entanto, para automatizar verificações de segurança, as equipes já devem entender ou ter estabelecido onde estão as áreas de vulnerabilidade e o que deverá ser monitorado.

A automação pode ser benéfica, por exemplo, para realizar análises de código e encontrar padrões que levem a vulnerabilidades. Porém, é essencial incluir também o trabalho humano: é necessário um especialista em segurança para examinar, prever e observar os requisitos que serão automatizados. A prática de revisão de código precisa ser conduzida pela equipe de segurança, que poderá procurar mudanças e vulnerabilidades no software. Além disso, é preciso assegurar que tanto a equipe de Segurança quando a de DevOps estejam envolvidas em todo o processo, para que o código não esteja no início dos testes enquanto o outro time já está pronto para realizar a implementação.

 

Criação de práticas mais inteligentes

A decisão mais estratégica que uma organização pode ter é integrar as equipes de DevOps e Segurança para um trabalho mais eficiente. É preciso considerar dois aspectos neste processo: colaboração e comunicação. Para isso, garanta a colaboração entre equipes, incluindo a segurança desde o início. Em muitos casos, estes times atuam apenas no final do ciclo de desenvolvimento de software, enquanto deveriam estar atuando desde o início da criação do código. Se isso for feito, não haverão surpresas desagradáveis ​​para ambos os lados.

A comunicação, por sua vez, é um ponto tão óbvio – mas que precisa ser realizado com urgência. Os desenvolvedores devem compartilhar atualizações com a equipe de segurança quando uma parte sensível do código é alterada ou atualizada, assim é possível identificar a localização das prováveis vulnerabilidades. Da mesma forma, as equipes de segurança precisam sinalizar quais são as suas prioridades e mudanças nas ameaças existentes, para garantir que o time de DevOps saiba exatamente o que precisa ser desenvolvido.

 

Uso de métricas

Não é necessário medir o sucesso individual de cada equipe, mas sim garantir que ambos estejam trabalhando de forma eficaz. Não há necessidade de “reinventar a roda”, por isso, use as métricas existentes: taxa de erros, o tempo médio para a falha e as estatísticas de vulnerabilidades encontradas na análise do código. Integre a segurança ao processo de desenvolvimento e assegure-se de que os mesmos padrões e objetivos sejam aplicados a ambos os times.

 

Trabalho em equipe

Como tudo na disseminação da cultura DevOps, não existe uma chave secreta que vá determinar o sucesso imediato de um projeto. A implementação adequada requer uma mudança nas pessoas, nos processos e nas ferramentas para criar um ambiente de trabalho mais simples e colaborativo. O importante é manter pessoas com talento na organização e considerar ambos os lados deste embate entre o DevOps e a segurança.

O processo de imposição não obterá resultados. A melhor prática envolve a colaboração e a comunicação com ambas as equipes para que todos estejam cientes do projeto e buscando o mesmo objetivo. Finalmente, as ferramentas devem ser eficientes e confiáveis para fazer o processo funcionar para todos. Ademais, realize a automação sempre que possível para reduzir o trabalho manual da equipe e ter métricas precisas sobre os resultados produzidos. 

 

Conheça o CloudBees Jenkins Enterprise

O CloudBees Jenkins trabalha com a entrega contínua para a era DevOps. A versão Enterprise Edition apresenta funcionalidades corporativas para segurança, escalabilidade, capacidade de gerenciamento e resiliência. A Instruct é parceira oficial da CloudBees no Brasil para a realização de treinamentos e de consultorias. Para saber mais, clique aqui.

Post produzido em parceria com a CloudBees.