Cloud Run: Câu chuyện về các Container phi máy chủ

Mindful Containers là một công ty ảo chuyên tạo các gói ứng dụng dịch vụ vi mô. Họ cần một môi trường máy tính được quản lý tổng thể để triển khai và mở rộng các dịch vụ vi mô phi máy chủ. Vì vậy, họ đang xem xét sử dụng Cloud Run. Công ty này hào hứng với tính năng này vì nó loại bỏ cấu hình, giám sát và quản lý cụm để họ có thể tập trung vào việc xây dựng các tính năng cho ứng dụng của mình.

 

Cloud Run là gì?

Cloud Run là môi trường máy tính được quản lý tổng thể để triển khai và mở rộng quy mô các container HTTP phi máy chủ mà không cần lo lắng về việc chuẩn bị máy móc vật lý, cấu hình cụm hoặc autoscaling.

  • Không có những khó khăn khi dịch chuyển dữ liệu – Vì Cloud Run lấy các vùng chứa OCI tiêu chuẩn và triển khai API Knative Serving tiêu chuẩn, bạn có thể dễ dàng chuyển các ứng dụng của mình sang bất kỳ môi trường đám mây nào khác.
  • Tự động chia tỷ lệ nhanh – Các dịch vụ nhỏ được triển khai trong Cloud Run tự động mở rộng quy mô dựa trên số lượng yêu cầu đến mà bạn không cần phải định cấu hình hoặc quản lý một cụm Kubernetes chính thức. Cloud Run quy mô về 0 – nghĩa là không sử dụng tài nguyên – nếu không có yêu cầu.
  • Phân chia lưu lượng truy cập – Cloud Run cho phép bạn phân chia lưu lượng truy cập giữa nhiều bản sửa đổi, vì vậy bạn có thể thực hiện triển khai dần dần như triển khai canary hoặc triển khai xanh lam / xanh lục.
  • Miền tùy chỉnh – Bạn có thể thiết lập ánh xạ miền tùy chỉnh trong Cloud Run và nó sẽ cung cấp chứng chỉ TLS cho miền của bạn.
  • Dự phòng tự động – Cloud Run cung cấp tính năng dự phòng tự động, do đó bạn không phải lo lắng về việc tạo nhiều phiên bản để có tính khả dụng cao

Cách sử dụng Cloud Run

Với Cloud Run, bạn viết mã bằng ngôn ngữ yêu thích của mình và / hoặc sử dụng thư viện nhị phân. Sau đó, đẩy nó lên Cloud Build để tạo một bản dựng vùng chứa. Với một lệnh duy nhất— “triển khai gcloud run” — bạn đi từ hình ảnh vùng chứa đến ứng dụng web được quản lý hoàn toàn chạy trên miền có chứng chỉ TLS và tự động phân chia tỷ lệ theo yêu cầu.

Cloud Run hoạt động như thế nào?

Dịch vụ Cloud Run có thể hoạt động theo những cách sau:

HTTPS: Bạn có thể gửi yêu cầu HTTPS để kích hoạt dịch vụ được lưu trữ trên nền tảng Cloud Run. Lưu ý rằng tất cả các dịch vụ Cloud Run đều có URL HTTPS ổn định. Một số trường hợp sử dụng bao gồm:

API web RESTful tùy chỉnh

microservice cá nhân

Phần mềm trung gian HTTP hoặc proxy ngược cho các ứng dụng web của bạn

Ứng dụng web đóng gói sẵn

gRPC: Bạn có thể sử dụng gRPC để kết nối các dịch vụ Cloud Run với các dịch vụ khác — ví dụ: để cung cấp giao tiếp đơn giản, hiệu suất cao giữa các microservices nội bộ. gRPC là một lựa chọn tốt khi bạn:

  • Muốn giao tiếp giữa các microservices nội bộ
  • Hỗ trợ tải dữ liệu cao (gRPC sử dụng bộ đệm giao thức, nhanh hơn tới bảy lần so với các cuộc gọi REST)
  • Chỉ cần một định nghĩa dịch vụ đơn giản
  • Sử dụng gRPC trực tuyến trong máy chủ gRPC của bạn để xây dựng các ứng dụng và API đáp ứng nhiều hơn

WebSockets: Các ứng dụng WebSockets được hỗ trợ trên Cloud Run mà không cần cấu hình bổ sung. Các trường hợp sử dụng tiềm năng bao gồm bất kỳ ứng dụng nào yêu cầu dịch vụ phát trực tuyến, chẳng hạn như ứng dụng trò chuyện.

Kích hoạt từ Pub / Sub: Bạn có thể sử dụng Pub / Sub để đẩy tin nhắn đến điểm cuối của dịch vụ Cloud Run, nơi các tin nhắn sau đó được gửi đến các vùng chứa dưới dạng yêu cầu HTTP. Các trường hợp sử dụng có thể bao gồm:

  • Chuyển đổi dữ liệu sau khi nhận được sự kiện khi tải tệp lên nhóm Bộ nhớ đám mây
  • Xử lý nhật ký bộ hoạt động Google Cloud của bạn với Cloud Run bằng cách xuất chúng sang Pub / Sub
  • Xuất bản và xử lý các sự kiện tùy chỉnh của riêng bạn từ các dịch vụ Cloud Run

Chạy dịch vụ theo lịch trình: Bạn có thể sử dụng Cloud Scheduler để kích hoạt dịch vụ Cloud Run theo lịch trình một cách an toàn. Điều này tương tự với việc sử dụng cron job. Các trường hợp sử dụng có thể bao gồm:

  • Thực hiện sao lưu thường xuyên
  • Thực hiện các tác vụ quản trị định kỳ, chẳng hạn như tạo lại sơ đồ trang web hoặc xóa dữ liệu, nội dung, cấu hình, đồng bộ hóa hoặc sửa đổi cũ
  • Tạo hóa đơn hoặc các tài liệu khác

Thực thi các tác vụ không đồng bộ: Bạn có thể sử dụng Cloud Tasks để sắp xếp trước một cách an toàn một tác vụ cần được xử lý không đồng bộ bởi dịch vụ Cloud Run. Các trường hợp sử dụng điển hình bao gồm:

  • Xử lý các yêu cầu thông qua các sự cố sản xuất bất ngờ
  • Làm giảm mức tăng đột biến về lưu lượng truy cập bằng cách trì hoãn công việc không hướng đến người dùng
  • Giảm thời gian phản hồi của người dùng bằng cách ủy quyền các hoạt động nền chậm, chẳng hạn như cập nhật cơ sở dữ liệu hoặc xử lý hàng loạt, được xử lý bởi một dịch vụ khác,
  • Giới hạn tỷ lệ cuộc gọi đối với các dịch vụ phụ trợ như cơ sở dữ liệu và API của bên thứ ba

Sự kiện từ Eventrac: Bạn có thể kích hoạt Cloud Run với các sự kiện từ hơn 60 nguồn Google Cloud. Ví dụ:

  • Sử dụng sự kiện Lưu trữ đám mây (thông qua Nhật ký kiểm tra đám mây) để kích hoạt quy trình xử lý dữ liệu
  • Sử dụng sự kiện BigQuery (thông qua Nhật ký kiểm tra đám mây) để bắt đầu xử lý xuôi dòng trong Cloud Run mỗi khi hoàn thành công việc

Cloud Run khác với Cloud Functions như thế nào?

Cloud Run và Cloud Functions đều là các dịch vụ được quản lý hoàn toàn chạy trên cơ sở hạ tầng không máy chủ của Google Cloud, tự động mở rộng quy mô và xử lý các yêu cầu hoặc sự kiện HTTP. Tuy nhiên, chúng có một số khác biệt quan trọng:

  • Cloud Functions cho phép bạn triển khai các đoạn mã (chức năng) được viết bằng một nhóm ngôn ngữ lập trình hạn chế, trong khi Cloud Run cho phép bạn triển khai hình ảnh vùng chứa bằng ngôn ngữ lập trình bạn chọn.
  • Cloud Run cũng hỗ trợ việc sử dụng bất kỳ công cụ hoặc thư viện hệ thống nào từ ứng dụng của bạn; Chức năng đám mây không cho phép bạn sử dụng các tệp thực thi tùy chỉnh.
  • Cloud Run cung cấp thời gian chờ yêu cầu dài hơn lên đến 60 phút, trong khi với Chức năng đám mây, thời gian chờ yêu cầu có thể tới 9 phút.
  • Cloud Functions chỉ gửi một yêu cầu tại một thời điểm cho mỗi phiên bản chức năng, trong khi theo mặc định, Cloud Run được định cấu hình để gửi nhiều yêu cầu đồng thời trên mỗi phiên bản vùng chứa. Điều này rất hữu ích để cải thiện độ trễ và giảm chi phí nếu bạn đang mong đợi số lượng lớn.

Định giá

Cloud Run có gói sử dụng miễn phí phong phú và thanh toán theo mỗi lần sử dụng, có nghĩa là bạn chỉ trả tiền trong khi một yêu cầu đang được xử lý trên phiên bản vùng chứa của bạn. Nếu nó không hoạt động và không có lưu lượng truy cập, thì bạn không phải trả bất kỳ khoản nào.

Đọc thêm các bài viết khác về Google Cloud Platform của CloudAZ tại đây.

Chức năng này đã bị chặn