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 vùng chứa phù hợp để triển khai trên Cloud Run.

Quy trình xây dựng hoạt độ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 ứng dụng của bạn.

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

  4. build: Cài đặt các phần phụ thuộc và xây dựng ứng dụng của bạn.

  5. publisher: Hoàn thiện vùng chứa sản xuất Cloud Run.

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

Ảnh chụp màn hình chế độ xem các bước Cloud Build trên bảng điều khiển Cloud của Google Cloud

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. Giai đoạn này khởi chạy không gian làm việc xây dựng, đảm bảo rằng các quyền đối với tệp chính xác được đặt cho các thư mục mà các bước xây dựng tiếp theo sử dụng.

Preparer

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

Pre-buildpack

Bước này chuẩn bị môi trường cho Cloud Native Buildpacks vòng đời. Bước này liên quan đến việc chạy một shim giúp chuyển đổi các cấu hình và biến môi trường được chuẩn bị ở giai đoạn trước thành định dạng mà các công cụ CNB mong đợi.

Bản dựng

Đâ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 xây dựng của bạn. Giai đoạn này sử dụng Cloud Native Buildpacks và tệp nhị phân trình tạo vòng đời để đóng gói ứng dụng một cách hiệu quả. Bạn có thể tìm 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 của bạn thành hình ảnh vùng chứa sẵn sàng cho quá trình sản xuất. Firebase App Hosting liên kết một số buildpack để hoàn tất quy trình xây dựng:

  1. Runtime Buildpack: Đảm bảo rằng tất cả các thành phần cần thiết để chạy ứ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 buildpack tiếp theo để xử lý các tình huống monorepo khác nhau.
  3. Framework Buildpack: Cài đặt bộ chuyển đổi khung chính xác (như Angular hoặc Next.js) và chuẩn bị các buildpack tiếp theo.

    Bộ chuyển đổi khung chịu trách nhiệm chạy lệnh xây dựng đã được sản xuất hoá và liên kết mọi giá trị cấu hình liên quan dành riêng cho khung với định dạng tiêu 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à xây dựng ứ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 xây dựng và gửi đến phần phụ trợApp Hosting. Sau đó, phần phụ trợ của App Hosting sẽ sử dụng thông tin này để thiết lập Cloud Run với các cấu hình phù hợp.

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

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

App Hosting sẽ không bao giờ xoá hoặc loại bỏ bản dựng hiện đang ở trong bả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 bản triển khai đang diễn ra.

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

Một cách để tiết kiệm tài nguyên xây dựng là kiểm soát tần suất kích hoạt các bản triển khai tự động. Xem phần quản lý các bản triển khai tự động.

Tìm hiểu thêm

Toàn bộ quy trình xây dựng của App Hosting là nguồn mở.