Понимание хостинга приложений и того, как он работает

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

Облако Google и архитектура App Hosting

App Hosting управляет набором продуктов Google Cloud, чтобы вы могли развертывать, обслуживать и отслеживать свое веб-приложение. Приложения создаются с помощью Cloud Build , обслуживаются в Cloud Run и кэшируются в Cloud CDN. Интегрированные службы, такие как Cloud Secret Manager, обеспечивают безопасность ваших ключей API.

Схема архитектуры, описанной на этой странице.

  1. Когда фиксация отправляется в вашу активную ветку, Google Cloud Developer Connect отправляет событие на Firebase App Hosting .
  2. В ответ на это событие Firebase App Hosting запускает новое развертывание для каждого бэкэнда, подключенного к репозиторию.
  3. Firebase App Hosting создает новую сборку Cloud Build для вашего коммита. В этом задании пакеты сборки Google Cloud определяют, какая платформа используется в вашем приложении для создания контейнера и конфигурации (включая переменные среды, секреты, минимальное или максимальное количество экземпляров, параллельную память, конфигурацию ЦП и VPC), которые подходят вашему приложению.
  4. После завершения задания Cloud Build ваш контейнер сохраняется в репозитории Artifact Registry предназначенном для Firebase App Hosting . Затем Firebase App Hosting добавляет новую версию Cloud Run в службу Cloud Run используя ваш образ и конфигурацию. Как только ваша версия Cloud Run будет проверена на работоспособность, Firebase App Hosting изменит конфигурацию трафика, чтобы направлять все новые запросы на вашу новую версию Cloud Run . На этом этапе развертывание завершено.
  5. Когда запрос отправляется на веб-сайт, размещенный на Firebase App Hosting , он обслуживается Google Cloud Load Balancer с включенным Cloud CDN. Некешированные запросы отправляются в вашу службу Cloud Run .

Интеграция фреймворка

App Hosting обеспечивает предварительно настроенную поддержку сборки и развертывания веб-приложений, разработанных в следующих средах:

  • Next.js 13.5.x и выше
  • Angular 18.2.x и выше

Подробную информацию о конкретных версиях и уровнях поддержки см. в графиках поддержки .

Помимо Next.js и Angular, App Hosting также поддерживает любую веб-платформу, способную обеспечить выходные данные сборки, соответствующие нашей спецификации выходного пакета . Дополнительные сведения о платформах, адаптерах платформ и сопутствующих инструментах, поддерживаемых App Hosting , см. в разделе Платформы и инструменты для App Hosting .

Как работает интеграция репозитория App Hosting

Важную связь между вашим репозиторием GitHub и серверной частью App Hosting обеспечивает Developer Connect , платформа подключения Google Cloud для внешних инструментов DevOps. Во время создания серверной части App Hosting рабочий процесс пользовательского интерфейса Developer Connect поможет вам установить приложение Firebase GitHub. Ключевыми шагами в этом процессе являются:

  1. Вы предоставляете Developer Connect роль администратора Secret Manager . Это позволяет системе безопасно хранить учетные данные как «секреты» в Cloud Secret Manager .
  2. Вы разрешаете приложению Firebase GitHub доступ к вашему репозиторию GitHub .
  3. Developer Connect хранит специальный токен авторизации GitHub в репозитории секретного менеджера вашего проекта; не изменяйте и не удаляйте этот токен.

Кроме того, App Hosting интегрируется с API проверок GitHub, обеспечивая проверку развертываний. Эта проверка позволяет вам просмотреть статус вашего развертывания в GitHub и отладить процесс развертывания в случае каких-либо ошибок.

Интеграция с Firebase и другими сервисами Google.

App Hosting настраивает среду сборки и выполнения, чтобы вы могли инициализировать Firebase Admin SDK с учетными данными приложения Google по умолчанию. Таким образом, ваш бэкэнд сможет взаимодействовать с другими продуктами Firebase как во время сборки, так и во время выполнения. Дополнительную информацию об инициализации вашего приложения и других темах, связанных с Firebase SDK, см. в разделе «Интеграция SDK Firebase в ваше веб-приложение» .

Расположение App Hosting

App Hosting создает ваши серверные ресурсы в определенном месте, называемом вашим основным регионом. Хотя App Hosting интегрируется с глобальной CDN для быстрой доставки, некэшированный контент обслуживается из основного региона вашего приложения. Такая гибкость в расположении вашего веб-приложения имеет ключевые преимущества:

  • Повышение производительности и сокращение задержек за счет географического приближения данных к вашим пользователям.
  • Катастрофический сбой App Hosting в одном регионе не повлияет на веб-приложения, развернутые в других регионах.

Вы можете выбрать любой из этих регионов при создании серверной части App Hosting из консоли или интерфейса командной строки Firebase :

  • us-central1 (Айова)
  • asia-east1 (Тайвань)
  • europe-west4 (Нидерланды)

Учетная запись серверной службы App Hosting

Во время сборки и во время выполнения серверная часть вашего App Hosting выполняет аутентификацию в других службах Google с помощью учетной записи службы. Учетная запись службы по умолчанию для этих целей создается при первом включении App Hosting в проекте Firebase:

firebase-app-hosting-compute@ PROJECT ID .iam.gserviceaccount.com

Эта учетная запись службы по умолчанию применяется ко всем серверным модулям и имеет минимальный набор разрешений, позволяющих создавать, запускать и отслеживать ваше приложение. Он также имеет разрешение на аутентификацию Admin SDK с учетными данными приложения по умолчанию для выполнения таких операций, как загрузка данных из Cloud Firestore . См. раздел Роли App Hosting Firebase .

Если вашему приложению необходимо взаимодействовать с дополнительными сервисами Google либо во время сборки, либо с работающего серверного модуля, вы можете настроить учетную запись службы по умолчанию, добавив роли. Например, если вашему приложению требуются разрешения для Vertex AI, вам может потребоваться добавить roles/aiplatform.user или какую-либо связанную роль.

Ключевые термины и определения

  • Серверная часть : коллекция управляемых ресурсов, которые создает App Hosting для создания и запуска вашего веб-приложения.
  • Развертывание : конкретная версия вашего действующего приложения, связанная с коммитом git.
  • Живая ветка : ветка вашего репозитория GitHub, которая развертывается по вашему действующему URL-адресу. Часто это ветка, в которую объединяются ветки функций или ветки разработки.