Khi nhắc đến một hệ thống stream video, chúng ta thường sẽ nghĩ đến việc lưu trữ video trên một kho storage nào đó, ví dụ như AWS S3, và khi bấm “Play” thì thông qua url, video sẽ truyền trực tiếp từ S3, qua internet, đến thẳng thiết bị của bạn. Cách làm này hoàn toàn hợp lí, cho một ứng dụng nhỏ. Tuy nhiên với một hệ thống toàn cầu có hơn 110 triệu subscribers, trên 200 nước, 1 tỉ giờ stream video mỗi tuần, chiếm 37% lưu lượng internet nước Mĩ (dựa trên dữ liệu 2017), cách hoạt động của Netflix phức tạp và thú vị hơn chúng ta tưởng nhiều.
Tuy bài viết được tác giả phân tích và giải thích rất chi tiết, chúng ta có thể tóm gọn lại như sau:
- Netflix có thể chia làm 3 phần: backend, client, và CDN ở giữa.
- Netflix chỉ hoạt động trên 2 cloud: AWS và Netflix Open Connect, một hệ thống CDN toàn cầu của riêng Netflix.
- Mọi thứ trước khi nhấn Play được xử lí trên AWS, bao gồm khâu chuẩn bị, xử lí data và nhận request từ clients.
- Mọi thứ sau khi nhấn Play được xử lí trên Open Connect.
- Tất cả video được stream từ một OCA ( Open Connect Appliance) đặt gần client từ Open Connect CDN.
- Netflix hoạt động trên 3 region AWS và có thể xử lí failure từ bất cứ region nào mà user không hề biết.
- Những video mới được biến đổi thành nhiều định dạng khác nhau. Netflix chọn ra định dạng thích hợp nhất cho client dựa trên loại thiết bị, chất lượng mạng, vị trí địa lí, và gói subscription.
- Hằng ngày, thông qua Open Connect, Netflix phân tán video khắp thế giới dựa trên dự đoán user trên mỗi vùng sẽ muốn xem video.
- Khi bạn nhấn Play, client gửi một play request lên Netflix Playback Apps chạy trên AWS.
- Netflix kiểm tra bản quyền và quyền truy cập của bạn.
- Playback Apps trả về list các URLs cho khoảng 10 OCA servers đc cho là tốt nhất và nhanh nhất cho client.
- Client chọn ra OCA nào để dùng, bằng cách liên tục test chất lượng kết nối tới mỗi OCAs, và chọn ra cái nhanh nhất và đáng tin cậy nhất. Quá trình test này diễn ra liên tục trong quá trình stream video.
- Client chọn ra cách tốt nhất để nhận video từ OCA được chọn.
- Client kết nối tới OCA và bắt đầu stream video.
- Client liên tục điều chỉnh chất lượng video để phù hợp với tốc độ đường truyền, và thậm chí đổi qua OCA khác nếu chất lượng giảm quá nhiều.
Bài viết được tác giả giải thích rất kĩ thích, phù hợp cho cả đối tượng newbie về xử lí điện toán đám mây, và được xuất thành Kindle ebook riêng có cùng tên. Mời bạn truy cập bài viết gốc để nắm thêm chi tiết nhé.