Cloudflare Blog
75

Sản phẩm

Cloudflare ra mắt API cho MoQ: Tự thiết lập relay riêng biệt và kiểm soát quyền truy cập

(giờ Việt Nam)

Tóm tắt AI

Cloudflare giới thiệu API mới cho phép người dùng tự tạo các relay Media over QUIC (MoQ) biệt lập, giúp kiểm soát linh hoạt quyền xuất bản và xem nội dung trong thời gian thực.

Bản dịch AI

An API for MoQ: provision your own isolated relays

Năm ngoái, chúng tôi đã kích hoạt Media over QUIC (MoQ) trên mọi máy chủ Cloudflare và mở mạng lưới để bất kỳ ai cũng có thể thử nghiệm. Nó cung cấp một điểm cuối MoQ toàn cầu, nhưng chưa có sự cô lập và các kiểm soát truy cập cần thiết để vận hành một ứng dụng.

Hôm nay, chúng tôi bổ sung các kiểm soát truy cập và cô lập đó. API cung cấp MoQ mới cho phép bạn tạo một relay cô lập cho ứng dụng của mình và cấp các thông tin xác thực riêng biệt cho nhà xuất bản (publisher) và người đăng ký (subscriber). Các relay bạn tạo sẽ khả dụng trên toàn bộ mạng lưới của Cloudflare chỉ trong vài giây mà không cần phải triển khai, định cỡ hay cân bằng tải máy chủ. Cloudflare hiện hỗ trợ các phiên bản draft-14 và draft-16 của giao thức MoQ Transport với hỗ trợ xác thực.

Bạn có thể tạo các relay thông qua API và bảng điều khiển Cloudflare. Chúng hoàn toàn miễn phí sử dụng trong giai đoạn beta.

Tóm tắt về QUIC trên MoQ

MoQ (viết tắt của Media over QUIC) là một giao thức mở mới đang được phát triển tại Internet Engineering Task Force (IETF), cơ quan tiêu chuẩn hóa cũng đã chuẩn hóa HTTP, TLS và QUIC. Nó đang được phát triển công khai và sẽ trở thành một tiêu chuẩn công cộng miễn phí (một RFC) mà bất kỳ ai cũng có thể triển khai. Không một công ty đơn lẻ nào sở hữu nó.

MoQ là một hệ thống xuất bản/đăng ký (publish/subscribe). Một nhà xuất bản gửi đi các luồng dữ liệu có tên, và người đăng ký yêu cầu các luồng đó theo tên. Ở giữa họ là các relay, vốn chỉ là các máy chủ CDN sao chép mỗi luồng đến tất cả những ai muốn nhận. Một relay không bao giờ cần phải xem nội dung bên trong dữ liệu mà nó chuyển tiếp, vì vậy một nhà xuất bản có thể tiếp cận lượng khán giả lớn mà không cần tự mình xử lý việc phân phối (fan-out).

Vì các relay không quan tâm đến nội dung dữ liệu, cùng một giao thức có thể truyền tải nhiều thứ mà trước đây mỗi loại cần một hệ thống riêng: video trực tiếp, cuộc gọi video, nhắn tin độ trễ thấp, và nhiều hơn nữa. Nó chạy trên QUIC, giao thức vận chuyển dưới HTTP/3, giúp duy trì độ trễ thấp.

Kết quả thực tế là bạn không cần phải xây dựng và vận hành đội ngũ máy chủ chuyên dụng của riêng mình. Bạn xuất bản lên CDN thông qua một API đơn giản và đạt được cả độ trễ thấp lẫn quy mô lớn với chi phí thấp hơn nhiều.

Chúng tôi đã đến đây như thế nào: bản xem trước mở MoQ

Năm ngoái, chúng tôi đã ra mắt mạng lưới relay MoQ toàn cầu đầu tiên: mọi máy chủ Cloudflare tại hơn 330 thành phố đã trở thành một relay MoQ, miễn phí và mở cho bất kỳ ai. Vì các điểm cuối này không yêu cầu xác thực, chúng rất lý tưởng cho việc kiểm thử giao thức và phát triển ứng dụng khách. Hơn 1.000 ứng dụng khách duy nhất vẫn kết nối mỗi ngày để thử nghiệm với chúng.

Nhưng một relay không xác thực thì không phù hợp cho môi trường sản xuất, vì bạn không thể kiểm soát ai là người xuất bản và ai là người đăng ký. Điều đó loại trừ bất kỳ ứng dụng nào cần tính bảo mật, kiểm soát truy cập hoặc sự phân tách rõ ràng giữa vai trò nhà xuất bản và người đăng ký. Hãy lấy ví dụ một trang web đấu giá trực tiếp, nơi các mức giá phải đến tay người đấu giá trong vài mili giây. MoQ là một lựa chọn phù hợp, nhưng nhà xuất bản và người đăng ký cần các quyền khác nhau, để thông tin xác thực của người xem không thể bị lợi dụng để chiếm quyền các luồng của nhà xuất bản.

Relay trên mạng lưới Cloudflare MoQ là gì?

Trong hầu hết các triển khai MoQ hiện nay, một relay là một máy chủ chuyên dụng hoặc một tiến trình chuyên dụng trên một máy chủ chia sẻ. Việc mở rộng kiến trúc này đồng nghĩa với việc chạy thêm nhiều thực thể, gán ứng dụng khách cho chúng và thêm bộ cân bằng tải khi nhu cầu thay đổi. Đây không phải là cách vận hành của bất kỳ dịch vụ Cloudflare nào, bao gồm cả dịch vụ Realtime SFU WebRTC của chúng tôi.

Việc cung cấp (provisioning) một relay không khởi chạy máy ảo, container hay tiến trình chuyên dụng. Thay vào đó, nó tạo ra một phạm vi cô lập trên mạng lưới toàn cầu hiện có.

Phạm vi đó tách biệt các không gian tên (namespaces), luồng (tracks) và đối tượng của bạn khỏi những thứ thuộc về các relay khác. Nó cũng xác định ai có thể tham gia vào phạm vi đó và liệu họ có thể xuất bản hay đăng ký hay không. Các ứng dụng khách kết nối với điểm cuối Anycast, và Cloudflare xử lý việc định tuyến chúng trên toàn mạng lưới.

Nếu bạn đã quen với lưu trữ web, việc tạo một relay Cloudflare giống như thêm một virtual host hơn là khởi chạy một máy chủ web mới. Vì cơ sở hạ tầng đã đang chạy, API cung cấp sẽ thêm cấu hình và thông tin xác thực cho ứng dụng của bạn. Điều này giúp relay khả dụng ngay lập tức mà không cần chọn khu vực, ước tính dung lượng hay thiết lập bộ cân bằng tải.

API mặt phẳng điều khiển (control plane) cho MoQ tại Cloudflare

API cung cấp là một mặt phẳng điều khiển: nó quản lý các relay và các token được sử dụng để truy cập chúng, và nó không bao giờ chạm vào nội dung truyền thông chảy qua chúng.

Có hai loại tài nguyên.

Mỗi token được giới hạn cho các thao tác mà một ứng dụng khách cần, có thể được đặt thời hạn và có thể bị thu hồi riêng lẻ. Điều đó cho phép bạn cấp chính xác quyền truy cập mà một ứng dụng khách nên có, và thu hồi lại sau đó mà không làm gián đoạn bất kỳ ai khác.

Hiện tại, mỗi token áp dụng cho toàn bộ một relay và cho phép xuất bản, đăng ký hoặc cả hai. Chúng tôi đang làm việc trong IETF và cộng đồng MoQ rộng lớn hơn về một cơ chế phong phú hơn phù hợp với tất cả mọi người. Nếu bạn có ý kiến, hãy cho chúng tôi biết tại [email protected].

Cung cấp một relay

Bạn có thể cung cấp một relay theo hai cách: bằng HTTP API và trong bảng điều khiển Cloudflare.

Với API

Việc tạo một relay chỉ cần một lệnh gọi API duy nhất và chỉ cần một cái tên:

Cloudflare trả về một ID relay và hai token mặc định: Token đầu tiên có thể xuất bản và đăng ký, và token thứ hai chỉ có thể đăng ký.

Để cấp cho ứng dụng khách quyền truy cập hạn chế hơn, hãy thêm nhiều token hơn. Đây là một token chỉ đăng ký dành cho người xem sẽ hết hạn vào đầu năm 2027:

Trong bảng điều khiển Cloudflare

Bạn cũng có thể tạo một relay trong bảng điều khiển:

Truy cập Media > Realtime > MoQ Relay. Chọn Create relay, đặt tên cho nó, sau đó xác nhận.

Kết nối nhà xuất bản và người đăng ký

Bạn có thể tạo và quản lý các token thông qua API hoặc bảng điều khiển, giống như cách bạn làm với chính relay đó. Cấp cho nhà phát sóng của bạn token xuất bản-và-đăng ký và cho người xem của bạn token chỉ-đăng ký. Mỗi ứng dụng khách gửi token của nó khi mở một phiên MoQ, và relay sẽ thực thi những gì token đó được phép làm.

Token được truyền trong đường dẫn URL. Ví dụ, với các công cụ mã nguồn mở moq-rs, một nhà phát sóng có thể xuất bản một luồng MP4 phân mảnh từ ffmpeg:

Một người xem kết nối với moq-sub:

Relay đọc token khi phiên làm việc mở và kiểm tra xem thao tác được yêu cầu có được phép hay không.

Những gì chúng tôi đã thay đổi để hỗ trợ draft-16

API cung cấp chỉ là một phần của những gì mới. Bản thân giao thức vận chuyển MoQ đang tiến triển nhanh chóng, và Cloudflare hiện hỗ trợ draft-16 của đặc tả MoQ IETF trong các relay của mình. Bản dự thảo này bổ sung hai tính năng liên quan đến việc xuất bản và đăng ký.

PUBLISH hiện cho phép nhà xuất bản gửi một luồng (track) đến relay trước khi người xem yêu cầu nó. Nếu không có PUBLISH, yêu cầu đăng ký đầu tiên phải đi qua chuỗi relay đến nhà xuất bản trước khi nhà xuất bản bắt đầu gửi. Với PUBLISH, relay có thể đã nhận được luồng khi người xem đầu tiên kết nối.

SUBSCRIBE_NAMESPACE cho phép người đăng ký yêu cầu mọi luồng được thông báo dưới một không gian tên thay vì yêu cầu từng luồng riêng lẻ. Việc đăng ký cũng bao gồm các luồng được thêm vào sau đó, chẳng hạn như một phiên bản video hoặc luồng âm thanh mới được giới thiệu trong quá trình phát trực tiếp.

CloudflareMoQAPIStreamingHạ tầng mạng
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Cloudflare Blog. Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.