Từ Data Stack đến Data Platform
Ở bài trước mình nói về việc Data Stack ngày càng phức tạp.
Từ Data Warehouse → Data Lake → Lakehouse, chúng ta có ngày càng nhiều component:
Object Storage + Spark + Trino + Kafka + Iceberg + Airflow + Catalog...
Mỗi component đều giải quyết rất tốt một phần của bài toán.
Nhưng với người sử dụng, họ thường không quan tâm hệ thống phía dưới có bao nhiêu component.
Họ chỉ muốn một nơi để:
- Viết và chạy data workload
- Query dữ liệu
- Quản lý dataset
- Theo dõi job
- Phân quyền và kiểm soát access
Và đây chính là lúc khái niệm Data Platform bắt đầu khác với một Data Stack.
1. Databricks thực ra đã giải quyết bài toán này
Nhìn vào Databricks sẽ thấy một hướng tiếp cận khá rõ.
Người dùng không cần tự ghép từng thành phần rồi tự xây thêm một UI để quản lý chúng.
Họ có một nơi để:
- Viết notebook
- Chạy Spark
- Chạy SQL
- Tạo workflow
- Quản lý data
- Phân quyền
- Theo dõi workload
Các technology phía dưới vẫn rất phức tạp.
Nhưng độ phức tạp được gom lại phía sau Platform.
Đây chính là khác biệt khá lớn giữa:
một Data Stack
và
một Data Platform.
2. Nhưng Enterprise lại có một bài toán khác
Không phải doanh nghiệp nào cũng có thể bắt đầu từ con số 0 và đưa toàn bộ workload vào một platform duy nhất.
Một doanh nghiệp có thể đã có:
On-prem Kubernetes + Spark + Trino + Kafka + MinIO
Trong khi một số workload khác đang chạy trên:
AWS + S3 + EKS
Hoặc một team đang dùng Spark, team khác lại cần Trino, và sau này có thể thêm Flink cho streaming.
Lúc này câu hỏi không còn đơn giản là:
“Dùng Data Platform nào?”
Mà là:
“Làm sao quản lý những thứ đang có thành một Platform thống nhất?”
3. Platform không nhất thiết phải thay thế Data Stack
Theo mình đây mới là hướng thú vị.
Không nhất thiết phải viết lại Spark.
Không cần thay Trino bằng một query engine mới.
Không cần bỏ Kafka hay Iceberg.
Thay vào đó, có thể xây một lớp ở phía trên để kết nối chúng lại:
Connect → Deploy → Access → Govern → Monitor
Người dùng nhìn thấy một Platform.
Bên dưới Platform có thể là nhiều engine và nhiều technology khác nhau.
Infrastructure cũng có thể khác nhau:
On-prem / Private Cloud / Public Cloud / Hybrid
nhưng cách người dùng sử dụng Platform vẫn có thể tương đối thống nhất.
Vì vậy, mình nghĩ Data Platform trong tương lai không nhất thiết phải là:
“Một bộ tool hoàn toàn mới.”
Nó có thể đơn giản hơn:
“Một lớp biến những tool đang có thành một hệ thống có thể sử dụng như một Platform.”
Mình đã mất khá nhiều thời gian trong gần 2 năm qua để tìm hiểu, build và thử nghiệm những bài toán xoay quanh Data Platform theo hướng này.
Có khá nhiều thứ mình từng nghĩ là đúng, sau khi triển khai thực tế mới thấy... không hẳn.
Nên series này mình muốn chia sẻ dần những thứ mình đã thử, những trade-off gặp phải, và cả những thứ không nên làm khi xây Data Platform.
Và đây cũng là câu hỏi mình muốn đi tiếp trong series này:
“Nếu bên dưới đã có rất nhiều Open Source component mạnh, vậy chúng ta thực sự còn thiếu gì để biến chúng thành một Data Platform?”
Có lẽ câu trả lời không nằm ở việc chọn thêm một tool.
Mà nằm ở lớp kết nối và vận hành phía trên những tool đó.
Ở bài tiếp theo, mình sẽ thử đi sâu hơn vào chính bài toán này.

إرسال تعليق