Devops: o que é e principais práticas
DevOps vem da junção das palavras Development e Operations que foi mencionado pela primeira vez em 2009 em uma palestra chamada de "10+ Deploys Per Day", por uma dupla que trabalhava no Flickr. Mas qual foi a motivação dessa palestra? Qual é a razão do movimento DevOps?
No dia a dia de um projeto de software, as equipes de desenvolvimento e de operações têm interesses e responsabilidades bem diferentes. Enquanto a equipe de desenvolvimento altera o código e implementa novas funcionalidades, a equipe de operações se preocupe com a estabilidade e desempenho do sistema em produção. Uma equipe foca em novidades e mudança, para a outra, cada mudança representa um risco. No Flickr esse confronto estava acontecendo com uma frequência muito grande.
Isso é muita vezes a raiz de vários conflitos entre as equipes, gera burocracia e lentidão nas entregas e não está nada alinhado com os interesses do cliente. O movimento DevOps veio para atacar esse conflito, visa juntar as equipes, mudar a cultura através de colaboração e usa uma série de ferramentas para ter a velocidade na entrega sem comprometer a qualidade. A ideia é que engenheiros trabalham em todo o ciclo de vida da aplicativo, da fase de desenvolvimento e testes até a implantação e as operações. Em geral, eles não são limitados a uma única função, são full cycle (nao apenas full stack).
Entre as práticas do movimento DevOps podemos mencionar quatro principais, que são apoiadas por diversas ferramentas conhecidas:
- infraestrutura como código (IaC)
- a pipeline de construção do software (integração e entrega contínua)
- a virtualização e conteinerização
- o feedback constante da aplicação em produção através de monitoramento.
Nos nossos cursos da formação devops passamos por uma dezena de ferramentas que implementam as principais práticas, mas vale lembrar que as práticas são mais importanes que esses termos da moda. Mesmo em momento de falha, deve ser facil e rapido a recuperação do sistema no estado anterior. O movimento DevOps é a união de pessoas, processos e tecnologias para entregar continuamente valor ao cliente.