Сегодня Google Cloud не поддерживает ни один облачный проект Google, в котором Cloud Datastore запускается как в основном режиме (режим Firestore), так и в режиме Datastore. Это говорит о том, что владелец проекта должен выбрать один .
Для меня я хочу использовать режим Native и режим хранилища данных по следующим причинам.
В режиме Native я смогу использовать различные внешние интерфейсы Firebase SDK. так что мое приложение может напрямую связываться с Datastore без необходимости проходить через пользовательский бэкэнд, возможно, сохраняя задержку и получая выгоду от политик безопасности в Firestore. Кроме того, Firebase SDK отлично работает в режиме онлайн / офлайн-кэширования в среде iOS / Android, что может сэкономить много работы.
В режиме хранилища данных я смогу создать масштабируемыйбэкэнд-сервис, чья пропускная способность записи в БД может превышать десятки тысяч tps. Хотя основной режим может поддерживать около миллиона одновременных подключений, он имеет максимальный предел записи 10 000 в секунду на уровне базы данных, который, я думаю, может быть низким для приложения на основе чата и событий, которое я создаю.
Если бы основной режим поддерживал более 10000 записей / с, я бы с радостью выбрал основной режим и не стал бы беспокоиться об этом, но сегодня это не так.
Поэтому я начал думатьо настройке 2 облачных проектов Google, 1 для основного режима и 1 для режима хранилища данных, и их совместного использования.
Например, Project #1
будет использоваться для облачного хранилища данных в основном режиме, а также для проверки подлинности Firebase, ипочти все остальные продукты, доступные в Firebase и Google Cloud.
Project #2
будут использоваться только для Cloud Datastore в режиме Datastore для поддержки операций на основе чатов и событий, которые будут происходить в моих бэкэнд-системах, которые могут превышать 10 000/ tps limit.
Кроме возможных накладных расходов на управление для поддержки 2 project, есть ли что-то, что мне нужно беспокоиться в этой стратегии? Или вообще, как правило, несколько облачных проектов Google поддерживают одно приложение / службу?
Например, могут ли системы, работающие в среде проекта № 1, например [Cloud Run, App Engine, GKE]быть в состоянии связаться с облачным хранилищем данных проекта №2?
Например, могут ли системы, работающие в среде проекта №2, инициализировать серверный SDK Firebase с учетными данными проекта № 1 и аутентифицировать токены авторизации Firebase, сгенерированныеприложение внешнего интерфейса, использующее Project # 1 Firebase SDK?