Dowiedz się, jak działa App Hosting i jak działa.

App Hosting obsługuje złożoną serię zadań w tle, aby uprościć wdrażanie aplikacji. Ta strona opisuje kluczowe części tego procesu, podając informacje o miejscach, w których warto go dostosować do potrzeb aplikacji.

Architektura Google Cloud i App Hosting

App Hosting steruje zestawem usług Google Cloud, aby umożliwić Ci wdrażanie, obsługę i monitorowanie aplikacji internetowej. Aplikacje są tworzone za pomocą Cloud Build, obsługiwane przez Cloud Run i przechowywane w pamięci podręcznej w Cloud CDN. Zintegrowane usługi, takie jak Cloud Secret Manager, zapewniają bezpieczeństwo kluczy interfejsu API.

Diagram architektury opisanej na tej stronie.

  1. Gdy zatwierdzone zmiany zostaną przesłane do gałęzi produkcyjnej, Google Cloud Developer Connect wyśle zdarzenie do Firebase App Hosting.
  2. W odpowiedzi na to zdarzenie Firebase App Hosting rozpoczyna nowe wdrożenie dla każdego backendu połączonego z repozytorium.
  3. Firebase App Hosting tworzy nową wersję Cloud Build dla Twojego commita. W tym zadaniu pakiety kompilacji Google Cloud określają, której platformy używa Twoja aplikacja, aby utworzyć kontener i konfigurację (w tym zmienne środowiskowe, sekrety, minimalne lub maksymalne instancje, pamięć współbieżną, procesor i konfigurację VPC) odpowiednią dla Twojej aplikacji.
  4. Po zakończeniu zadania Cloud Build kontener jest przechowywany w repozytorium Artifact Registry przeznaczonym do Firebase App Hosting. Firebase App Hosting dodaje nową wersję Cloud Run do usługi Cloud Run, używając Twojego obrazu i konfiguracji. Gdy sprawdzisz, że wersja Cloud Run jest zdrowa, usługa Firebase App Hosting zmodyfikuje konfigurację ruchu, aby kierować wszystkie nowe żądania do nowej wersji Cloud Run. W tej chwili udostępnienie jest zakończone.
  5. Gdy żądanie jest wysyłane do witryny hostowanej w Firebase App Hosting, jest ono obsługiwane przez system równoważenia obciążenia Google Cloud z włączoną usługą Cloud CDN. Żądania nieprzechowywane w pamięci podręcznej są wysyłane do usługi Cloud Run.

Integracja z ramówką

App Hosting zapewnia wstępnie skonfigurowaną obsługę kompilacji i wdrażania aplikacji internetowych opracowanych w ramach tych frameworków:

  • Next.js w wersji 13.5.x lub nowszej
  • Angular w wersji 18.2.x lub nowszej

Szczegółowe informacje o konkretnych wersjach i poziomach pomocy znajdziesz w harmonogramie pomocy.

Oprócz Next.js i Angular App Hosting obsługuje też dowolną platformę internetową, która może wygenerować dane kompilacji zgodne z naszą specyfikacją pakietu danych wyjściowych. Więcej informacji o platformach, adapterach platform i powiązanych narzędziach obsługiwanych przez App Hosting znajdziesz w artykule Platformy i narzędzia dla App Hosting.

Jak działa integracja z repozitorium App Hosting

Ważne połączenie między repozytorium GitHub a backendem App Hosting obsługuje Developer Connect, czyli platforma Google Cloud do łączenia zewnętrznych narzędzi DevOps. Podczas tworzenia backendu App Hosting w interfejsie użytkownika Developer Connect przeprowadzi Cię przez proces instalacji aplikacji Firebase GitHub. Najważniejsze kroki w tym procesie to:

  1. przyznasz usłudze Developer Connect rolę Administratora usługi Secret Manager. Dzięki temu system może bezpiecznie przechowywać dane logowania jako „obiekty tajne” w usłudze Cloud Secret Manager.
  2. Autoryzujesz aplikację Firebase na GitHubie do dostępu do repozytorium GitHub.
  3. Usługa Developer Connect przechowuje w repozytorium usługi Secret Manager dedykowany token autoryzacji GitHub. Nie modyfikuj ani nie usuwaj tego tokena.

Dodatkowo App Hosting integruje się z interfejsem GitHub Checks API, aby sprawdzać wdrożenia. Dzięki temu możesz wyświetlić stan wdrażania w GitHub i debugować proces wdrażania w przypadku wystąpienia błędów.

Integracja z Firebase i innymi usługami Google

App Hosting konfiguruje środowisko kompilacji i środowisko uruchomieniowe, aby umożliwić inicjowanie pakietu Firebase Admin SDK za pomocą domyślnych danych logowania Google. Dzięki temu Twój backend może się komunikować z innymi usługami Firebase zarówno w czasie kompilacji, jak i wykonania. Więcej informacji o inicjowaniu aplikacji i innych tematach związanych z pakietem SDK Firebase znajdziesz w artykule Integracja pakietów SDK Firebase w aplikacji internetowej.

App Hosting lokalizacji

App Hosting tworzy zasoby backendu w określonej lokalizacji, zwanej regionem głównym. Aplikacja App Hosting integruje się z globalną usługą CDN, aby zapewnić szybkie dostarczanie treści, ale niewykorzystane treści są dostarczane z regionu podstawowego aplikacji. Ta elastyczność w lokalizacji aplikacji internetowej ma kluczowe zalety:

  • Zwiększona wydajność i krótszy czas oczekiwania dzięki temu, że dane są geograficznie bliżej użytkowników.
  • Katastrofalny błąd w usłudze App Hosting w jednym regionie nie wpłynie na aplikacje internetowe wdrożone w innych regionach.

Podczas tworzenia App Hosting backendu w konsoli lub w interfejsie wiersza poleceń Firebase możesz wybrać dowolny z tych regionów:

  • us-central1 (Iowa)
  • asia-east1 (Tajwan)
  • europe-west4 (Holandia)

App Hosting konto usługi w części backendowej,

Podczas kompilacji i w czasie wykonywania backend App Hosting uwierzytelnia się w innych usługach Google za pomocą konta usługi. Domyślne konto usługi do tych celów jest tworzone przy pierwszym włączeniu App Hosting w projekcie Firebase:

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

To konto usługi domyślnie dotyczy wszystkich backendów i ma minimalny zestaw uprawnień, aby umożliwić kompilowanie, uruchamianie i monitorowanie aplikacji. Ma też uprawnienia do uwierzytelniania pakietu Admin SDK za pomocą domyślnych danych logowania aplikacji, aby wykonywać operacje takie jak wczytywanie danych z Cloud Firestore. Zapoznaj się z rolami App Hosting w Firebase.

Jeśli aplikacja musi wchodzić w interakcje z dodatkowymi usługami Google w czasie kompilacji lub z uruchomionego backendu, możesz dostosować domyślne konto usługi, dodając role. Jeśli na przykład Twoja aplikacja wymaga uprawnień Vertex AI, konieczne może być dodanie roli roles/aiplatform.user lub innej powiązanej roli.

Najważniejsze terminy i definicje

  • Backend: zbiór zarządzanych zasobów, które App Hostingtworzy do tworzenia i uruchamiania aplikacji internetowej.
  • Wdrażanie: konkretna wersja aplikacji, która jest połączona z commitem w Git.
  • Gałąź na żywo: gałąź w repozytorium GitHub, która jest wdrażana do adresu URL na żywo. Często jest to gałąź, do której scalane są gałęzie funkcji lub gałęzie rozwoju.