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 của bạn. 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 thuật ngữ và định nghĩa 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 ra để xây dựng và chạy ứng dụng web của bạn.
- 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 cam kết git. Quy trình tạo bản dựng có nhiều quy trình con, đáng chú ý là quy trình xây dựng ứng dụng của bạn trong Cloud Build, và quy 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 triển khai) trong Cloud Run.
- Triển khai: Quy 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 cam kết git, App Hosting trước tiên tạo bản dựng bằng nhánh đang hoạt động của bạn, sau đó tạo một quy trình triển khai để chuyển hướng lưu lượng truy cập đang hoạt động đế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 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 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ủa mình. 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 của bạn.
- Khi một cam kết được chuyển đến nhánh đang hoạt động của bạn, 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 cam kết của bạn. Trong công việc này, các gói xây dựng 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ác biến môi trường, bí mật, số thực thể 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. Hãy xem quy trình xây dựngApp 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 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 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 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 để chuyển 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, quy trình triển khai đã 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 bật Cloud CDN. 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. Hãy 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
Hãy 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 phù hợp với thông số kỹ thuật của gói đầu ra. Hãy xem 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à App Hosting phần phụ trợ được xử lý bởi Developer Connect, 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. 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ợ của dịch vụ App Hosting), quy trình làm việc trên 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à:
- 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 Cloud Secret Manager.
- Bạn cho phép ứng dụng Firebase GitHub truy cập vào kho lưu trữ GitHub của mình. Bạn có thể cần thêm quyền GitHub để truy cập vào kho lưu trữ phù hợp.
- 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ý 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 GitHub để cung cấp một quy trình kiểm tra cho các quy trình triển khai. Quy trình kiểm tra này cho phép bạn xem trạng thái của quy trình 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à thời gian chạy để bạn có thể khởi chạy SDK quản trị Firebase bằng Thông tin đăng nhập 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. Hã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 không đượ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 mang lại những lợi thế 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à 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 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 của mình. Tài khoản này cũng có quyền xác thực SDK quản trị bằng Thông tin đăng nhập 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.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 vào thời gian xây dựng hoặc 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.