Essa não é uma questão simples, é realmente complexa e há muitas maneiras de conseguir isso, nem todas elas têm o mesmo desempenho.
- Para compartilhar arquivos estáticos como imagens, você pode usar o servidor de arquivos e colocar os dados que você deseja compartilhar entre os servidores nessa pasta e monte essa pasta em todos os servidores,
- Para sincronizar código, você pode usar o git hook, como o github, e usar alguma coisa para implantar esse código, por exemplo (jenkins), depois github hook, executará a tarefa em jenkins, e você pode configurar a tarefa jenkins implantar o código em vários servidores
A questão é realmente grande e cada parte dela pode ser um blog ou um livro