View profile

#162 - Quản lý chi phí hạ tầng dữ liệu tại Netflix

Revue
 
 

Grokking Newsletter

March 15 · Issue #163 · View online

Tuyển tập những bài viết hay cùng sự kiện bổ ích dành cho kĩ sư phần mềm tại Việt Nam.


Những bài viết hay
Pharos - Tìm kiếm các tài xế lân cận Pharos - Tìm kiếm các tài xế lân cận
Làm thế nào để trở thành Solution Architect
Quản lý chi phí hạ tầng dữ liệu tại Netflix
Góc Distributed System
Cùng xuất phát điểm là ELK như những công ty khác, Uber đã tiến hoá hệ thống Logging của họ như thế nào?
Uber sử dụng hệ thống ELK từ năm 2014 nhưng sớm nhận ra một số vấn đề khi hệ thống scale:
  • Log schema: engineers sử dụng cùng 1 field name với nhiều types khác nhau trong field values, dẫn tới type conflict trong elastic search.
  • Operational cost: Uber đã deploy hơn 20 cluster Elastic search và hơn 50 cluster Logstash cho mỗi region. Hệ thống càng lớn tần suất xảy ra sự cố càng nhiều dù cho nỗ lực automation tới cỡ nào.
  • Hardware cost: cho việc indexing fields trong Elastic Search.
  • Aggregation: Hơn 80% số query là aggregation về terms, histogram và percentile, trong khi Elastic Search không được design tốt cho fast aggregation query trên tập dữ liệu lớn. Ví dụ query bị timeout thường xuyên ở mức last 6h với 1.3TB dữ liệu log.
Uber đã cải tiến hệ thống Logging với những tiêu chí sau:
  • Functionalities: Schema-agnostic, hỗ trợ tốt aggregation query, hỗ trợ tốt multi-tenant và cross-tenant query
  • Efficiency and maintenance: hỗ trợ tốt deployment multi-tenant, giảm cost và sẵn sàng với việc scale 10 lần, tăng tính ổn định và đơn giản hoá việc vận hành.
  • Migrate dễ dàng từ hệ thống ELK cũ
Họ đã cải tiến thông qua sử dụng hệ thống ClickHouse (RDBMS) làm nền tảng lưu trữ log và xây dựng lớp abstraction bên trên để hỗ trợ schema-agnostic data model. Những cải tiến chính nằm ở table schema khi flatten raw JSON log giúp dễ dàng scale về tốc độ truy vấn lẫn deployment, log schema-free ingestion thông qua hệ thống kafka, xây dựng bộ công cụ query với type-aware thay thế cho bộ mặc định của ClickHouse, và Adaptive Indexing. Ngoài ra là các vấn đề về deployment multi-tenant, multi-region và việc migrate từ hệ thống ELK cũ qua hệ thống mới cũng được đề cập tới.
Cụ thể như thế nào mời bạn đọc bài viết chi tiết tại đây: https://eng.uber.com/logging/
Góc Database
Với xu hướng các dịch vụ tương tác trực tuyến ngày càng phát triển mạnh, các hệ thống kiến trúc truyền thống càng trở nên khó khăn hơn trong việc đáp ứng các yêu cầu về lưu trữ cho các nền tảng này. Đặc biệt là khi các nhu cầu này tạo ra những mâu thuẫn trong việc thiết kế hệ thống.
Cụ thể, một ứng dụng sử dụng MySQL làm cơ sở dữ liệu có thể rất tiện lợi và dễ dàng trong quá trình phát triển, tuy nhiên khi hệ thống cần mở rộng để phục vụ hàng triệu người dùng thì việc tái thiết kế lại hạ tầng lại khá tốn chi phí. Các hệ quản trị cơ sở dữ liệu quan hệ cung cấp nhiều tính năng hỗ trợ việc dựng sản phẩm nhanh chóng nhưng lại khó để mở rộng lên mức cho hàng trăm triệu người dùng. Các hệ thống NoSQL như BigTable, HBase hay Cassandra thì dễ dàng mở rộng, nhưng hạn chế về mặt API cũng như các model dữ liệu nhất quán lại gây cản trở trong quá trình phát triển ứng dụng. Ngoài ra, một bài toán nan giải khác phải đối mặt là quá trình sao lưu dữ liệu giữa các datacenter cách xa nhau nhưng vẫn phải đảm bảo độ trễ thấp.
Megastore là một hệ thống lưu trữ được phát triển để giải quyết những nhu cầu của các dịch vụ tương tác trực tuyến ngày nay, bao gồm: khả năng mở rộng, thuận tiện trong quá trình phát triển, độ trễ thấp, tính nhất quán của dữ liệu và tính khả dụng cao. Được kết hợp giữa khả năng mở rộng của hệ thống NoSQL và tính thuận tiện của hệ quản trị cơ sở dữ liệu quan hệ truyền thống, Megastore đảm bảo tính đồng nhất của dữ liệu cũng như độ khả dụng cao.
Nội dung của bài báo gồm có:
  1. Cơ chế phân vùng dữ liệu và thiết kế tối ưu phù hợp cho các ứng dụng tương tác trực tuyến quy mô lớn của Megastore.
  2. Thiết kế của data model và hệ thống lưu trữ cho phép việc xây dựng sản phẩm có tính khả dụng và mở rộng cao trở nên dễ dàng.
  3. Giải thích chi tiết và so sánh hiệu năng thực tế của các thuật toán sao lưu.
  4. Tổng hợp kinh nghiệm trong việc deploy hệ thống Megastore ở Google.
Code & Tools
This Week Sponsors
Remitano là một trong các sàn giao dịch P2P năng động tại nhiều quốc gia, Remitano cung cấp thị trường uy tín, an toàn tối đa và đơn giản cho hoạt động mua bán tiền mã hóa của hàng triệu khách hàng, với sản phẩm đầu tư đa dạng, giao dịch tức thời và đội ngũ hỗ trợ 24/7 bao gồm các chuyên gia ngân hàng có nhiều kinh nghiệm trong các sản phẩm tài chính, tiền điện tử, và hệ thống thanh toán, đảm bảo mang đến trải nghiệm tốt với mức phí thấp nhất cho người dùng.
Quotes
That’s what’s cool about working with computers. They don’t argue, they remember everything and they don’t drink all your beer.
- Paul Leary
Did you enjoy this issue?
If you don't want these updates anymore, please unsubscribe here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Powered by Revue
Charmington La Pointe, 181 Cao Thang, Dist 10, Ho Chi Minh city, Viet Nam