Trong kỷ nguyên số, dữ liệu là nguồn sống, là tiêu chí giúp thay đổi…
Cloud Run: điều mà bạn nên biết về serverless HTTP containers
Mindful Containers là một công ty hư cấu đang tạo ra các ứng dụng microservice được đóng gói. Họ cần một fully managed compute environment for deploying and scaling serverless containerized microservices. Vì vậy, họ đang xem xét Cloud Run.
Họ hào hứng với Cloud Run 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 is a fully-managed compute environment for deploying and scaling serverless containerized microservices.”
Cloud Run là gì?
Cloud Run là một môi trường quản lý máy chủ dành cho triển khai và phát triển trên những serverless HTTP containers mà không cần lo lắng về việc cung cấp machines,, cấu hình cluster hoặc autoscaling.
- No vendor lock-in – Vì Cloud Run lấy các containers OCI tiêu chuẩn và triển khai tiêu chuẩn Knative API Serving, bạn có thể dễ dàng chuyển port các ứng dụng của mình sang on-premises hoặc bất kỳ môi trường đám mây nào khác.
- Fast autoscaling – 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 Kubernetes Cluster 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.
- Split traffic – 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 blue/green.
- Custom domains – 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.
- Automatic redundancy – Cloud Run cung cấp khả 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 / hoặc sử dụng thư viện nhị phân mà bạn chọn . Sau đó, đẩy nó lên Cloud Build để tạo một container build. Với một lệnh duy nhất— “gcloud run deploy” —bạn sẽ chuyển từ a container image đế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à auto-scales theo yêu cầu.
Cloud Run hoạt động như thế nào?
Dịch vụ Cloud Run có thể được gọi 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 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:
- Custom RESTful web API
- Private microservice
- HTTP middleware or reverse proxy for your web applications
- Prepackaged web application
gRPC: Bạn có thể sử dụng gRPC to connect Cloud Run dịch vụ 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 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 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 mà bạn không muốn viết đầy đủ a full client library
- Sử dụng streaming gRPCs 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 WebSockets applications đượ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 streaming service, chẳng hạn như ứng dụng trò chuyện.
Trigger from Pub/Sub: Bạn có thể sử dụng Pub/Sub to push messages đến điểm cuối của dịch vụ Cloud Run, nơi các thông báo 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ể xảy ra bao gồm:
- Chuyển đổi dữ liệu sau khi nhận được event khi tải tệp lên Cloud Storage bucket.
- 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
- Publishing và xử lý các event tùy chỉnh của riêng bạn từ các dịch vụ Cloud Run
Running services on a schedule: Bạn có thể sử dụng Cloud Scheduler to securely trigger a Cloud Run service on a schedule . Đ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ể có 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ị lặp lại, chẳng hạn như tạo lại sơ đồ trang web hoặc xóa dữ liệu cũ, nội dung, cấu hình, đồng bộ hóa hoặc sửa đổi
- Tạo hóa đơn hoặc tài liệu khác
Thực hiện các tác vụ không đồng bộ: Bạn có thể sử dụng Cloud Tasks để bảo mật xếp hàng đợi một tác vụ đượ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:
- Handling requests through unexpected production incidents
- Smoothing traffic spikes by delaying work that is not user-facing
- Reducing user response time by delegating slow background operations, such as database updates or batch processing, to be handled by another service,
- Limiting the call rate to backend services like databases and third-party APIs
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 Cloud Storage event (via Cloud Audit Logs) để kích hoạt quy trình xử lý dữ liệu
- Sử dụng BigQuery event (via Cloud Audit Logs) để bắt đầu downstream processing trong Cloud Run mỗi khi hoàn thành công việc
Cloud Run khác với Cloud Function 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ố điểm khác biệt quan trọng:
- Cloud Functions cho phép bạn triển khai các đoạn mã (hàm) đượ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 các 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; Cloud Functions 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 yêu cầu thời gian chờ dài hơn lên đến 60 phút, trong khi với Cloud Functions, yêu cầu thời gian chờ có thể được đặt cao 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 function instance, 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 container instance. Đ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 đi kèm a generous free tier và trả tiền cho mỗi lần sử dụng, có nghĩa là bạn chỉ trả tiền trong khi 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ó nhàn rỗi và không có lưu lượng truy cập, thì bạn không phải trả bất cứ điều gì.
Kết luận
Sau khi tìm hiểu về khả năng dễ thiết lập, khả năng mở rộng và quản lý của Cloud Run, nhóm Mindful Containers đang sử dụng nó để triển khai các dịch vụ vi mô không trạng thái. Nếu bạn muốn tìm hiểu thêm, hãy xem tài liệu.
Nguồn: Gimasys