16 điểm bởi xguru 2020-12-17 | 4 bình luận | Chia sẻ qua WhatsApp

Câu chuyện chuyển đổi số của một tòa soạn báo 130 năm tuổi

G1. 2008~2014: Tập trung vào gợi ý tin tức dựa trên các bài viết đã đọc. Dựa trên SQL Server

G2. 2014~2016: Triển khai ETL. Phân tích dữ liệu quy mô lớn và những câu hỏi mới, khối lượng dữ liệu tăng lên

→ SQL Server trở thành nút thắt cổ chai. Chuyển sang Redshift + ETL Framework

→ Tự động hóa việc lập lịch để chạy SQL vài lần mỗi ngày

→ Hỗ trợ các mô hình dữ liệu phức tạp bằng SQL + Python

G3. 2016~2018: Khởi đầu của big data @ FT

→ Mục tiêu là giảm tối đa độ trễ dữ liệu. Data Ingestion chỉ diễn ra một lần mỗi ngày (24h). Cần giảm thời gian này để phản ứng nhanh hơn với xu hướng

→ Phát triển thư viện tracking riêng có thể gửi toàn bộ tương tác của độc giả

→ Mọi event đi qua AWS SNS → SQS → Kinesis → Parquet → Redshift

→ Tạo server NodeJS để xử lý Raw Event, enrich event bằng cách kết hợp dữ liệu nội bộ và bên ngoài rồi đưa lên Kinesis

→ Dùng Kinesis Firehose để chuyển event thành CSV và lưu vào S3

→ Do xảy ra tình trạng trùng lặp event, họ tạo một cụm Redshift riêng để xử lý việc này, nhưng điều đó làm tăng độ trễ

G4. 2019: Rebuild nền tảng với trọng tâm là bổ sung giá trị kinh doanh

→ Muốn biến nền tảng dữ liệu thành PaaS

→ Áp dụng Kubernetes. Từ ECS sang EKS

→ Áp dụng Airflow

→ AWS SNS → SQS → Kinesis → Parquet → Airflow → Redshift

G5. 2020: Giờ là thời đại của dữ liệu thời gian thực

→ G4 đã tốt nhưng vẫn chưa thể làm realtime

→ Chuyển từ cấu hình phức tạp của SNS, SQS, Kinesis sang Kafka (Amazon MSK)

→ Nền tảng stream processing là Apache Spark

→ kafka → spark → parquet(delta lake, redshift) ↔ airflow

→ Áp dụng Apache Avro để xác thực dữ liệu: Data Contract

→ Dùng Presto để query Redshift, S3, Kafka, v.v.

Kế hoạch sắp tới

→ Hiện tại dữ liệu đi vào từ 3 component là Airflow, Spark, Kafka; dự định sẽ chuyển sang dựa trên CDC (Change Data Capture)

→ Thay đổi để mọi người đều có thể truy cập dữ liệu thời gian thực. Cải thiện Data UI để có thể xử lý stream bằng drag & drop

4 bình luận

 
kbumsik 2020-12-17

Ôi, mình thích những bài blog như thế này. Có thể thấy những trăn trở qua từng thế hệ kiến trúc. Hóa ra ngay cả các tòa soạn báo cũng thiết kế nền tảng dữ liệu ở quy mô như vậy.

 
kbumsik 2020-12-17

Dù sao thì họ đã nối theo kiểu SQS -> vòng lặp Nodejs -> Kinesis nhỉ. Mình cũng tò mò không biết có thể gói gọn chỉ bằng mỗi Kinesis thôi không. Vì mình vẫn chưa thật sự rành AWS lắm T_T

 
cbbatte 2020-12-17

Cảm ơn bạn đã tóm tắt bài viết rất hay!

 
xguru 2020-12-17

Nếu muốn xem giải thích về các thuật ngữ xuất hiện ở đây,

hãy tham khảo bài viết trên và video GeekNews trên YouTube "Tìm hiểu về hạ tầng dữ liệu hiện đại"

Ngoài ra, hãy tham khảo thêm câu chuyện của New York Times, một trường hợp thành công tương tự trong chuyển đổi số

New York Times không thất bại - NYT đã thành công trong số hóa như thế nào