Memahami Hosting Aplikasi dan cara kerjanya

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

Google Cloud dan arsitektur App Hosting

App Hosting mengatur serangkaian produk Google Cloud sehingga Anda dapat men-deploy, menayangkan, dan memantau aplikasi web. Aplikasi dibuat 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 di-push ke cabang aktif, Google Cloud Developer Connect akan mengirim peristiwa ke Firebase App Hosting.
  2. Merespons peristiwa ini, Firebase App Hosting memulai peluncuran baru untuk setiap backend yang terhubung ke repositori.
  3. Firebase App Hosting membuat build Cloud Build baru untuk commit Anda. Dalam tugas ini, buildpack Google Cloud menentukan framework yang digunakan dalam aplikasi Anda untuk membuat penampung dan konfigurasi (termasuk variabel lingkungan, secret, instance minimum atau maksimum, memori serentak, CPU, dan konfigurasi VPC) yang sesuai dengan aplikasi Anda.
  4. Setelah tugas Cloud Build selesai, penampung Anda akan disimpan di repositori Artifact Registry yang didedikasikan untuk Firebase App Hosting. Firebase App Hosting kemudian menambahkan Revisi Cloud Run baru ke layanan Cloud Run menggunakan image dan konfigurasi Anda. Setelah Revisi Cloud Run Anda diverifikasi 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.
  5. Saat permintaan dikirim ke situs yang dihosting di Firebase App Hosting, permintaan tersebut akan ditayangkan oleh Load Balancer Google Cloud dengan Cloud CDN diaktifkan. Permintaan yang tidak di-cache dikirim ke layanan Cloud Run Anda.

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 backend App Hosting ditangani oleh Developer Connect, platform konektivitas Google Cloud untuk alat DevOps eksternal. Selama pembuatan backend App Hosting, alur kerja UI Developer Connect akan memandu Anda menginstal aplikasi GitHub Firebase. Langkah-langkah utamanya dalam proses ini adalah:

  1. Anda memberikan peran Secret Manager Admin ke Developer Connect. Hal ini memungkinkan sistem menyimpan kredensial dengan aman sebagai "secret" di Cloud Secret Manager.
  2. Anda memberi otorisasi ke aplikasi GitHub Firebase untuk mengakses repositori GitHub Anda.
  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 memberikan 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 melakukan inisialisasi 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 untuk mengetahui informasi selengkapnya tentang cara melakukan inisialisasi aplikasi dan topik terkait Firebase SDK lainnya.

Lokasi App Hosting

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

  • Peningkatan performa dan pengurangan latensi 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 App Hosting dari konsol atau CLI Firebase:

  • us-central1 (Iowa)
  • asia-east1 (Taiwan)
  • europe-west4 (Belanda)

Akun layanan backend App Hosting

Selama build dan saat runtime, backend App Hosting Anda melakukan autentikasi dengan layanan Google lainnya dengan 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 serangkaian izin minimum untuk memungkinkan Anda mem-build, menjalankan, dan memantau aplikasi. Akun ini juga memiliki izin untuk mengautentikasikan Admin SDK dengan Kredensial Default Aplikasi, untuk melakukan operasi seperti memuat data dari Cloud Firestore. Lihat peran App Hosting Firebase.

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 beberapa peran terkait.

Istilah dan definisi utama

  • Backend: Kumpulan resource terkelola yang dibuat App Hosting untuk mem-build dan menjalankan aplikasi web Anda.
  • Peluncuran: Versi tertentu dari aplikasi live Anda, yang ditautkan ke commit git.
  • Cabang aktif: Cabang repositori GitHub yang di-deploy ke URL aktif Anda. Sering kali, ini adalah cabang tempat branch fitur atau cabang pengembangan digabungkan.