Tìm hiểu về tính năng Lưu trữ ứng dụng và cách tính năng này hoạt động

App Hosting xử lý một loạt các tác vụ phức tạp ở chế độ nền để đơn giản hoá việc triển khai ứng dụng. Trang này mô tả các phần chính của quy trình tác vụ đó, cung cấp thông tin về những điểm mà bạn có thể muốn tuỳ chỉnh quy trình tuỳ theo nhu cầu của ứng dụng.

Các định nghĩa và thuật ngữ chính

Để hiểu rõ các chi tiết của quy trình App Hosting, bạn nên xác định một số thuật ngữ một cách cụ thể. Sau đây là các thuật ngữ chính cơ bản:

  • Phần phụ trợ: Tập hợp các tài nguyên được quản lý mà App Hosting tạo để xây dựng và chạy ứng dụng web.
  • Bản dựng: Một bản sửa đổi cụ thể của ứng dụng, thường được liên kết với một lệnh cam kết git. Quá trình tạo bản dựng có nhiều quy trình con, đáng chú ý là quá trình xây dựng ứng dụng trong Cloud Build, và quá trình triển khai bản sửa đổi (ban đầu phân phát 0% lưu lượng truy cập cho đến khi được ra mắt) trong Cloud Run.
  • Triển khai: Quá trình thiết lập bản dựng để chủ động phân phát lưu lượng truy cập. Khi được kích hoạt tự động bằng một lệnh cam kết git, App Hosting trước tiên tạo bản dựng bằng nhánh đang hoạt động, sau đó tạo bản phát hành để chuyển hướng lưu lượng truy cập trực tiếp đến bản dựng đó.
  • Nhánh đang hoạt động: Nhánh của kho lưu trữ GitHub được triển khai đến URL đang hoạt động. Thông thường, đây là nhánh mà các nhánh tính năng hoặc nhánh phát triển được hợp nhất vào.

Kiến trúc Google Cloud và App Hosting

App Hosting điều phối một tập hợp các sản phẩm của Google Cloud để bạn có thể triển khai, phân phát và giám sát ứng dụng web. Các ứng dụng được xây dựng bằng Cloud Build, được phân phát trên Cloud Run, và được lưu vào bộ nhớ đệm trong Cloud CDN. Các dịch vụ tích hợp như Cloud Secret Manager giúp bảo mật khoá API.

Biểu đồ về cấu trúc được mô tả trong trang này.

  1. Khi một lệnh cam kết được đẩy vào nhánh đang hoạt động, Google Cloud Developer Connect sẽ gửi một sự kiện đến Firebase App Hosting.
  2. Để phản hồi sự kiện này, Firebase App Hosting sẽ tạo một bản dựng mới cho phần phụ trợ được kết nối với kho lưu trữ.
    1. Trước tiên, Firebase App Hosting sẽ tạo một bản dựng Cloud Build mới cho lệnh cam kết của bạn. Trong công việc này, buildpack của Google Cloud sẽ xác định khung đang được sử dụng trong ứng dụng của bạn để tạo một vùng chứa và cấu hình (bao gồm các biến môi trường, khoá bí mật, số lượng phiên bản tối thiểu hoặc tối đa, bộ nhớ đồng thời, CPU và cấu hình VPC) phù hợp với ứng dụng của bạn. Xem quy trình xây dựngApp Hostingđể biết thêm thông tin.
    2. Khi công việc Cloud Build hoàn tất, vùng chứa của bạn sẽ được lưu trữ trong một Artifact Registry kho lưu trữ dành riêng cho Firebase App Hosting. Firebase App Hosting sau đó thêm một Bản sửa đổi Cloud Run mới vào một dịch vụ Cloud Run bằng hình ảnh và cấu hình của bạn.
  3. Sau khi Bản sửa đổi Cloud Run hoàn tất và được xác minh là hoạt động bình thường, Firebase App Hosting sẽ sửa đổi cấu hình lưu lượng truy cập để trỏ tất cả các yêu cầu mới đến Bản sửa đổi Cloud Run mới. Tại thời điểm này, quá trình triển khai đã hoàn tất.
  4. Khi một yêu cầu được gửi đến một trang web được lưu trữ trên Firebase App Hosting, yêu cầu đó sẽ được phân phát bởi Google Cloud Load Balancer có bật Cloud CDN. Các yêu cầu chưa được lưu vào bộ nhớ đệm sẽ được gửi đến dịch vụ Cloud Run. Xem bài viết Lưu nội dung ứng dụng vào bộ nhớ đệm để biết hướng dẫn về cách tối ưu hoá hiệu suất bằng Cloud CDN.

Tích hợp khung

App Hosting cung cấp tính năng hỗ trợ xây dựng và triển khai được định cấu hình sẵn cho các ứng dụng web được phát triển trong các khung sau:

  • Next.js 13.5.x trở lên
  • Angular 18.2.x trở lên

Xem lịch biểu hỗ trợ để biết thông tin chi tiết về các phiên bản và mức hỗ trợ cụ thể.

Ngoài Next.js và Angular, App Hosting cũng hỗ trợ mọi khung web có thể cung cấp đầu ra bản dựng khớp với thông số kỹ thuật của gói đầu ra. Xem bài viết Khung và công cụ cho App Hosting để biết thêm thông tin về các khung, bộ chuyển đổi khung và công cụ liên quan được App Hosting hỗ trợ.

Cách hoạt động của tính năng tích hợp kho lưu trữ App Hosting

Kết nối quan trọng giữa kho lưu trữ GitHub và phần phụ trợ do Developer Connect xử lý. Đây là nền tảng kết nối của Google Cloud dành cho các công cụ DevOps bên ngoài.App Hosting Khi bạn thiết lập kết nối này (thường là trong quá trình tạo phần phụ trợ App Hosting), quy trình công việc giao diện người dùng của Developer Connect sẽ hướng dẫn bạn cài đặt ứng dụng Firebase GitHub. Các bước chính trong quy trình này là:

  1. Bạn cấp cho Developer Connect vai trò Quản trị viên Secret Manager. Điều này cho phép hệ thống lưu trữ thông tin xác thực một cách an toàn dưới dạng "khoá bí mật" trong Cloud Secret Manager.
  2. Bạn cho phép ứng dụng Firebase GitHub truy cập vào kho lưu trữ GitHub. Bạn có thể cần thêm quyền GitHub để truy cập vào kho lưu trữ phù hợp.
  3. Developer Connect lưu trữ một mã thông báo uỷ quyền GitHub chuyên dụng trong kho lưu trữ trình quản lý khoá bí mật của dự án; không sửa đổi hoặc xoá mã thông báo này.

Ngoài ra, App Hosting còn tích hợp với API kiểm tra GitHub để cung cấp một quy trình kiểm tra cho các bản triển khai. Quy trình kiểm tra này cho phép bạn xem trạng thái của bản triển khai trong GitHub và gỡ lỗi quy trình triển khai trong trường hợp có lỗi.

Tích hợp với Firebase và các dịch vụ khác của Google

App Hosting thiết lập cả môi trường xây dựng và môi trường thời gian chạy để bạn có thể khởi động SDK của Firebase dành cho quản trị viên bằng Thông tin xác thực mặc định của ứng dụng Google. Bằng cách đó, phần phụ trợ của bạn có thể giao tiếp với các sản phẩm khác của Firebase ở cả thời gian xây dựng và thời gian chạy. Xem bài viết Tích hợp SDK Firebase trong ứng dụng web để biết thêm thông tin về cách khởi chạy ứng dụng và các chủ đề khác liên quan đến SDK Firebase.

App Hosting vị trí

App Hosting tạo tài nguyên phụ trợ ở một vị trí cụ thể, được gọi là khu vực chính. Mặc dù App Hosting tích hợp với CDN toàn cầu để phân phối nhanh, nhưng nội dung chưa được lưu vào bộ nhớ đệm sẽ được phân phát từ khu vực chính của ứng dụng. Tính linh hoạt này về vị trí của ứng dụng web có những ưu điểm chính sau:

  • Cải thiện hiệu suất và giảm độ trễ bằng cách đưa dữ liệu đến gần người dùng hơn về mặt địa lý.
  • Lỗi nghiêm trọng đối với App Hosting ở một khu vực sẽ không ảnh hưởng đến các ứng dụng web được triển khai ở các khu vực khác.

Bạn có thể chọn bất kỳ khu vực nào trong số này khi tạo một App Hosting phần phụ trợ từ bảng điều khiển Firebase hoặc CLI Firebase:

  • us-central1 (Iowa)
  • us-east4 (Bắc. Virginia)
  • us-east5 (Columbus)
  • asia-east1 (Đài Loan)
  • asia-southeast1 (Singapore)
  • europe-west4 (Hà Lan)

Tài khoản dịch vụ phụ trợ App Hosting

Trong quá trình xây dựng và tại thời gian chạy, phần phụ trợ App Hosting sẽ xác thực với các dịch vụ khác của Google bằng tài khoản dịch vụ. Một tài khoản dịch vụ mặc định cho các mục đích này sẽ được tạo vào lần đầu tiên bạn bật App Hosting trong một dự án Firebase:

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

Theo mặc định, tài khoản dịch vụ này áp dụng cho tất cả các phần phụ trợ và có một tập hợp quyền tối thiểu để cho phép bạn xây dựng, chạy và giám sát ứng dụng. Tài khoản này cũng có quyền xác thực Admin SDK bằng Thông tin xác thực mặc định của ứng dụng để thực hiện các thao tác như tải dữ liệu từ Cloud Firestore. Xem các vai trò của FirebaseApp Hosting.

Nếu ứng dụng của bạn cần tương tác với các dịch vụ khác của Google tại thời gian xây dựng hoặc từ một phần phụ trợ đang chạy, bạn có thể tuỳ chỉnh tài khoản dịch vụ mặc định bằng cách thêm các vai trò. Ví dụ: nếu ứng dụng của bạn yêu cầu quyền đối với Vertex AI, bạn có thể cần thêm roles/aiplatform.user hoặc một vai trò liên quan.