#213 - Netflix đã cải tiến hệ thống Real-time Data Infrastructure như thế nào?
Xin chào các bạn,
Hiện tại Grokking đang tuyển thêm các thành viên mới như sau:
Và trong số này chúng ta cùng tới với các bài viết sau:
Hooks, kỹ thuật thay đổi các chức năng lõi của Postgres.
Sharding là gì, kỹ thuật này đang được sử dụng như thế nào?
Netflix đã cải tiến hệ thống Real-time Data Infrastructure như thế nào?
Lời giải bài toán Traping Rain Water.
Tìm hiểu về tác giả của chương trình AI đầu tiên.
Chúc các bạn có một ngày cuối tuần vui vẻ.
Những bài viết hay
The Four Innovation Phases of Netflix’s Trillions Scale Real-time Data Infrastructure
Trong bài viết này tác giả chia sẻ quá trình 6 năm làm việc tại Netflix ở 2 team là Real-time Data Infrastructure và sau đó là Stream Processing Engines.
Trong khoảng thời gian này, tác giả đã cùng với các đồng nghiệp của mình đạt được những kết quả nhất định như sau:
Phát triển số streaming data use case từ 0 lên hơn 2000.
Xây dựng các sản phẩm như Keystone, Mantis, quản lý Kafka platform. Các sản phẩm này cung cấp các giải pháp trong nhiều khía cạnh liên quan tới data ecosystem: Bao gồm truy vết dữ liệu, phân tích, vận hành và các bài toán về ML.
Họ cũng thành công trở thành công ty đầu tiên scale Kafka và Flink để handle 1 ngàn tỉ event mỗi ngày vào 2017 và tăng con số này lên gấp 20 lần trong năm 2021.
Tác giả chia quá trình làm việc ra thành 4 giai đoạn:
Phase 1: Rescue Netflix Logs From the Failing Batch Pipelines (2015)
Trong quá trình tăng tốc phát triển của Netflix, các quyết định kinh doanh và hoạt động phụ thuộc nhiều vào tốc độ logging dữ liệu. Vào năm 2015, các pipeline với Chukwa/Hadoop/Hive đã phải vật lộn để mở rộng quy mô.
Trong giai đoạn này, họ đã xây dựng một nền tảng streaming-first để thay thế các pipeline bị lỗi.
Vào thời điểm này Netflix có 60 triệu subscribers và đang mở rộng nhanh chóng. Netflix có khoảng 500 microservice và generating hơn 10PB data mỗi ngày trong ecosystem.
Thu thập các dữ liệu này phục vụ 2 mục đích chính cho Netflix như sau:
- Thông tin chi tiết để phân tích kinh doanh: Ví dụ tỉ lệ giữ chân người dùng, thời lượng trung bình, xu hướng, v.v...
- Thông tin chi tiết về hoạt động: Ví dụ số đo lượt xem trực tuyến mỗi giây, tình trạng của hệ thống v.v...
Giả sử chúng ta muốn biết thời gian trung bình mỗi session trên tổng số hàng trăm triệu user. Nếu lưu trữ dữ liệu trên một hệ thống row-oriented OLTP, sẽ dẫn tới việc cần phải scan qua toàn bộ table cũng như lock up database, do đó nhiều ứng dụng sẽ bị hoãn lại qua đó ảnh hưởng tới trải nghiệm người dùng.
Do đó các công việc phân tích này cần được xử lý tốt hơn qua một hệ thống OLAP, nên họ đã cần move log từ edge server đến data warehouse sử dụng OLAP system.
Chi tiết hơn về phase 1 cũng như 3 phase còn lại mời các bạn cùng đọc bài viết sau để tìm hiểu rõ hơn nhé.
(by lpv)
Hooks: The secret feature powering the Postgres ecosystem
Khi chúng ta nhắc tới khái niệm "extensible" trong Postgres có nghĩa là đề cập tới các API cấp thấp với khả năng thay đổi những chức năng lõi (core functionality) của cơ sở dữ liệu.
Trong bài viết này, chúng ta cũng khám phá một tính năng gọi là hooks, cho phép các lập trình viên không chỉ thêm những tính năng mới vào Postgres mà còn sửa đổi cách thực thi câu truy vấn cũng như các phân tích cú pháp dữ liệu (data parser).
Mời các bạn cùng đọc.
(by lpv)
Góc Database
How sharding a database can make it faster
Khi volume data của bạn đã đạt tới ngưỡng giới hạn trên database cluster, thì sharding là một trong những giải pháp để giải quyết vấn đề này. Phương pháp này không phải là 1 giải pháp quá "fancy" hay có những ưu điểm vượt trội nhưng có một sự hiệu quả nhất định. Gần đây phương pháp này đã có thêm những cải tiến mới (Ví dụ Distributed SQL với việc sử dụng và quản lý sharding dễ dàng hơn).
Sharding là một kỹ thuật chia dữ liệu thành các hàng và cột riêng biệt được tổ chức trên các database server instance riêng biệt để phân phối lưu lượng. Mỗi bảng nhỏ được gọi là một shard. Một số sản phẩm NoSQL như Apache HBase hoặc MongoDB có sử dụng shard và kiến trúc sharding cũng được tích hợp vào các hệ thống NewSQL.
Mời các bạn cùng đọc bài viết sau để hiểu rõ hơn về kỹ thuật này.
(by lpv)
Góc Lập Trình
Đề ra tuần này: Maximum Frequency Stack
https://leetcode.com/problems/maximum-frequency-stack/
Lời giải đề bài tuần trước:
Dựa vào đề bài, ta dễ dàng nhận ra 1 lời giải đơn giản cho bài toán này như sau: Duyệt lần lượt từng vị trí từ 0 đến n, lượng nước chứa được trong mỗi vị trí bằng với giá trị nhỏ nhất của cột cao nhất bên trái và cột cao nhất bên phải trừ đi độ cao của vị trí đó.
Tuy nhiên, lời giải trên có độ phức tạp thuật toán O(N^2). Thuật toán trên có thể được tối ưu thêm dựa vào chi tiết sau. Để ý rằng lượng nước chứa được trong mỗi vị trí chỉ phụ thuộc vào 1 trong 2 giá trị lớn nhất của mỗi bên. Chính vì vậy nếu ta sử dụng 2 biến đếm leftmax và rightmax để ghi nhớ 2 giá trị này, ta sẽ giảm được thời gian xử lý xuống O(N).
Sau đây là 1 lời giải tham khảo cho bài toán.
(by ndaadn)
History
Sinh vào ngày 19/03/1927, Allen Newell được biết tới là người đã viết ra chương trình AI đầu tiên (trước khi khái niệm AI ra đời). Ông là nhà nghiên cứu khoa học máy tính và tâm lý học nhận thức tại RAND Corporation và tại Đại học Carnegie Mellon. Ông đã đóng góp vào ngôn ngữ xử lý thông tin và hai trong số các chương trình AI sớm nhất, Logic Theory Machine và General Problem Solver (với Herbert A. Simon).
Ông đã được trao giải thưởng Turing cùng với Herbert A. Simon vào năm 1975 vì những đóng góp cơ bản của họ đối với trí tuệ nhân tạo và tâm lý học nhận thức của con người.
"Logic Theorist" đã chứng minh 38 trong số 52 định lý toán học cổ điển và thiết lập lĩnh vực lập trình heuristic.
(by lpv)
Code & Tools
Mantil: Build your AWS Lambda-based Go backends quicker than ever
Convoy: Fast and Secure Webhooks Service.
Góc Sponsors
Fossil Việt Nam, tiền thân là Misfit, giữ vị thế là Trung tâm Nghiên cứu và Phát triển Công nghệ Thiết bị đeo thông minh trực thuộc Fossil Group. Từ những ngày đầu thành lập, đội ngũ kỹ sư Việt đã thiết kế và xây dựng hệ sinh thái thiết bị đeo thông minh phục vụ cuộc sống của hàng triệu người toàn cầu. Chúng tôi tự hào là những nhà đổi mới luôn bứt phá giới hạn của công nghệ và thời trang, tập trung phát triển 3 nhóm sản phẩm chủ lực: thiết bị, ứng dụng, và dữ liệu trên đám mây.
ĐIỀU FOSSIL TỰ TIN MANG ĐẾN CHO BẠN?
Tham gia nghiên cứu và phát triển Thiết bị đeo thông minh hàng triệu người dùng trên toàn thế giới. Với Fossil, mỗi việc bạn làm đều có thể mang lại thay đổi cho cuộc sống của rất nhiều người.
Lộ trình nghề nghiệp đa dạng, bất kể bạn muốn quản lý đội ngũ hay tập trung phát triển chuyên môn kỹ thuật.
Cơ hội làm việc và học hỏi từ các kỹ sư Google, Qualcomm, Citizen, v.v.
Bảo hiểm sức khỏe cao cấp, thu nhập và phúc lợi cạnh tranh mang đến trải nghiệm làm việc toàn diện nhất.
Môi trường làm việc linh hoạt để bạn thỏa sức học hỏi, phát triển và tạo ra tác động tích cực!
Fossil Việt Nam đang mở ra cơ hội với hàng loạt vị trí hấp dẫn
(Cloud Engineer, Android Engineer, Software Architect), mời bạn tham khảo chi tiết công việc tại ĐÂY.
Kết nối với Fossil Việt Nam
Email tuyển dụng: people@fossil.com
Linkedin: https://www.linkedin.com/company/fossilvietnamcareers
Quotes
Developer accused of unreadable code refuses to comment.
unknown
Bạn đánh giá nội dung số newsletter này thế nào?
(1 = Rất tệ / 5 = Rất tốt)
Đánh giá của các bạn sẽ giúp chúng tôi liên tục cải thiện nội dung newsletter!