Na parte de trás da minha resposta à pergunta: Como o DevOps pode ajudar a melhorar os procedimentos de Custódia de Software? Tensibai fez a pergunta:
O que exigiria Capistrano em cima de marionetes ou chef?
Minha resposta foi postar um link para o artigo de Noah Gibbs "Precisamos de Capistrano e Chef?" . Pessoalmente, ainda subscrevo a opinião de Noah de que é mais apropriado:
- use uma ferramenta de implantação especializada, como o Capistrano, para implantações.
- use uma ferramenta especializada em gerenciamento de configuração, como o Chef, para gerenciamento de configuração.
A abordagem fundamental que cada tipo de ferramenta usa para concluir sua tarefa é muito diferente:
Ferramentas de gerenciamento de configuração - são sobre como criar e manter o estado desejado de um sistema, elas são inerentemente idempotentes por natureza. Exemplos de ferramentas de gerenciamento de configuração são Chef , Puppet , Ansible , PowerShell DSC , Salt Stack .
Ferramentas de implantação - são sobre o fornecimento de versões de software em um ambiente de hospedagem, fornecem funcionalidade para manter várias versões do software em várias máquinas e gerenciar qual versão é "atual", elas são inerentemente imperativas por natureza. Exemplos de ferramentas de implantação são Capistrano , Octopus Deploy , Deployer e Command.io .
Acredito que as Ferramentas de Gerenciamento de Configuração podem fazer o trabalho das ferramentas de implantação e, no caso da Infraestrutura Imutável, elas são a ferramenta mais apropriada para o trabalho, pois as versões de software no destino não precisam ser mantidas.
Pergunta: As ferramentas de gerenciamento de configuração, como Chef, Ansible e Puppet, amadureceram a ponto de serem capazes de cumprir os modelos idempotente e imperativo?