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. Na tej stronie opisano najważniejsze części tego przepływu zadań i podano informacje o miejscach, w których możesz dostosować przepływ do potrzeb aplikacji.

Najważniejsze terminy i definicje

Aby zrozumieć szczegóły procesu App Hosting, warto dokładnie zdefiniować niektóre terminy. Oto najważniejsze pojęcia:

  • Backend: zbiór zasobów zarządzanych, które App Hosting tworzy, aby utworzyć i uruchomić aplikację internetową.
  • Kompilacja: konkretna wersja aplikacji, zwykle powiązana z zatwierdzeniem w Git. Proces tworzenia kompilacji obejmuje wiele podprocesów, w tym kompilowanie aplikacji w Cloud Build i wdrażanie wersji (początkowo obsługującej 0% ruchu, dopóki nie zostanie wdrożona) w Cloud Run.
  • Wdrażanie: proces ustawiania kompilacji na aktywne obsługiwanie ruchu. Gdy usługa App Hosting zostanie automatycznie aktywowana przez zatwierdzenie w Git, najpierw utworzy kompilację przy użyciu gałęzi produkcyjnej, a następnie utworzy wdrożenie, aby skierować do niej ruch produkcyjny.
  • Gałąź wersji opublikowanej: gałąź repozytorium GitHub, która jest wdrażana pod adresem URL wersji opublikowanej. Często jest to gałąź, z którą scalane są gałęzie funkcji lub gałęzie programistyczne.

Architektura Google Cloud i App Hosting

App Hosting koordynuje zestaw usług Google Cloud, dzięki czemu możesz wdrażać i obsługiwać aplikację internetową oraz ją monitorować. Aplikacje są tworzone za pomocą Cloud Build, obsługiwane w Cloud Run i buforowane 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 zatwierdzenie zostanie przesłane do gałęzi aktywnej, Google Cloud Developer Connect wysyła zdarzenie do Firebase App Hosting.
  2. W odpowiedzi na to zdarzenie Firebase App Hosting tworzy nową kompilację dla backendu połączonego z repozytorium.
    1. Najpierw Firebase App Hosting tworzy nową kompilację Cloud Build dla Twojego zatwierdzenia. W tym zadaniu pakiety kompilacji Google Cloud określają, która platforma jest używana w aplikacji, aby utworzyć kontener i konfigurację (w tym zmienne środowiskowe, obiekty tajne, minimalną lub maksymalną liczbę instancji, równoczesność, pamięć, procesor i konfigurację VPC) odpowiednie dla aplikacji. Więcej informacji znajdziesz w artykule o procesie kompilacji App Hosting.
    2. Po zakończeniu zadania Cloud Build kontener zostanie zapisany w repozytorium Artifact Registry przeznaczonym dla Firebase App Hosting. Firebase App Hosting dodaje nową wersję Cloud Run do usługi Cloud Run, używając Twojego obrazu i konfiguracji.
  3. Gdy wersja Cloud Run zostanie ukończona i zweryfikowana jako prawidłowa, Firebase App Hosting zmodyfikuje konfigurację ruchu, aby kierować wszystkie nowe żądania do nowej wersji Cloud Run. W tym momencie proces wdrażania jest zakończony.
  4. Gdy żądanie jest wysyłane do witryny hostowanej na platformie Firebase App Hosting, jest ono obsługiwane przez system równoważenia obciążenia Google Cloud z włączoną usługą Cloud CDN. Żądania, które nie są zapisane w pamięci podręcznej, są wysyłane do usługi Cloud Run. Wskazówki dotyczące optymalizacji wydajności za pomocą Cloud CDN znajdziesz w artykule na temat zapisywania treści aplikacji w pamięci podręcznej.

Integracja z zasadami TCF

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

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

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

Oprócz Next.js i Angulara App Hosting obsługuje też dowolną platformę internetową, która może dostarczyć dane wyjściowe kompilacji zgodne z naszą specyfikacją pakietu wyjściowego. 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 repozytorium App Hosting

Ważne połączenie między repozytorium GitHub a backendem App Hosting jest obsługiwane przez Developer Connect, platformę Google Cloud do łączenia zewnętrznych narzędzi DevOps. Gdy konfigurujesz to połączenie (zwykle podczas tworzenia backendu App Hosting), interfejs Developer Connect przeprowadzi Cię przez proces instalacji aplikacji Firebase GitHub. Najważniejsze kroki w tym procesie to:

  1. Przypisujesz 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, aby uzyskać dostęp do repozytorium GitHub. Aby uzyskać dostęp do odpowiedniego repozytorium, możesz potrzebować dodatkowych uprawnień GitHuba.
  3. Developer Connect przechowuje dedykowany token autoryzacji GitHub w repozytorium menedżera obiektów tajnych projektu. Nie modyfikuj ani nie usuwaj tego tokena.

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

Integracja z Firebase i innymi usługami Google

App Hosting konfiguruje środowiska kompilacji i środowiska wykonawcze, dzięki czemu możesz zainicjować pakiet SDK Firebase Admin za pomocą domyślnych danych uwierzytelniających aplikacji Google. Dzięki temu backend może komunikować się z innymi usługami Firebase zarówno podczas kompilacji, jak i w czasie działania. Więcej informacji o inicjowaniu aplikacji i innych powiązanych artykułach dotyczących pakietów SDK Firebase znajdziesz w artykule Integracja pakietów SDK Firebase z aplikacją internetową.

App Hosting lokalizacji

App Hosting tworzy zasoby backendu w określonej lokalizacji, nazywanej regionem podstawowym. App Hosting integruje się z globalną siecią CDN, aby zapewnić szybkie dostarczanie, ale treści niezapisane w pamięci podręcznej są dostarczane z głównego regionu aplikacji. Ta elastyczność w zakresie lokalizacji aplikacji internetowej ma kluczowe zalety:

  • Zwiększona wydajność i mniejsze opóźnienia dzięki umieszczeniu danych bliżej użytkowników pod względem geograficznym.
  • Poważna awaria App Hosting w jednym regionie nie wpłynie na aplikacje internetowe wdrożone w innych regionach.

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

  • us-central1 (Iowa)
  • us-east4 (N. Wirginia)
  • us-east5 (Columbus)
  • asia-east1 (Tajwan)
  • asia-southeast1 (Singapur)
  • europe-west4 (Holandia)

Konto usługi backendu App Hosting

Podczas kompilacji i w czasie działania 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 w 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ń, który umożliwia tworzenie, uruchamianie i monitorowanie aplikacji. Ma też uprawnienia do uwierzytelniania pakietu Admin SDK za pomocą domyślnego uwierzytelniania aplikacji, co pozwala na wykonywanie takich operacji jak wczytywanie danych z Cloud Firestore. Zobacz role Firebase App Hosting.

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