Quy trình xây dựng App Hosting

Firebase App Hosting sử dụng Cloud Build để chuyển đổi mã nguồn ứng dụng của bạn thành định dạng đóng gói phù hợp để triển khai trên Cloud Run.

Quy trình xây dựng hoạt động thông qua các giai đoạn chính sau:

  1. ubuntu: Khởi chạy không gian làm việc.

  2. preparer: Thu thập mã nguồn và cấu hình của ứng dụng.

  3. pre-buildpack: Chuẩn bị môi trường buildpack.

  4. build: Cài đặt các phần phụ thuộc và tạo bản dựng ứng dụng.

  5. publisher: Hoàn tất vùng chứa Cloud Run phát hành công khai.

5 bước này tương ứng trực tiếp với các bước xây dựng như được hiển thị trong Cloud Build trong bảng điều khiển Google Cloud:

Ảnh chụp màn hình của một chế độ xem Google Cloud Console về các bước của Cloud Build

Khởi chạy không gian làm việc

Giai đoạn này tương ứng với bước xây dựng ubuntu. Lệnh này khởi chạy không gian làm việc của bản dựng, đảm bảo quyền truy cập tệp chính xác được đặt cho các thư mục mà các bước tạo bản dựng tiếp theo sử dụng.

Người chuẩn bị

Giai đoạn này chịu trách nhiệm xử lý logic trước khi tạo bản dựng. Tệp này đọc, dọn dẹp và ghi các biến môi trường do người dùng xác định. Lệnh này cũng tham chiếu và ghim mọi thông tin bí mật được chỉ định trong tệp apphosting.yaml.

Gói bản dựng trước

Bước này chuẩn bị môi trường cho vòng đời của Cloud Native Buildpacks. Quá trình này bao gồm việc chạy một shim để dịch các cấu hình và biến môi trường đã chuẩn bị ở giai đoạn trước sang định dạng mà các công cụ CNB yêu cầu.

Tạo

Đây là cốt lõi của quy trình xây dựng, chịu trách nhiệm tạo hình ảnh vùng chứa có thể chạy và tệp bundle.yaml xác định cấu hình bản dựng của bạn. Công cụ này sử dụng Cloud Native Buildpacks và tệp nhị phân lifecycle creator để đóng gói ứng dụng một cách hiệu quả. Bạn có thể xem thêm thông tin về tệp bundle.yaml trên GitHub.

Buildpack chịu trách nhiệm chuyển đổi mã nguồn ứng dụng thành hình ảnh vùng chứa sẵn sàng cho môi trường thực tế. Firebase App Hosting liên kết nhiều gói bản dựng với nhau để hoàn tất quy trình xây dựng:

  1. Runtime Buildpack: Đảm bảo tất cả thành phần cần thiết để chạy một ứng dụng Node.js cơ bản đều được đưa vào và các phần phụ thuộc được cài đặt.
  2. Monorepo Buildpack: Định cấu hình các gói bản dựng tiếp theo để xử lý nhiều trường hợp monorepo.
  3. Framework Buildpack: Cài đặt bộ chuyển đổi khung phù hợp (như Angular hoặc Next.js) và chuẩn bị các gói bản dựng tiếp theo.

    Bộ chuyển đổi khung chịu trách nhiệm chạy lệnh bản dựng được đưa vào chính thức và liên kết mọi giá trị cấu hình cụ thể theo khung có liên quan với một định dạng chuẩn mà App Hosting có thể đọc được.

  4. Package Manager Buildpack: Thực thi việc cài đặt các phần phụ thuộc và tạo ứng dụng bằng npm, yarn hoặc pnpm.

  5. Output Bundle Buildpack: Xác định lệnh chạy và chuẩn bị gói đầu ra để thực thi.

Nhà xuất bản

Giai đoạn cuối cùng này đóng gói tất cả thông tin được trích xuất từ mã nguồn ứng dụng cộng với hình ảnh vùng chứa bản dựng và gửi thông tin đó đến phần phụ trợ App Hosting. Sau đó, phần phụ trợ App Hosting sẽ sử dụng thông tin này để thiết lập Cloud Run bằng các cấu hình thích hợp.

Chính sách dọn dẹp bản dựng

Firebase App Hosting thực thi chính sách giữ lại và dọn dẹp bản dựng tự động. Theo chính sách này, App Hosting sẽ giữ lại các bản dựng thành công và các bản sửa đổi Cloud Run liên quan trong 14 ngày qua. Ngoài ra, để đảm bảo bạn luôn có một bản dựng để khôi phục, App Hosting sẽ giữ lại 5 bản dựng và bản phát hành thành công gần đây nhất, bất kể thời gian phát hành.

App Hosting sẽ không xoá hoặc gỡ bỏ bản dựng hiện đang nằm trong phần phân tách lưu lượng truy cập đang hoạt động hoặc được liên kết với một bản phát hành đang diễn ra.

Khi các bản dựng cũ vượt quá giới hạn lưu giữ này, trạng thái nội bộ của các bản dựng đó sẽ được cập nhật thành EXPIRED. Bạn không thể thực hiện khôi phục tức thì trên bản dựng EXPIRED và lựa chọn khôi phục về các bản dựng này sẽ bị xoá khỏi bảng điều khiển Firebase. Thay vào đó, bạn cần tạo một bản dựng mới nhắm đến cùng một nguồn (một lệnh git commit, một vùng chứa trong Artifact Registry hoặc một bộ chứa Google Cloud Storage) rồi phát hành bản dựng đó.

Một cách để tiết kiệm tài nguyên bản dựng là kiểm soát tần suất bạn kích hoạt quá trình phát hành tự động. Xem phần quản lý việc tự động phát hành.

Tìm hiểu thêm

Toàn bộ quy trình xây dựng App Hosting đều là nguồn mở.