Respondendo a sua pergunta: Sim, a implantação usando o git (ou qualquer outro controle de revisão, na verdade) é o caminho a percorrer, especialmente quando sua infraestrutura começa a se tornar complexa / grande.
Respondendo aos seus clientes
-
A segurança deve ser feita em camadas, e mesmo se o git fosse um vetor de ataque realmente preocupante, alguém ainda teria que obter acesso aos servidores para fazer isso. Tenha boa segurança de servidor, autenticação baseada em chave SSH e controle de acesso / registro e você terá um risco muito baixo.
-
Se você quiser escrever uma ferramenta de implantação, é claro que você deve considerar um procedimento de reversão caso a atualização do código falhe. O bom é que ferramentas como o capistrano (que eu estou mais familiarizado) já tem todas essas etapas embutidas, e você pode mudar o comportamento e etc.
Acho que o melhor é usar ferramentas de implantação como capistrano ou Vlad the Deployer ou mesmo Chef implanta se você já tem Chef (ou outra ferramenta de gerenciamento de configuração).
O Capistrano, por exemplo, é direcionado aos trilhos por padrão, mas você pode adaptá-lo para implantar qualquer coisa. Ele se conectará aos seus servidores, atualizará o código (mantendo algumas versões mais antigas, caso precise reverter para uma versão anterior), executará tarefas como migrações ou limpezas de banco de dados e, em seguida, reiniciará os serviços, se necessário. Você pode personalizar isso para o seu ambiente e até ter ambientes diferentes (trabalhei com produção, afirmando + 3 outros).
Todas as outras ferramentas permitirão que você faça algo assim, e acho que gastar tempo para escrever um script de implantação só é válido se o seu sistema for realmente diferente dos "usuais".