Я традиционно придерживался архитектуры «одного приложения, одного сервера» для большинства приложений ASP.NET/SQL Server, над которыми я работал. Я имею в виду это свободно, используя несколько серверов с балансировщиком нагрузки и т. Д. Но они все были в одном центре данных.Приложение ASP.NET в нескольких центрах обработки данных - лучшая архитектура?
Однако в последнее время появилось требование о применении приложения, которое будет поддерживать пользователей в США, Китае и России. Производительность будет достаточно критической, так что самый разумный способ архитектовать такое приложение, чтобы он хорошо работал во всех этих областях?
варианты я придумываю является:
- Используйте один единый центр обработки данных (т.е. не пройдет в нескольких мест по всему миру). Предоставляйте статический контент через CDN, но база данных и сайт ASP.NET будут размещаться в одном месте (например: США). Похоже, что производительность все равно может быть проблемой.
- Использование нескольких центров обработки данных и наличие нескольких версий приложения. Например: ru.myapp.com, us.myapp.com, ch.myapp.com со своим собственным кодом/базами данных и т. Д. Это будет работать, но такие вещи, как отчетность, управление и т. Д., Должны выполняться в каждом приложении, что представляется наименее эффективным.
- Используйте другую архитектуру, но я не знаком с альтернативами. Возможно ли, чтобы у вас было одно приложение и база данных, работающие в нескольких центрах обработки данных (например, в среде с балансировкой нагрузки, но в большем масштабе).
Есть ли у кого-нибудь опыт в лучшем способе справиться с этим?
Вариант 2 - довольно распространенный подход. В зависимости от того, что вы сообщаете, и является ли эта функция заказной или OOTB-продуктом, многие из них могут комбинировать данные из разных источников (распределенные базы данных в вашем случае). Возможно, это не вариант для вас. – timothyclifford