Em suma, sim.
Ao implantar um aplicativo, geralmente temos três (ou mais; veja abaixo) máquinas envolvidas:
- A máquina de desenvolvimento
- A máquina de teste
- O (s) servidor (es) de produção
Neste modelo muito comum, os desenvolvedores escrevem seu código nas máquinas de desenvolvimento, enviam alterações de código para a máquina de teste para testes e, finalmente, as alterações testadas entram em produção.
Para manter os mínimos no mínimo, geralmente queremos que os servidores sejam configurados o mais próximo possível.
Assim, você pode ssh em cada sistema e instalar o mesmo software (e as mesmas atualizações) em cada máquina, mas na produção, você pode ter mais de um servidor (por exemplo, para balanceamento de carga). Você pode descobrir que seu aplicativo se populariza e você precisa expandir para centenas ou milhares de servidores. Não seria legal ser o próximo Twitter e ganhar milhões de dólares? ... (espere) Mas você não pode mais ssh em cada um deles para aplicar suas atualizações se você tiver vários milhares de servidores, ou mesmo algumas dúzias.
É aqui que entram os sistemas de gerenciamento de configuração, como o Puppet e o Chef. Eles ajudam você a aplicar configurações idênticas a um grande número de máquinas de uma só vez (consulte seus respectivos sites para obter mais detalhes). Quando você ultrapassa o ponto de precisar de mais de um servidor, ajuda muito ter um sistema para mantê-los todos em sincronia e atualizados exatamente com o software que você espera exatamente na configuração esperada.