#93 - Lưu trữ 50 triệu event mỗi giây trong Elasticsearch như thế nào?
Để giúp cải thiện chất lượng nội dung của newsletter, mong bạn dành ít thời gian phản hồi cũng như đóng góp ý tưởng giúp team thông qua link khảo sát hàng tuần tại đây nhé.
Và cũng đừng quên đón đọc những bài viết hay được đăng mỗi ngày tại https://www.facebook.com/grokking.vietnam/
Những bài viết hay
Storing 50 million events per second in Elasticsearch — datadome.co
DataDome là một công ty an ninh mạng toàn cầu cung cấp giải pháp SaaS được thiết kế để bảo vệ các trang web của khách hàng.
Giải pháp của DataDome sử dụng Apache Flink để phân tích sự kiện theo thời gian thực nhằm phát hiện các mối đe dọa mới và Elaticsearch để lưu trữ các yêu cầu từ tất cả khách hàng.
Một vài con số thống kê: cụm của họ lưu trữ hơn 150TB dữ liệu, 15 nghìn tỷ sự kiện trong 60 tỷ document, trải đều trong 3 000 chỉ mục và 15 000 shard trên 80 node. Mỗi document lưu trữ 250 event trong field riêng biệt.
Mỗi ngày, trong thời gian tính phí cao nhất, cụm Elaticsearch của họ viết hơn 200 000 document mỗi giây và có tốc độ tìm kiếm hơn 20 000 request mỗi giây.
Eradicating Non-Determinism in Tests — martinfowler.com
Thử tưởng tượng hệ thống của bạn được bảo vệ bởi 1 hệ thống automated regression test suite với chất lượng và số lượng đáng tự hào. Tuy nhiên có những test case lâu lâu lại fail 1 cách rất ngẫu nhiên. Chúng là những Non-deterministic Test, và chỉ 1 số lượng rất nhỏ thôi cũng đủ để làm công sức của chúng ta đổ sông đổ bể. Trong bài viết sau Martin Fowler sẽ chỉ ra một số nguyên nhân phổ biến gây ra vấn đề Non-determinism này, cũng như cách để không mắc phải chúng.
Building a distributed time-series database on PostgreSQL — blog.timescale.com
TimescaleDB được phát triển dựa trên kiến trúc của PostgresSQL. Những RDBMS thì lại không được thiết kế phù hợp cho việc lưu trữ time serie data vì đặc điểm của dạng data này là heavy write và không có nhu cầu update, nhu cầu read cũng thấp. Đồng thời việc scale-out hệ thống lại rất phức tạp do cơ chế replication data. Do vậy, đội ngũ phát triển TimescaleDB đã đưa ra những nguyên tắc khi thiết kế database để phục vụ cho mục đích lưu trữ và phân tích time serie data. Họ lựa chọn giải pháp chia data thành từng chunk thay vì là shard. Lý giải nguyên tắc và chi tiết thiết kế được họ trình bày trong bài viết này. (Tham khảo khái niệm Chunk của TimescaleDB tại đây)
React Native at Airbnb: The Technology - Airbnb Engineering & Data Science - Medium — medium.com
Năm 2016, sau nhiều lần thử nghiệm với các công nghệ khác nhau thì Airbnb đã quyết định phát triển ứng dụng mobile của họ bằng React Native (RN) với mục tiêu: nâng cấp nhanh, đảm bảo hiệu năng và code một lần thay vì phải code native nhiều lần. Sau 2 năm phát triển, các kĩ sư ở đây đã nhận ra những lợi ích khi sử dụng RN, đồng thời cũng không ít những hạn chế.
Bạn có biết
DoH (DNS-over-HTTPS) là một cơ chế bảo mật thông tin truy vấn domain từ một client bất kỳ. DoH hoạt động tương tự như DNS, thông tin được tìm kiếm là một domain bất kỳ, kết quả nhận được cho client là IP address của domain đó. DoH sử dụng TCP protocol để truyền và nhận thông tin truy vấn DNS. Điểm khác biệt so với cơ chế truy vấn DNS thông thường là thông tin truy vấn DNS mà DoH nhận được encrypt và sẽ truyền đến DoH-compatible DNS (resolver) thông qua HTTPS connection trên port 443 thay vì là plaintext trên port 53. Nhờ vậy, thông tin truy vấn sẽ được bảo mật hơn.
Code & Tools
Tin tức khác
Google CEO Sundar Pichai on achieving quantum supremacy - MIT Technology Review — www.technologyreview.com
Vào thứ Tư vừa qua, trong một bài báo được xuất bản trên tạp chí Nature, các nhà nghiên cứu của Google tuyên bố đã lần đầu tiên đạt được "quantum supremacy". Máy tính lượng tử 53 bit của họ, được đặt tên là Sycamore, mất 200 giây để thực hiện một phép tính mà theo Google, siêu máy tính nhanh nhất thế giới hiện tại cần tới 10.000 năm.
Google is improving 10 percent of searches by understanding language context - The Verge — www.theverge.com
Google đang thay đổi thuật toán tìm kiếm cốt lõi.
Nó sẽ bắt đầu sử dụng BERT, mô hình ngôn ngữ tự nhiên mới nhất của Google, để cải thiện cách phân tích cú pháp của người dùng.
This week sponsor
KMS Technology
Thành lập năm 2009 với trụ sở chính tại Atlanta (US), KMS Technology cung cấp 3 dịch vụ chính: Gia công phần mềm (Software Outsourcing), đầu tư & phát triển sản phẩm công nghệ (Tech-Startup incubator), tư vấn dịch vụ giải pháp kỹ thuật. Với đội ngũ hơn 1000 nhân viên, KMS hướng đến khách hàng toàn cầu, từ các công ty startup đến các tập đoàn công nghệ lớn. Một số sản phẩm từ KMS đã được tín nhiệm trên thị trường thế giới: QASymphony, Katalon Studio, Kobiton. KMS Technology xây dựng một nơi làm việc năng động sáng tạo, chọn con người làm nền tảng văn hoá, nhiều năm liên tiếp nằm trong danh sách các nơi làm việc tốt nhất tại Việt Nam và Atlanta (Mỹ).
Góc tuyển dụng
Cơ hội việc làm tại KMS Technology:
Fresher Software/Test Engineer: http://bit.ly/KMS-Fresher-Jobs
Senior Software Engineers (.NET./Java/Front-end): http://bit.ly/KMS-SE-Jobs
Quote
Object-oriented programming offers a sustainable way to write spaghetti code. It lets you accrete programs as a series of patches.
Paul Graham