Data Mesh — A Data Movement and Processing Platform @ Netflix
Bài tóm tắt Netflix 2022 3. Quy mô lớn Độ khó: Trung bình
Netflix · 2022 · 3. Quy mô lớn · Độ khó: Trung bình — bài gốc
Bài tổng quan đầu của một series; chưa có số liệu quy mô. "Data Mesh" ở đây là tên một nền tảng của Netflix, khác với khái niệm tổ chức "data mesh" mà Grab dùng (Grab 2026).
Bối cảnh
- Thế hệ trước là Keystone (pipeline stream) phục vụ tốt nhiều nhu cầu, nhưng có những use case mới chưa phủ. Năm trước (2021), Data Mesh được giới thiệu như một sản phẩm pipeline stream được quản lý hoàn toàn cho CDC của Studio.
Thay đổi chính
- Định nghĩa rộng hơn: nền tảng chung để di chuyển và xử lý dữ liệu giữa các hệ của Netflix: nguồn không chỉ là DB, thêm connector (CockroachDB, Cassandra ngoài MySQL/Postgres qua DBLog), thêm phép xử lý (filter, projection, union, join).
- Control plane / data plane: Controller nhận yêu cầu (UI hoặc API khai báo), tính cấu hình cho từng resource, uỷ quyền vòng đời cho các microservice tương ứng; pipeline làm phần nặng.
- Thành phần:
- Connector nguồn: producer do nền tảng quản lý, đọc binlog và đẩy sự kiện CDC vào topic Kafka đứng trước nguồn; ứng dụng cũng có thể tự phát event qua thư viện chung (khi chưa có connector, hoặc muốn phát domain event không gắn với schema DB).
- Source: danh mục trung tâm dữ liệu miền để nhiều team dùng chung; một source có thể là kết quả của nhiều bước xử lý (ví dụ thực thể Movie đã làm giàu để index cho search).
- Processor: một job Flink, đơn vị logic tái sử dụng; có SDK cho người dùng nâng cao tự viết; đăng ký vào nền tảng thì có sẵn alert và dashboard mặc định.
- Transport: Kafka giữa các processor; topic chia sẻ được giữa pipeline; có theo dõi lineage.
- Schema là công dân hạng nhất: mọi event phải theo schema Avro định trước, vì chất lượng dữ liệu, lineage ở mức trường, và khám phá dữ liệu. Nền tảng kiểm tra tương thích, và khi schema nguồn đổi thì thử tự nâng cấp pipeline phía sau.
- Hướng tiếp: trở thành đường mặc định cho di chuyển dữ liệu, đạt ngang tính năng với Delta và Keystone để chuyển dần; gộp nhiều processor đơn giản vào một job Flink cho hiệu quả; thêm connector.
Vì sao
- Nhiều hệ chuyên biệt (Keystone, Delta) cho từng nhu cầu di chuyển dữ liệu dẫn tới nhu cầu một nền tảng chung với schema và lineage xuyên suốt (Pipeline dữ liệu và analytics, Nền tảng nội bộ cho service (đường ray chung)).
Bài học cho SWE
- Ép schema ngay từ đầu pipeline cho phép kiểm tra tương thích, lineage theo trường và tự nâng cấp consumer.
- Tách control plane (cấu hình, vòng đời) khỏi data plane (xử lý) cho nền tảng pipeline.
- Mỗi processor một job riêng dễ hiểu nhưng tốn tài nguyên; cân nhắc gộp khi quy mô lớn.
Liên quan
#Data Mesh#CDC#DBLog#Kafka#Flink#Avro#Schema evolution#Control plane#Data plane#Lineage#Keystone#Delta
Được nhắc tới trong
Chủ đề (3)
Công ty (1)