Acho que você está realmente enfrentando dois problemas aqui:
- Localização geográfica
Você deseja o seu aplicativo em vários locais, onde um provedor de nuvem, como o Azure ou a AWS, ajudará você a implantar em várias regiões sem precisar ter presença nele. Você pode implementar o failover em uma única região usando as ferramentas de balanceamento de carga incorporadas ou abrangendo várias regiões com ferramentas como o gerenciador de tráfego do Azure. Você pode alocar usuários para uma única região ou várias regiões com base em seus perfis de tráfego e balanceamento de carga.
- Implantação
Seu segundo problema é o de poder implantar seu aplicativo, particularmente onde você terá muitas instâncias em várias regiões. Isso não é realmente um problema de nuvem, é um problema de ferramentas e processos. Se você pretende expandir para várias regiões e várias instâncias em várias regiões, a implantação manual em qualquer parte do processo não será mais interrompida. Você precisa ser capaz de implantar com segurança e rapidez em todas as regiões (ou algumas) e saber que elas serão todas iguais, especialmente se você estiver balanceando a carga. A única maneira de conseguir isso é examinar seu processo para remover a complexidade ou usar ferramentas para lidar com isso. Existem soluções para implantações manuais de SQL, você menciona o Redgate, mas existem outras, o visual studio ainda tem uma ferramenta de versionamento de banco de dados.