O que é DevOps?
DevOps são práticas de entrega contínua com base em automação de processos que geralmente são executados um a um por desenvolvedores e/ou SysAdmin. Por isso o nome DevOps (Desenvolvedor Operador). Confesso que ao presenciar alguns profissionais falando sobre o tema eu logo fiquei assustado. Como assim desenvolvedor que faz papel de SysAdmin? Logo achei que era um desenvolvedor com super poderes e iria colocar tudo a perder metendo a mão na infraestrutura. Mas como sempre, a experiência faz você desfazer alguns pré-conceitos e foi o que aconteceu comigo.
Com o tempo ficou claro que a adoção da prática por especialistas em infraestrutura e desenvolvimento é um processo altamente benéfico e com resultados impressionantes.
Quais processos geralmente são automatizados?
As práticas de DevOps agregam automação as disciplinas de engenharia e qualidade de software e práticas de infraestrutura como as práticas a seguir:
- Integração Contínua: defina um conjunto de requisitos como checagem de padrões, testes unitários entre outros e tenha o feedback instantâneo se o código gerado está íntegro e atendeu todos os critérios estabelecidos.
- Deploy Contínuo: através de um servidor de CI (Continuous Integration) como Jenkins você pode entregar novos releases de software em produção a partir de eventos agendados pós processo de Integração Contínua;
- Provisionamento: já imaginou subir uma série de servidores completamente configurados automaticamente a partir de um evento? É isso que faz o provisionamento através de scripts denominados receitas em soluções como Puppet e Chef;
- Gestão de Configuração: com as mesmas receitas usadas em provisionamento é possível administrar configurações de todo o seu parque de servidores e serviços. Garantindo uma padronização de configurações e monitorando todas as configurações ativas no ambiente. Esse processo é também conhecido como Security Configuration Management (SCM).
As possibilidades de automação são inúmeras e irão colaborar e muito no processo de gestão do ambiente e liberação de releases com agilidade e qualidade. O Conviso Armature é uma solução de Security Configuration Management (SCM) e se integra completamente as práticas de DevOps.
Onde se encaixa a segurança de aplicações?
As práticas de segurança de aplicações podem ser inseridas dentro de todas as práticas de automação mencionadas:
- Integração Contínua: ferramentas SAST (Static Application Security Testing) podem ser integradas para executar análise de vulnerabilidades no código fonte;
- Deploy Contínuo: ferramentas DAST (Dynamic Application Security Testing) podem ser integradas para executar análises dinâmicas de vulnerabilidades em aplicações que foram publicadas em homologação e/ou produção;
- Provisionamento: defina baselines de configuração de segurança e suba servidores e serviços adequadamente configurados;
- Gestão de Configuração: acompanhe as configurações para identificar se as configurações estão adequadas ou mudanças indevidas não foram realizadas no ambiente comprometendo a conformidade dos baselines estabelecidos.
Muitas outras práticas podem ser adotadas a partir de eventos de automação, como por exemplo um workflow de validação e testes manuais após todo o processo de análise automatizada.
Compareça a BSides São Paulo [2] e confira a minha palestra: Integrando testes de segurança ao processo de desenvolvimento de software.

Nenhum comentário:
Postar um comentário