Memahami Hosting Aplikasi dan cara kerjanya

App Hosting menangani serangkaian tugas latar belakang yang kompleks untuk menyederhanakan deployment aplikasi Anda. Halaman ini menjelaskan bagian-bagian penting dari alur tugas tersebut, yang memberikan informasi tentang poin-poin tempat Anda mungkin ingin menyesuaikan alur bergantung pada kebutuhan aplikasi Anda.

Istilah dan definisi utama

Untuk memahami detail alur App Hosting sebaiknya definisikan beberapa terminologi secara spesifik. Berikut adalah istilah kunci mendasar:

  • Backend: Kumpulan resource terkelola yang App Hosting buat untuk membangun dan menjalankan aplikasi web Anda.
  • Build: Revisi spesifik aplikasi Anda, biasanya ditautkan ke commit git. Proses pembuatan build memiliki banyak subproses, terutama pembuatan aplikasi Anda di Cloud Build, dan deployment revisi (awalnya menayangkan 0% traffic hingga diluncurkan) di Cloud Run.
  • Peluncuran: Proses menetapkan build untuk menayangkan traffic secara aktif. Saat dipicu secara otomatis oleh commit git, App Hosting pertama membuat build menggunakan cabang aktif Anda, lalu membuat peluncuran untuk mengarahkan traffic aktif ke cabang tersebut.
  • Cabang aktif: Cabang repositori GitHub Anda yang di-deploy ke URL aktif Anda. Cabang ini sering kali merupakan cabang tempat cabang fitur atau cabang pengembangan digabungkan.

Arsitektur Google Cloud dan App Hosting

App Hosting mengatur serangkaian produk Google Cloud sehingga Anda dapat men-deploy, menayangkan, dan memantau aplikasi web Anda. Aplikasi dibangun dengan Cloud Build, ditayangkan di Cloud Run, dan di-cache di Cloud CDN. Layanan terintegrasi seperti Cloud Secret Manager menjaga keamanan kunci API Anda.

Diagram arsitektur yang dijelaskan di halaman ini.

  1. Saat commit dikirim ke cabang aktif Anda, Google Cloud Developer Connect akan mengirimkan peristiwa ke Firebase App Hosting.
  2. Sebagai respons terhadap peristiwa ini, Firebase App Hosting akan membuat build baru untuk backend yang terhubung ke repositori.
    1. Pertama, Firebase App Hosting akan membuat build Cloud Build baru untuk commit Anda. Dalam tugas ini, buildpack Google Cloud akan menentukan framework mana yang digunakan dalam aplikasi Anda untuk membuat container dan konfigurasi (termasuk variabel lingkungan, secret, instance minimum atau maksimum, memori serentak, CPU, dan konfigurasi VPC) yang sesuai dengan aplikasi Anda. Lihat proses buildApp Hostinguntuk mengetahui informasi selengkapnya.
    2. Setelah tugas Cloud Build selesai, container Anda akan disimpan di repositori Artifact Registry yang didedikasikan untuk Firebase App Hosting. Firebase App Hosting kemudian akan menambahkan Revisi Cloud Run baru ke layanan Cloud Run menggunakan image dan konfigurasi Anda.
  3. Setelah Revisi Cloud Run Anda selesai dan terverifikasi sehat, Firebase App Hosting akan mengubah konfigurasi traffic-nya untuk mengarahkan semua permintaan baru ke Revisi Cloud Run baru Anda. Pada tahap ini, peluncuran telah selesai.
  4. Saat permintaan dikirim ke situs yang dihosting di Firebase App Hosting, permintaan akan ditayangkan oleh Google Cloud Load Balancer dengan Cloud CDN diaktifkan. Permintaan yang tidak di-cache akan dikirim ke layanan Cloud Run Anda. Lihat Konten aplikasi cache untuk panduan tentang cara mengoptimalkan performa dengan Cloud CDN.

Integrasi framework

App Hosting menyediakan dukungan build dan deployment yang telah dikonfigurasi sebelumnya untuk aplikasi web yang dikembangkan dalam framework berikut:

  • Next.js 13.5.x dan yang lebih tinggi
  • Angular 18.2.x dan yang lebih tinggi

Lihat jadwal dukungan untuk mengetahui detail tentang versi dan tingkat dukungan tertentu.

Selain Next.js dan Angular, App Hosting juga mendukung framework web apa pun yang dapat memberikan output build yang cocok dengan spesifikasi paket output kami. Lihat Framework dan alat untuk App Hosting untuk mengetahui informasi selengkapnya tentang framework, adaptor framework, dan alat terkait yang didukung oleh App Hosting.

Cara kerja integrasi repositori App Hosting

Koneksi penting antara repositori GitHub dan App Hosting backend ditangani oleh Developer Connect, platform konektivitas Google Cloud untuk alat DevOps eksternal. Saat Anda menyiapkan koneksi ini (biasanya selama pembuatan backend App Hosting), alur kerja UI Developer Connect akan memandu Anda melalui penginstalan aplikasi Firebase GitHub. Langkah-langkah utama dalam proses ini adalah:

  1. Anda memberikan peran Admin Secret Manager ke Developer Connect. Hal ini memungkinkan sistem menyimpan kredensial dengan aman sebagai "secret" di Cloud Secret Manager.
  2. Anda mengotorisasi aplikasi Firebase GitHub untuk mengakses repositori GitHub Anda. Anda mungkin memerlukan izin GitHub tambahan untuk mengakses repositori yang tepat.
  3. Developer Connect menyimpan token otorisasi GitHub khusus di repositori secret manager project Anda; jangan ubah atau hapus token ini.

Selain itu, App Hosting terintegrasi dengan GitHub Checks API untuk menyediakan a pemeriksaan peluncuran. Pemeriksaan ini memungkinkan Anda melihat status peluncuran di GitHub dan men-debug proses deployment jika terjadi error.

Integrasi dengan Firebase dan layanan Google lainnya

App Hosting menyiapkan lingkungan build dan runtime sehingga Anda dapat menginisialisasi Firebase Admin SDK dengan Kredensial Default Aplikasi Google. Dengan begitu, backend Anda dapat berkomunikasi dengan produk Firebase lainnya pada waktu build dan runtime. Lihat Mengintegrasikan Firebase SDK di aplikasi web Anda untuk mengetahui informasi selengkapnya tentang menginisialisasi aplikasi Anda dan topik terkait Firebase SDK lainnya.

App Hosting lokasi

App Hosting membuat resource backend Anda di lokasi tertentu, yang disebut region utama Anda. Meskipun App Hosting terintegrasi dengan CDN global untuk pengiriman cepat, konten yang tidak di-cache akan ditayangkan dari region utama aplikasi Anda. Fleksibilitas ini dalam lokasi aplikasi web Anda memiliki keunggulan utama:

  • Performa yang ditingkatkan dan latensi yang dikurangi dengan mendekatkan data secara geografis ke pengguna Anda.
  • Kegagalan besar untuk App Hosting di satu region tidak akan memengaruhi aplikasi web yang di-deploy di region lain.

Anda dapat memilih salah satu region ini saat membuat backend dari konsol atau CLI:App HostingFirebaseFirebase

  • us-central1 (Iowa)
  • us-east4 (N. Virginia)
  • us-east5 (Columbus)
  • asia-east1 (Taiwan)
  • asia-southeast1 (Singapura)
  • europe-west4 (Belanda)

Akun layanan backend App Hosting

Selama build dan saat runtime, backend App Hosting Anda akan diautentikasi dengan layanan Google lainnya menggunakan akun layanan. Akun layanan default untuk tujuan ini dibuat saat pertama kali Anda mengaktifkan App Hosting di project Firebase:

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

Akun layanan ini berlaku untuk semua backend secara default dan memiliki kumpulan izin minimal untuk memungkinkan Anda membangun, menjalankan, dan memantau aplikasi Anda. Akun ini juga memiliki izin untuk mengautentikasi Admin SDK dengan Kredensial Default Aplikasi, untuk melakukan operasi seperti memuat data dari Cloud Firestore. Lihat Peran FirebaseApp Hosting.

Jika aplikasi Anda perlu berinteraksi dengan layanan Google tambahan pada waktu build atau dari backend yang berjalan, Anda dapat menyesuaikan akun layanan default dengan menambahkan peran. Misalnya, jika aplikasi Anda memerlukan izin untuk Vertex AI, Anda mungkin perlu menambahkan roles/aiplatform.user atau peran terkait lainnya.