На GCP есть ли способ настроить приложение App Engine + Cloud Datastore с поддержкой нескольких регионов? - PullRequest
0 голосов
/ 08 октября 2019

Контекст

Служба App Engine является региональной. Облачное хранилище данных, тем не менее, имеет местоположения в нескольких регионах, где данные реплицируются в нескольких регионах в пределах одного и того же местоположения, как описано здесь. Неясно, имеет ли служба App Engine также доступность в нескольких регионах при использовании одного из расположений в нескольких регионах. Мы понимаем, что App Engine использует несколько зон в пределах одного региона для обеспечения высокой доступности, но в документе с требованиями запрашивается настройка многоядерного (активно-активного) App Engine.

Вариант решения

Мы рассматриваем следующую настройку как способ получения комбинации Active-Active AppEngine + Datastore в 2 различных регионах.

  • Используйте 2 разных проекта GCP для размещения одного и того же приложения AppEngine + Datastore в 2 разных регионах. Один из них будет основным, а другой будет активным резервом.
  • Использование запланированных заданий для экспорта данных из хранилища данных из основного региона в дополнительный, в соответствии с инструкциями по импорту / экспорту, описанными здесь.
  • Для автоматизации экспорта и импорта данных можно использовать сочетание заданий cron App Engine и / или облачных функций.
  • Частота резервного копирования данных может быть определена требованиями RPO и RTO приложения.

Обоснование экспорта и импорта облачного хранилища данных

Тамна данный момент нет другого встроенного (управляемого GCP) механизма репликации для репликации данных хранилища данных по регионам.

Вопросы

Q1: Есть ли способ настроить приложениеПриложение Engine + Cloud Datastore с доступностью нескольких регионов? Требуется иметь активно-активную конфигурацию в 2 регионах. Возможно ли это и как правильно сделать это?

Q2: для использования варианта решения, указанного выше, необходимо найти способ сопоставления доменных имен первичных и вторичных приложений App Engine сто же имя DNS и использовать какое-либо взвешенное сопоставление DNS, чтобы включить автоматическую маршрутизацию трафика на вторичный экземпляр App Engine, когда требуется переключение при отказе,

В3. Есть ли рекомендуемый способ сделать это? Облачный DNS или HTTP (s) Loadbalancer - в сочетании со Stackdriver обеспечивают способ сделать это? (Примечание. Приложения App Engine не имеют публичного статического IP-адреса, вместо этого GCP предоставляет доменные имена.) Есть ли какие-либо рекомендации от Google относительно лучшего способа автоматизации экспорта и импорта Datastore? Самым простым решением является использование командной строки gcloud в виртуальной машине. Есть также способы автоматизировать это с помощью заданий App Engine Cron и / или облачных функций? Что рекомендует Google?

1 Ответ

0 голосов
/ 08 октября 2019

Насколько я знаю, то, что вы пытаетесь выполнить, невозможно, как вы это описали.

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

https://cloud.google.com/datastore/docs/activate#other-platforms

Единственная проблема, связанная с этим, - это дополнительная задержка, но вы сможете избежать многих сложностей, связанных с импортом / экспортом исинхронизировать процессы. Предполагая, что отключения на региональном уровне являются исключением, вы платите за эту дополнительную задержку очень редко.

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

...