Hospedar aplicativo da web único em vários países / locais

1

Temos um aplicativo da web que consiste em um front-end do .NET e um back-end do SQL. Também temos um aplicativo para dispositivos móveis que se conecta ao front-end do .NET usando o WebAPI. Atualmente, temos o aplicativo hospedado em um servidor físico nos EUA. Temos vários clientes de todo o mundo que fazem login no aplicativo a partir de navegadores da web e dispositivos móveis.

Temos muitos clientes solicitando dois cenários:

  • "O aplicativo pode ser hospedado em um país diferente dos EUA" (para preocupações de segurança / NSA)

  • "Podemos hospedar o aplicativo nós mesmos" (para grandes clientes corporativos)

Usamos o Github para gerenciamento de alterações com nosso código front end. Implantar o código do site é bastante fácil, pois criamos um utilitário de sincronização que nos permite atualizar o servidor de produção de nosso repositório Git. No entanto, atualizar o servidor de produção SQL do nosso servidor de teste é um pouco mais de uma tarefa manual (esquema, procedimentos armazenados, etc.). Eu sei que há software lá fora (redgate, etc.) que permite fazer um gerenciamento de alterações similar com o SQL, no entanto, essa não é a minha pergunta.

Como a maioria das empresas manipula um aplicativo de vários locais geográficos, considerando que alguns clientes desejarão ter seus dados hospedados SOLELY em um local (por motivos de segurança), enquanto outros clientes desejarão que seus dados sejam hospedados em um, mais ou todos os locais, compartilhados, para permitir a conexão com o servidor mais próximo. Como um detalhe adicional, nós fazemos as mudanças FREQUENTES para o código (diariamente), então empurrar o código e o SQL muda para múltiplos ambientes de host segregados e garantir que tudo esteja em sincronia é um pouco trabalhoso.

Como dito, atualmente hospedamos em um servidor físico em um farm de dados. O uso do AWS, Azure, etc. facilita essa tarefa?

    
por mikemaat 15.11.2016 / 17:56

1 resposta

2

Acho que você está realmente enfrentando dois problemas aqui:

  1. 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.

  1. 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.

    
por 15.11.2016 / 22:29