Запуск тяжёлого веб-приложения в Великобритании и настройка сервера Aus

Я запускаю веб-приложение из центра обработки данных Великобритании. Скорость в порядке, как и ожидалось. Веб-приложение в значительной степени опирается на базу данных. Я хотел бы открыть веб-приложение для Австралии и Новой Зеландии, но поддерживать хорошее время отклика с сервера.

По сути, каждый пользователь в приложении имеет доступ к данным, хранящимся в двух таблицах в БД. Каждый пользователь использует указанные данные для генерации своей комбинации этих данных и сохранения в других таблицах в БД. Есть несколько обновлений активов в приложении.

Зарегистрированные электронные письма должны быть уникальными во всех странах.

Исходя из моих ограниченных знаний в этой области, я считаю, что есть два варианта: A - Полная репликация базы данных между двумя хостами, один в Великобритании и один в AUS B - Периодическая репликация данных с исходного хоста, Великобритании, на цели, в AUS и NZ.

Это затем оставляет домен 1 - в идеале, для домена было бы лучше, однако для этого требовался бы своего рода сервер маршрутизации для направления трафика в зависимости от местоположения на разные серверы, но это увеличило бы время отклика 2 - Наличие альтернативных доменов на страну, направляющих напрямую в страну местный хозяин

Я ценю, что я не изобретаю колесо здесь, но каков стандартный протокол для сценария, подобного этому? Насколько я понимаю, cdn-сервис больше предназначен для доставки изображений и видео, я предполагаю, что основной вопрос здесь заключается в том, что является эквивалентом для баз данных?

Спасибо за любую помощь, Джон

1 ответ

Решение

У вас есть несколько разных вопросов, которые, вероятно, лучше рассматривать как отдельные вопросы. Во-первых, как вы должны создать свою многосайтовую структуру базы данных. Во-вторых, как вы направляете пользователей на свои серверы.

Для решения проблемы с базой данных вам может понадобиться что-то простое, например, репликация с несколькими хозяевами. Нет простого ответа на это, так как есть слишком много переменных, которые необходимо учитывать. Объем данных, возможности программного обеспечения сервера базы данных, надежность соединения между двумя сайтами, сколько данных на самом деле необходимо распределить между сайтами, если данные должны быть всегда одинаковыми или, в конечном счете, одинаковыми.,

Что касается второй проблемы, CDN не может быть хорошим выбором, если ваши сайты почти полностью динамичны. CDN не предназначен для "доставки изображений и видео", он в основном предназначен для доставки статического контента (его подмножеством являются изображения и видео, любая веб-страница, которая не обрабатывается динамически, файлы JavaScript, CSS-файлы и т. Д.) Многие CDN Предлагайте услуги, которые также могут ускорить динамический контент с помощью различных приемов, но это не то, что вам нужно.

Мне известны два основных способа, которыми CDN и крупные организации могут справиться с подобной ситуацией. Первый - через DNS, используя какой-то механизм, чтобы определить, какой IP-адрес вернуть клиенту. Это может быть основано на IP-адресах клиента, таких как поиск в базе данных геолокации или другом механизме, чтобы определить, куда лучше направить клиента.

Второй способ - использовать Anycast. Идея заключается в том, что вы объявляете одни и те же IP-адреса из разных мест и полагаетесь на стандартную маршрутизацию Интернета, чтобы получить доступ к близкому сайту (близость относительно сети, а не географии).

Если вы хотите, чтобы мое мнение, выберите место, которое имеет приличную связь с местами, которые вы хотели бы обслуживать. Если вы обслуживаете людей только в Великобритании и Новой Зеландии, например, одно место в США может быть достаточно для обоих. Я не знаю, что делает ваше приложение, но если разница в несколько миллисекунд окажет существенное влияние на вашего пользователя, вы можете переосмыслить дизайн. От моего рабочего стола в Сан-Хосе, Калифорния, до Новой Зеландии и Австралии меньше четверти секунды (< 250 мс).

Другие вопросы по тегам