#125 - Cơ chế tái cân bằng trong Kafka
Những bài viết hay
How we use HashiCorp Nomad — blog.cloudflare.com
HashiCorp Nomad là một hệ thống mã nguồn mở giúp điều phối container và các thành phần trong hệ thống phân tán - tương tự như Google Kubernetes nhưng gọn nhẹ và có thiết kế đơn giản, dễ vận hành hơn. Trong bài viết, Thomas Lefebvre - Lead SRE tại CloudFlare đã giới thiệu Nomad, lý do chọn sử dụng và cách team CloudFlare tận dụng nó để vận hành hệ thống trong các data center của họ.
How Online Primary Key Changes Work in CockroachDB — www.cockroachlabs.com
Trong một hệ thống distributed database, yếu tố data consistency luôn được cân nhắc đáp ứng hàng đầu. Hệ thống quy mô càng lớn, quá trình đồng bộ dữ liệu giữa những node trong cluster ngày càng phức tạp. Trong đó, bài toán primary key change là một trong những vấn đề quan trọng để có thể đồng bộ dữ liệu giữa các node. Nhóm phát triển CockroachDB giải quyết bài toán primary key change bằng mô hình máy trạng thái nhằm đồng bộ trạng thái hoạt động giữa các node với nhau.
Apache Kafka Rebalance Protocol
Apache Kafka là một streaming platform với mô hình publish/subscribe phân tán. Các Producer gửi messages vào topic được lưu trữ và quản lý bởi 1 cluster gồm các Kafka server (broker). Sau đó, các consumers sẽ subscribe và đọc các messages từ cluster.
Mỗi topic gồm nhiều partitions, Producer dựa vào key của message để xác định partition sẽ gửi tin nhắn vào. Trong khi đó, mỗi partition sẽ chỉ được đọc bởi 1 consumer.
Nhiều consumers của 1 topic sẽ tạo thành 1 consumers group. Với càng nhiều partitions, ta có thể tăng số consumers để tăng khả năng xử lý song song của consumer group. Ngoài ra, Kafka sẽ đảm bảo việc cân bằng tải (load balance) các partitions đến các consumers trong group. Nếu 1 consumer rời group hoặc vào lại, Kafka sẽ tái cân bằng lại group dựa vào Kafka Rebalance Protocol. Một số cách sử dụng giao thức tái cân bằng:
Confluent Schema Registry sử dụng rebalace protocol để chọn leader node
Kafka Connect sử dụng rebalace protocol để phấn bố các tasks và connectors một cách phù hợp trên các workers node
Kafka Stream sử dụng rebalace protocol để gán tasks và partitions đến các instances
Cơ chế rebalacing được cấu thành từ 2 protocols: Group Membership Protocol và Client Embedded Protocol.
Vậy làm sao để các protocol này kết nối với nhau? Khi 1 consumer rời hoặc tham gia 1 group, rebalancing sẽ hoạt động ra sao? Hay các group processes như Schema Registry hay Kafka Connect sử dụng rebalancing cho các mục đích khác nhau như thế nào?
Stop writing your own user authentication code — medium.com
Xây dựng hệ thống xác thực là công việc khó khăn và phức tạp. Nó không chỉ đơn giản tạo forms để người dùng thực hiện thao tác đăng ký và đăng nhập. Có nhiều vấn đề cần giải quyết:
Xây dựng các tính năng cơ bản như các quy tắc để đảm bảo mật khẩu của user đủ "mạnh", reset password v.v.
Xác thực đa nhân tố (MFA - Multi-factor Authentication) là tính năng đang dần phổ biến mà các hệ thống cần có.
Vì là cửa ngõ của ứng dụng do đó hệ thống xác thực rất dễ bị DDOS.
Cảnh báo người dùng về khả năng ai đó dùng tài khoản của bạn. Ví dụ, bạn đang đăng nhập tại HCM nhưng hệ thống ghi nhận tài khoản của bạn được đăng nhập sau đó 2 tiếng tại Singapore.
Một giải pháp khác bạn có thể tính đến là tích hợp hệ thống bên thứ 3 (identity-as-a-service). Bạn không cần phải giải quyết tất cả các vấn đề của hệ thống xác thực bảo mật, thay vào đó bạn có thể tập trung nguồn lực xây dựng ứng dụng mang lại nhiều giá trị cho người dùng. Có nhiều sự lựa chọn cho bạn như Auth0, Azure AD, Google Identity Platform, hay Okta.
Bài viết sau tác giả Alessandro Segala giải thích rõ hơn tại sao bạn nên sử dụng giải pháp identity-as-a-service.
Sản phẩm của người Việt
Kipacast - một sản phẩm mới của Kipalog team.
Tiếp nối thành công từ một nền tảng chia sẻ kiến thức qua hình thức "viết" - log, đội ngũ Kipalog đã cho ra đời một sản phẩm chia sẻ khác, nhưng qua hình thức "nói" - podcast.
Hai tuần một lần, Kipacast sẽ đăng tải một cuộc trò chuyện cùng một kĩ sư hay những người làm phần mềm, với mục tiêu đem lại cho khán thính giả một góc nhìn khác cũng như kiến thức từ những người trong ngành.
Mời các bạn cùng nghe & theo dõi https://kipacast.info!
Giới thiệu sách
The Analytics Setup Guidebook - Build scalable analytics & BI stacks in modern cloud era 📚 — www.producthunt.com
"The Analytics Setup Guidebook: Build scalable analytics & BI stacks in modern cloud era."
Cuốn sách là một crash-course để bạn có thể trở thành một "part-time data architect", giúp bạn hiểu được rõ hơn về landscape analytics phức tạp hiện nay.
Sách giải thích high-level overview của một hệ thống analytics như thế nào, các thành phần tương tác với nhau ra sao, và đi sâu vào đủ chi tiết của những thành phần cũng như best practices của nó.
Cuốn sách được viết dành cho các bạn hơi technical được nhận nhiệm vụ phụ trách hệ thống analytics của công ty mình. Bạn có thể là một data analyst đang làm BI, software engineer được kêu qua hỗ trợ làm data engineering, hoặc đơn giản là 1 Product Manager đang thắc mắc sao quy trình data công ty mình chậm quá...
Cuốn sách cũng có những phần chia sẻ nâng cao như Data Modeling, BI evolution phù hợp với các bạn đã có kinh nghiệm làm BI lâu đời.
Code & Tools
Quotes
First, solve the problem. Then, write the code.
― John Johnson