- Sử dụng Google Cloud Storage và Cloud Run để tận dụng CDN - Phần 2
- Đây là bài viết thứ hai về cách xây dựng CDN bằng Google Cloud Storage và Cloud Run. Bài viết sẽ giải thích cách tối ưu hóa việc truyền tải hình ảnh và tệp văn bản, cũng như cách phân phối tài nguyên tới 8 vùng trên toàn cầu để giảm độ trễ.
Bài viết được dịch bởi AI.
Bài viết được tóm tắt bởi durumis AI
- Bài viết giải thích cách sử dụng Cloud Run để tối ưu hóa các tệp hình ảnh được tải lên Google Cloud Storage và chuyển đổi chúng sang nhiều định dạng khác nhau.
- Sử dụng các sự kiện tải lên và xóa tệp của Cloud Storage để chuyển đổi hình ảnh sang AVIF, WebP và nén tệp văn bản, đồng thời đồng bộ hóa việc sao chép và xóa đến các vùng khác.
- Điều này cho phép quản lý hiệu quả việc tối ưu hóa hình ảnh và đồng bộ hóa tệp trong môi trường CDN và giới thiệu các nội dung tiếp theo sử dụng Google Cloud Load Balancer.
Trong bài viết trước, chúng ta đã thảo luận về việc sử dụng Cloud Run để truyền tải các tệp hình ảnh được đồng bộ hóa với GCS.
Vậy, trong phần cuối cùng của loạt bài về CDN này, chúng ta sẽ thảo luận về việc đồng bộ hóa và tối ưu hóa hình ảnh trên GCS.
Cloud Run về cơ bản hoạt động thông qua HTTP Hook, nhưng đó không phải là bộ kích hoạt sự kiện duy nhất.
Cloud Run
Khi cấu hình Cloud Run, bạn sẽ thấy một phần gọi là Trigger, và trong danh sách đó có Pub/Sub, Cloud Storage, Filestore và các mục khác. Ngoài HTTP được cung cấp theo mặc định, những mục còn lại là các sản phẩm được sử dụng phổ biến nhất, và hầu hết các sự kiện bạn có thể nghĩ đến đều nằm trong mục 'khác'. Đầu tiên, chúng ta hãy chọn sự kiện Cloud Storage để xem xét, và bạn sẽ thấy các loại sự kiện như khi tệp được thay đổi, khi tệp bị xóa, khi tệp được tạo, khi siêu dữ liệu của tệp được thay đổi, v.v.
Cloud Run Eventarc
Tại đây, chúng ta sẽ sử dụng hai sự kiện 'deleted' và 'finalized' để tạo Cloud Run, từ đó xử lý sự kiện khi tệp được tải lên hoặc xóa khỏi GCS.
Cloud Run cần xử lý các tác vụ chính sau:
- Khi tệp được tải lên, xác định loại tệp và thực hiện các quy trình sau:
- Nếu là tệp văn bản (css, js), hãy nén tệp bằng br và gzip.
- Nếu là tệp hình ảnh, hãy sử dụng sharp npm để tạo các định dạng đã được chuyển đổi sang avif và webp.
- Sao chép tệp mới được tạo đến các 'khu vực' khác nhau được chỉ định.
- Khi có yêu cầu xóa tệp, hãy xóa cùng lúc tệp đó ở các khu vực khác.
Về cơ bản, chỉ cần xử lý tốt 3 tác vụ chính này (chuyển đổi, sao chép, xóa), việc đồng bộ hóa tệp sẽ không quá phức tạp, ngay cả khi có nhiều khu vực. Trong mã, bạn chỉ cần sử dụng hai npm, đó là phần kết nối với GCS và sharp, để xử lý dễ dàng.
Như vậy, chúng ta đã hoàn thành loạt bài viết cơ bản về CDN.
Trong các bài viết tiếp theo, chúng ta sẽ thảo luận về GCLB (Google Cloud Loadbalancer).
Về cơ bản, các bài viết về CDN đương nhiên phải đề cập đến bộ cân bằng tải (LB), nhưng một số phần đã bị bỏ qua, chúng ta sẽ thảo luận chi tiết hơn trong các bài viết tiếp theo.
Cảm ơn bạn.