해리슨 블로그

[GCP] Cloud Run - Ra mắt dịch vụ đa vùng

  • Ngôn ngữ viết: Tiếng Hàn Quốc
  • Quốc gia: Tất cả các quốc giacountry-flag
  • CNTT

Đã viết: 2024-10-14

Đã viết: 2024-10-14 22:01

Tuần trước, GCP đã phát hành tính năng cho phép sử dụng Cloud Run trên nhiều vùng (multi-region) chỉ với một lần triển khai.

Tóm lại về dịch vụ đa vùng, giả sử chúng ta có các vùng Seoul - London - Las Vegas.

Trước đây, nếu muốn triển khai trên nhiều vùng, chúng ta phải sử dụng script để triển khai từng vùng riêng biệt. Còn tính năng mới này cho phép triển khai trên nhiều vùng chỉ với một script duy nhất.

Thực ra, trước khi công bố, tôi đã rất mong chờ tính năng này sau khi đọc tài liệu về dịch vụ sắp ra mắt, nhưng thực tế lại hơi thất vọng.

Việc triển khai trước đây cũng có thể thực hiện cùng lúc nhiều vùng bằng script, từng vùng một, nhưng vì chúng hoạt động song song nên thời gian không chênh lệch nhiều, vì vậy tôi không kỳ vọng nhiều vào phần này. Tuy nhiên, vì đây là triển khai cùng lúc nên không thể thiết lập các biến môi trường khác nhau cho từng vùng.

Vì vậy, tôi thường sử dụng tính năng cho phép các Cloud Run riêng lẻ kết nối với các cơ sở dữ liệu hoặc GCS khác nhau bằng cách sử dụng các giá trị khác nhau cho từng vùng, nhưng tính năng này lại gặp vấn đề.

Vấn đề thứ hai là khi triển khai liên tục, đôi khi chúng ta muốn xóa các phiên bản cũ, nhưng điều này cũng không thể kiểm soát riêng lẻ được. Các phiên bản cũ bị giữ ở chế độ chỉ đọc, không thể xóa từng phiên bản riêng biệt.

Có nhiều nhược điểm, nhưng ưu điểm là... có thể "gộp" nhiều Cloud Run lại thành một.

Đối với dịch vụ của chúng tôi, chúng tôi sử dụng nhiều Cloud Run và nhiều vùng, hiện tại khoảng 50, và khi hoàn thành các công việc hiện tại, con số này có thể lên tới 100. Nếu sử dụng dịch vụ đa vùng, chúng ta có thể giảm xuống còn 10-20. (Chỉ là ẩn đi thôi).

Đầu tiên, script như sau:


Sau khi chạy script trên, kết quả triển khai như sau:

[GCP] Cloud Run - Ra mắt dịch vụ đa vùng

Cloud Run

Đầu tiên, các Cloud Run cùng tên được triển khai ở mỗi vùng, và ở cấp cao nhất, một thư mục(?) cùng tên được tạo ra.

Giao diện đã gộp lại như sau:

[GCP] Cloud Run - Ra mắt dịch vụ đa vùng

Cloud Run -  Màn hình thu gọn

Thực tế, nếu số lượng ít thì không giúp ích nhiều, nhưng nếu giả sử triển khai trên 40 vùng thì sẽ rất hữu ích. (Dù không phải lúc nào cũng cần nhiều đến vậy...)

[GCP] Cloud Run - Ra mắt dịch vụ đa vùng

Đã được đánh dấu là chỉ đọc.

Hầu hết các chức năng, khi muốn chỉnh sửa, đều được đánh dấu là chỉ đọc. Tài liệu có đề cập đến tính năng này, nhưng có vẻ như API vẫn đang gặp vấn đề, chưa hoạt động đúng cách.

Tài liệu liên quan ở đây:

Tài liệu về gcloud ở đây. Hiện tại chỉ hỗ trợ phiên bản alpha/beta, chưa hỗ trợ phiên bản chính thức. Hơn nữa, tùy chọn --regions trong tài liệu trên thậm chí không có trong tài liệu. (Chắc sớm thôi sẽ cập nhật?)

Điều tôi muốn là... thực ra chẳng cần gì nhiều, chỉ cần cung cấp PORT như một biến môi trường mặc định thì sao? Tất nhiên, tôi biết rằng hiện tại cũng có nhiều thông tin được cung cấp thông qua máy chủ meta data, nhưng việc phải tự lấy thông tin bằng Fetch khá bất tiện. (Hơn nữa, điều đó cũng tiêu tốn tài nguyên...)

Vì đây vẫn là phiên bản xem trước, hy vọng sẽ ngày càng tốt hơn. (Phàn nàn ngay khi vừa ra mắt thì hơi...)

Bình luận0