A engenharia de liberação é frequentemente confundida com DevOps. Há uma boa razão. As funções e responsabilidades muitas vezes se sobrepõem. DevOps pode ser considerado um superconjunto de engenharia de lançamento.
Engenharia de Liberação
A engenharia de liberação é uma disciplina que se concentra na implantação de software. Tenta fazer software de melhor qualidade a uma taxa confiável e previsível. Seu objetivo é melhorar o pipeline de construção e lançamento de software. Aqui estão algumas coisas que a engenharia de lançamento enfatiza:
- Implementa o controle de versão - a engenharia de lançamento tenta adicionar rastreabilidade e confiabilidade ao código. Portanto, o código é mantido em repositórios de controle de versão como Git, SVN, Perforce, etc. As equipes de desenvolvimento usam esses sistemas de controle de versão para acompanhar melhor a evolução do código.
- Automatiza pipelines de construção e lançamento - A engenharia de lançamento se concentra em encontrar ferramentas de automação para melhorar a velocidade e a confiabilidade do processo de lançamento. Desde a primeira confirmação do código no controle de versão até o produto final chegar ao cliente, a engenharia de lançamento continua melhorando o processo. A integração e entrega contínuas (CI / CD) desempenham um papel importante nos modernos sistemas automatizados de construção / liberação.
- Gerenciamento de configuração - conforme o código do software passa por vários ciclos de desenvolvimento, teste, preparação e produção, o gerenciamento de configuração garante que os atributos do produto sejam consistentes em todo o ciclo de vida do software.
- Produção e implantação - Cada peça de software que vai para o cliente em um ambiente de produção precisa estar intimamente ligada à sua origem. Portanto, se houver um problema, as empresas podem rastreá-lo de volta à origem.
DevOps
DevOps tem um mandato mais amplo. Ele se concentra na criação de colaboração multifuncional entre equipes.
No passado, as equipes de desenvolvimento e de operações trabalhavam em seus próprios silos. Quando as equipes de desenvolvimento implantaram seu código na produção, haveria discussões acaloradas sobre quem assumiria a responsabilidade por quaisquer problemas de produção. Além disso, a equipe de desenvolvimento gostaria que os recursos mais recentes e interessantes fossem implantados, enquanto a equipe de operações gostaria de ficar longe de correr riscos. Isso levou a um conflito constante entre os dois grupos.
O objetivo das práticas de DevOps era aproximar o desenvolvimento e as operações. Aqui estão algumas coisas em que o DevOps se concentra:
- Configuração e provisionamento da infraestrutura - tradicionalmente, os departamentos de TI planejavam e provisionavam a infraestrutura. A filosofia DevOps incentiva uma abordagem mais centrada no desenvolvedor. O pipeline é criado para facilitar o processo de desenvolvimento para passar pelos vários estágios e ciclos sem atrito. Os desenvolvedores têm mais responsabilidade sobre como seus aplicativos se comportam na produção.
- Gerenciamento de configuração - as equipes de DevOps têm uma visão mais ampla do gerenciamento de configuração. Embora a engenharia de lançamento possa usá-lo apenas para produtos de software, as práticas de DevOps encontram maneiras de implementar o gerenciamento de configuração para todos os aspectos de uma organização. O objetivo é ajudar toda a organização a executar uma operação mais tranquila por meio da automação.
- CI / CD - Integração e entrega contínuas são uma grande parte da filosofia DevOps. Uma prática de DevOps madura usa CI / CD para automatizar tarefas tradicionais de TI usando infraestrutura como código.
- Monitoramento e melhorias organizacionais - as práticas de DevOps enfatizam a coleta de dados nos processos para analisar e melhorar. Portanto, coletar dados, transformá-los em inteligência acionável e usá-los para melhorar os processos atuais é uma responsabilidade importante do DevOps.
Em conclusão
Devido à interseção das preocupações com a melhoria do processo de software, a engenharia de lançamento é frequentemente confundida com DevOps. Mas DevOps tem um escopo maior. Embora a engenharia de liberação possa viver como um departamento separado, DevOps requer mais integração com o fluxo de trabalho geral da organização. É mais fácil configurar uma prática de engenharia de liberação, pois as etapas são concretas. DevOps requer uma compreensão do comportamento organizacional, da cultura de trabalho e da infraestrutura. DevOps bem-sucedido não se trata apenas do produto, mas de toda a organização.
Um estudo mais aprofundado
Rumo a definições para engenharia de liberação e DevOps