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 một đị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 Workspace.

  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à tạo ứng dụng của bạn.

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

5 bước này tương ứng trực tiếp với các bước xây dựng như xuất hiện 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 Cloud Console của Google Cloud

Khởi tạo không gian làm việc

Giai đoạn này tương ứng với bước tạo ubuntu. Thao tác này sẽ khởi tạo không gian làm việc bản dựng, đảm bảo rằng các quyền truy cập tệp chính xác được đặt cho các thư mục mà các bước 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. Thư viện 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. Thư việ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 vòng đời Cloud Native Buildpacks. Việc này liên quan đến việc chạy một shim để dịch 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.

Tạo

Đây là cốt lõi của quy trình tạo bản dựng, chịu trách nhiệm tạo một hình ảnh vùng chứa có thể chạy và một 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 trình tạo vòng đời để đó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 của bạn thành hình ảnh vùng chứa sẵn sàng cho sản xuất. Firebase App Hosting liên kết một số 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 rằng tất cả cá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 đều đượ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 hình phù hợp (chẳng hạn 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 tạo bản dựng được sản xuất và liên kết mọi giá trị cấu hình cụ thể của khung có liên quan với một định dạng tiêu chuẩn mà App Hosting có thể đọc được.

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

  5. Gói bản dựng đầu ra: 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 đế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 với 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 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 để quay lại, 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 của bạn, bất kể tuổi đờ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 nằm trong quy trình phân chia lưu lượng truy cập đang hoạt động hoặc được liên kết với một quy trình 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 chúng sẽ được cập nhật thành EXPIRED. Bạn không thể thực hiện thao tác khôi phục ngay 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 sẽ cần tạo một bản dựng mới nhắm đến cùng một nguồn (có thể là một cam kết git, một vùng chứa trong Artifact Registry hoặc một vùng 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 bản dựng là kiểm soát tần suất kích hoạt tính năng phát hành tự động. Xem phần quản lý tính năng phát hành tự động.

Tìm hiểu thêm

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