Eu tenho um aplicativo que acho que pode ser semelhante.
Eu executo ~ 30 instâncias de um aplicativo específico, cada uma sendo executada em sua própria VM no vsphere. Cada servidor compartilha o mesmo arquivo vmdk para o armazenamento de dados do aplicativo (~ 12 GB) que é configurado como independente / não persistente (o que faz com que os dados sejam persistentes somente durante reinicializações e não em encerramentos). links simbólicos estão no local apontando o aplicativo para os arquivos de dados no volume não persistente. O estado da aplicação e os dados que precisamos ser persistentes são gravados em outro volume separado.
Quando uma atualização é lançada no conjunto de dados e assumindo que não podemos encerrar as VMs (ou não temos uma janela de manutenção), simplesmente enviamos a atualização para o armazenamento não persistente, pois as alterações não são persistentes e vm-specific (pelo menos até o próximo desligamento). E durante a próxima janela de mudança disponível, podemos finalmente atualizar o backing vmdk.
Nós fizemos isso ao vivo algumas vezes no dev com discos hot-removed / hot-add com a VM nunca indo para baixo, mas isso provavelmente não é algo que poderíamos fazer na produção.
Obviamente, isso só funciona se você tiver alguma forma de virtualizar seu aplicativo e alguma maneira de controlar como o seu aplicativo é atualizado.