App Hosting xử lý một loạt tác vụ nền phức tạp để đơ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ỳ thuộc vào nhu cầu của ứng dụng.
Các thuật ngữ và định nghĩa chính
Để hiểu rõ chi tiết về quy trình App Hosting, bạn nên xác định một số thuật ngữ 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 của bạn.
- Bản dựng: 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 git commit. Quá trình tạo bản dựng có nhiều quy trình phụ, đặc biệt là việc xây dựng ứng dụng trong Cloud Build và 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 phát hành) trong Cloud Run.
- Triển khai: Quy trình thiết lập một 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 git commit, App Hosting trước tiên sẽ tạo một bản dựng bằng nhánh đang hoạt động, sau đó tạo một bản phát hành để chuyển 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 cho URL đang hoạt động của bạn. 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 của Google Cloud và App Hosting
App Hosting điều phối một bộ 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ủa mình. Các ứng dụng được xây dựng bằng Cloud Build, 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 vệ khoá API của bạn.
- Khi một thay đổi đượ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.
- Để 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ữ.
- Trước tiên, Firebase App Hosting sẽ tạo một bản dựng Cloud Build mới cho bản cam kết của bạn. Trong công việc này, gói bản dựng Google Cloud sẽ xác định khung nào đang được dùng trong ứng dụng của bạn để tạo vùng chứa và cấu hình (bao gồm cả biến môi trường, thông tin bí mật, số thực thể tối thiểu hoặc tối đa, tính đồng thời, bộ nhớ, CPU và cấu hình VPC) phù hợp với ứng dụng của bạn. Hãy xem quy trình xây dựng App Hosting để biết thêm thông tin.
- 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 kho lưu trữ Artifact Registry dành riêng cho Firebase App Hosting. Sau đó, Firebase App Hosting sẽ thêm một Bản sửa đổi Cloud Run mới vào dịch vụ Cloud Run bằng hình ảnh và cấu hình của bạn.
- Sau khi Bản sửa đổi Cloud Run của bạn hoàn tất và được xác minh là hoạt động tốt, Firebase App Hosting sẽ sửa đổi cấu hình lưu lượng truy cập để chuyển tất cả yêu cầu mới đến Bản sửa đổi Cloud Run mới của bạn. Tại thời điểm này, quá trình phát hành đã hoàn tất.
- 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 Trình cân bằng tải của Google Cloud khi Cloud CDN được bật. Các yêu cầu không được lưu vào bộ nhớ đệm sẽ được gửi đến dịch vụ Cloud Run của bạn. Xem phần 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ợ triển khai và xây dựng đượ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
Hãy xem lịch trình hỗ trợ để biết thông tin chi tiết về các phiên bản và cấp độ 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 kết quả bản dựng khớp với quy cách gói kết quả của chúng tôi. Hãy 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
Mối liên kết quan trọng giữa kho lưu trữ GitHub và phần phụ trợ App Hosting được xử lý bằng Developer Connect, nền tảng kết nối của Google Cloud cho các công cụ DevOps bên ngoài. Khi bạn thiết lập mối kết nối này (thường là trong quá trình tạo phần phụ trợ App Hosting), quy trình giao diện người dùng của Developer Connect sẽ hướng dẫn bạn cài đặt ứng dụng GitHub của Firebase. Các bước chính trong quy trình này là:
- 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 đăng nhập một cách an toàn dưới dạng "bí mật" trong Trình quản lý bí mật của Google Cloud.
- Bạn cho phép ứng dụng Firebase GitHub truy cập vào kho lưu trữ GitHub của bạn. Bạn có thể cần thêm quyền trên GitHub để truy cập vào đúng kho lưu trữ.
- Developer Connect lưu trữ một mã thông báo uỷ quyền chuyên dụng của GitHub trong kho lưu trữ trình quản lý bí mật của dự án; đừ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 của GitHub để cung cấp một quy trình kiểm tra cho các bản phát hành. Bước kiểm tra này cho phép bạn xem trạng thái triển khai trong GitHub và gỡ lỗi cho quá trình triển khai nếu 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 Firebase khác tại cả thời điểm xây dựng và thời gian chạy. Hãy xem bài viết Tích hợp Firebase SDK vào ứ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ủ đề có liên quan khác đến Firebase SDK.
App Hosting địa điểm
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 lưu vào bộ nhớ đệm sẽ được phân phát từ khu vực chính của ứng dụng. Sự linh hoạt này trong vị trí của ứng dụng web mang lại những lợi ích 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ý.
- Sự cố 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 ở những 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 phần phụ trợ App Hosting từ bảng điều khiển Firebase hoặc CLI Firebase:
us-central1(Iowa)us-east4(N. 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à trong thời gian chạy, phần phụ trợ App Hosting của bạn sẽ xác thực với các dịch vụ khác của Google bằng một tài khoản dịch vụ. Tài khoản dịch vụ mặc định cho các mục đích này đượ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
Tài khoản dịch vụ này áp dụng cho tất cả phần phụ trợ theo mặc định và có một nhóm 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 của mình. Tài khoản này cũng có quyền xác thực SDK 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 để thực hiện các thao tác như tải dữ liệu từ Cloud Firestore. Xem vai trò trong Firebase App Hosting.
Nếu ứng dụng của bạn cần tương tác với các dịch vụ bổ sung của Google tại thời điểm xây dựng hoặc từ một phần phụ trợ đang chạy, thì bạn có thể tuỳ chỉnh tài khoản dịch vụ mặc định bằng cách thêm 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 số vai trò có liên quan.