DevOps mudou a forma como lidamos e pensamos durante o processo de desenvolvimento. Como resultado, melhorar o desempenho e agilidade se tornou padrão para as atuais necessidades do mercado. No entanto, conforme o processo evolui, a segurança na implantação virou uma preocupação para evitar falhas na produção.

Confira a seguir como a prática Shift left tornou-se popular na Engenharia de Software e DevOps para prevenir esse problema. Boa leitura!

O que é Shift left?

É uma estratégia no desenvolvimento de software que pretende melhorar a qualidade da entrega e a prevenção de problemas o mais cedo possível durante o ciclo de desenvolvimento.

Fica mais compreensível visualizando a figura 1 que visa aplicar o controle de segurança. Ao lado esquerdo, é colocado em prática o Shift left, onde “Dev” constítui-se pelas etapas de planejamento, codificação, construção e testes.

A prática foi adotada no início em testes como Test-Driven Development (TDD) e Behavior-Driven Development (BDD), porém está sendo aplicado em diferentes áreas.As plataformas de CI/CD (Continuous Integration, Continuous Delivery) permitem que as equipes implantem e utilizem ferramentas para fazer verificações e testes em cada etapa do fluxo.

Figura 1

Etapas que podem ser aplicadas

Shift left gera confusão quando há um entendimento que só devem ser implantadas tarefas no início do ciclo. Entretanto, pode ser introduzido em todo processo onde se faz necessário e com antecedência.  

Isso requer mudança na cultura de desenvolvimento, visando ajustar com o fluxo de trabalho dos desenvolvedores para que mantenham a agilidade e recebam as informações necessárias para os ajustes e correções de segurança antes da etapa final, como demonstra a figura 2.

Como shift left atua no teste de softwares e sistemas? Teste em cada etapa do desenvolvimento.
Figura 2.

De forma simples, faz uso entre as etapas para verificar vulnerabilidades, testes de unidade, testes de integração, verificações de licenças, verificações de dependências e verificações de imagem, entre outros. A fim de garantir que problemas sejam identificados antes de avançar para próxima etapa e diminuindo a carga de verificações manuais, essa prática vem sendo cada vez mais utilizada.

Métodos de Shift left

Shift left é composta por quatro metodologias que têm como objetivo sanar problemas diferentes etapas durante o ciclo de desenvolvimento. São elas:

  • Incremental: voltados para sistemas grandes e complexos que têm integração com hardware específico. Torna possível garantir que cada segmento seja validado  antes que seja incrementado o próximo;
  • Tradicional: para validações mais leves e sistemas menos complexos, tem como finalidade validar etapas de teste de unidade e testes de integração;
  • Agile/DevOps: essa metodologia se baseia nos testes feitos em sprints, sendo restritos ao teste de desenvolvimento e não operacional;
  • Model-based: diferentemente das outras metodologias que os testes se concentram durante o desenvolvimento, nessa são validados requisitos, arquitetura e design.

Benefícios

  • Verificação de código fonte para encontrar falhas de segurança;
  • Linguagens e não somente teste.

Construir uma segurança maior durante o processo é um dos pontos que auxiliam na otimização do tempo gasto pela equipe em encontrar problemas “básicos” do cotidiano.

Problemas esses que podem causar estresse no usuário final e suas consequências devido a falhas durante o ciclo de desenvolvimento, assim como diminui a carga da equipe de suporte ganhando tempo para poder exercer outras atividades.

CI/CD mais lentos?

O Shift left é popular na comunidade de testes de software com objetivo de encontrar problemas mais cedo com custo de correção menor. Em DevOps, está sendo cada vez mais adotado. Todavia, o que preocupa em sua maior parte é tornar o fluxo de desenvolvimento lento e burocrático para lançamento de uma nova funcionalidade em produção.

Mas as ferramentas são feitas pensando justamente no desenvolvimento ágil. Poucos minutos acrescentados à sua pipeline podem trazer ganhos expressivos à segurança, garantindo a qualidade do que será entregue ao usuário final e evitando problemas na sua aplicação.

Pensando nisso, nosso serviço de DevOps inclui também os processos de desenvolvimento e deploy customizado para manter um ambiente ágil e seguro. Saiba mais!