Bài tóm tắt

Tóm tắt bằng lời riêng, luôn dẫn về bài gốc. 351 bài (đã lọc). Đọc miễn phí.

Nguồn dữ liệu danh sách bài viết của blog công ty

Danh sách bài trên trang công ty gồm 10.013 bài. Khoảng 73,6% (7.365 bài) do SWE Wiki thu thập thủ công từ kho lưu trữ blog chính chủ của các công ty, kèm ngày đăng. Phần còn lại lấy từ các danh sách công khai trên GitHub: binhnguyennus/awesome-scalability (667), abhivaikar/howtheytest (551), upgundecha/howtheysre (499), eugeneyan/applied-ml (376), Engineer1999/ML-System-Design-Case-Studies (239), upgundecha/howtheyaws (149) và một số danh sách nhỏ khác. Mọi link luôn dẫn về bài gốc trên blog của tác giả; SWE Wiki không sao chép nội dung bài. Hiện 9.115 bài thuộc 135 công ty có trang wiki riêng và 897 bài thuộc 261 trang danh sách bài viết (công ty chưa có trang wiki); thành viên xem được toàn bộ danh sách. Cảm ơn những người duy trì các danh sách đó.

Mọi giai đoạn 1. Khởi đầu2. Tăng trưởng3. Quy mô lớn4. Điều chỉnh
Mọi độ khó DễCơ bảnTrung bìnhKhóNâng cao
Bài tóm tắt · Tinder · 2019 Trung bình

Geosharded Recommendations Part 1: Sharding Approach

Search là thành phần chính của hệ gợi ý realtime. Nhiều năm Tinder chạy một cluster Elasticsearch, một index, 5 shard mặc định, scale bằng thêm replica và máy mạnh hơn. Đến lúc dùng rất nhiều máy mạnh mà CPU vẫn cao và…

Bài tóm tắt · Tinder · 2019 Trung bình

Geosharded Recommendations Part 2: Architecture

Phần 1 đã chốt thuật toán chia geoshard trên S2 và đóng gói thành một microservice nội bộ. Phần 2 trả lời ba câu hỏi triển khai: "shard" cụ thể là gì trong Elasticsearch, cluster cần cỡ nào, và cân tải ra sao.

Bài tóm tắt · Tinder · 2019 Trung bình

Phoenix — Tinder's Testing Platform, Part I

Tinder dùng thí nghiệm để quyết định thay đổi sản phẩm và tự dựng Phoenix để quản lý mọi thí nghiệm.

Bài tóm tắt · Tinder · 2019 Trung bình

Phoenix — Tinder's Testing Platform, Part II (Levers)

Một tính năng của app mobile đi qua PM, design, code, QA, build rồi duyệt của app store. Bất kỳ thay đổi nào sau đó (bug lọt QA, chỉnh chi tiết, muốn ra mắt đúng giờ) đều phải lặp lại cả vòng; trên mobile không thể…

Bài tóm tắt · V8 (Google) · 2019 Trung bình

Code caching for JavaScript developers

Parse + compile JavaScript chiếm phần đáng kể thời gian khởi động trang. Code cache lưu kết quả (bytecode) để lần sau bỏ qua bước đó.

Bài tóm tắt · Box · 2018 Trung bình

Snitch: Putting consistency back into S3

Hạ tầng analytics của Box coi S3 là nguồn sự thật trên cloud: dữ liệu ghi vào Kafka on-prem, committer chép sang bucket nguồn S3 (có thể trùng do Kafka giao lại), job MapReduce dedupe sang bucket đích, Hive và ETL sang…

Bài tóm tắt · Grab · 2018 Trung bình

Introducing Grab-Kit: Distributed Service Design at Grab

Sau khi tách monolith thành microservices, Grab gặp bài toán mới: tăng trưởng theo cấp số nhân mà vẫn giữ được sự nhất quán. Các service có API, SDK, xử lý lỗi, transport khác nhau; log mỗi nơi một định dạng; không truy…

Bài tóm tắt · Heroku · 2018 Trung bình

Rolling the Heroku Redis Fleet

Heroku quản lý hàng triệu database. Một lỗ hổng Redis bị cấm công bố (CVE-2018-11218) buộc nâng cả fleet Redis mà không được báo nguyên nhân cho khách. Plan trả phí có HA: standby nhân bản bất đồng bộ, tự thay primary…

Bài tóm tắt · Jane Street · 2018 Trung bình

How to shuffle a big dataset

Theo bài, dữ liệu ở Jane Street có tỉ lệ tín hiệu/nhiễu rất thấp nhưng rất nhiều: kiểu một tỉ mẫu huấn luyện mà nhãn chỉ hơi có xu hướng đúng.

Bài tóm tắt · Kubernetes · 2018 Trung bình

IPVS-Based In-Cluster Load Balancing Deep Dive

kube-proxy chạy trên mỗi node, biến Service (một IP ảo) thành việc chuyển gói tới các pod phía sau. Trước đó có hai chế độ: userspace (cũ) và iptables (mặc định).

Bài tóm tắt · LinkedIn · 2018 Trung bình

Making LinkedIn's Organic Feed Handle Peak Traffic

FollowFeed (): followfeed-query (broker) gửi song song tới nhiều followfeed-storage rồi gộp. Hai chỉ số QoS: Full QoS (mọi timeline đều trả về) và Partial QoS (có ít nhất một phần dữ liệu); Partial QoS rớt nghĩa là feed…

Bài tóm tắt · LinkedIn · 2018 Trung bình

LinkedOut: A Request-Level Failure Injection Framework

Mục tiêu: biết một trang xuống cấp ra sao khi service phía dưới hỏng, thử ngay trên production mà không làm member hay khách bị ảnh hưởng. Cách mịn nhất là inject lỗi theo từng request.

Bài tóm tắt · LinkedIn · 2018 Trung bình

Now You See Me, Now You Don't: LinkedIn's Real-Time Presence Platform

Chấm xanh "đang online" cho khoảng 500 triệu thành viên (2018): mỗi giây hàng nghìn người online/offline, cần phát thay đổi tới mọi kết nối đang xem.

Bài tóm tắt · LinkedIn · 2018 Trung bình

Samza Aeon: Latency Insights for Asynchronous One-Way Flows

Metric request/response chỉ đo được tới khi response trả về. Một request khởi động chuỗi xử lý bất đồng bộ qua nhiều hệ (gửi tin nhắn → push notification tới APNS/GCM) trông như rất nhanh trên dashboard nhưng thật ra…

Bài tóm tắt · LinkedIn · 2018 Trung bình

Managing Software Dependency at Scale

LinkedIn có hơn 10.000 codebase (multiproduct), mỗi cái một repo, phụ thuộc nhau qua artifact nhị phân (Gradle/Maven) chứ không qua mã nguồn mới nhất. Sửa một product phải biết không làm hỏng product phụ thuộc…

Bài tóm tắt · Lyft · 2018 Trung bình

From shallow to deep learning in fraud

Hệ quyết định gian lận ban đầu được xây cho luật nghiệp vụ dễ đọc; model chỉ là "phần mở rộng của luật": hệ số logistic regression được chép tay vào code. Bug đầu tiên tác giả sửa là một feature tính khác nhau giữa…

Bài tóm tắt · Meta · 2018 Trung bình

Predictive test selection

Facebook dùng trunk-based development: thay đổi vào trunk phải hiện ngay với mọi kỹ sư, nên mỗi thay đổi phải được test hồi quy trước khi vào.

Bài tóm tắt · Mozilla · 2018 Trung bình

Private by Design: How we built Firefox Sync

Firefox Sync sync bookmark, lịch sử, mật khẩu giữa các thiết bị cho hàng triệu người dùng. Mozilla muốn dữ liệu sync được mã hoá mặc định sao cho chính Mozilla không đọc được.

Bài tóm tắt · Netflix · 2018 Trung bình

Lessons from Building Observability Tools at Netflix

Netflix có 125 triệu thành viên, xem trên hơn 1.000 loại thiết bị (2018). Đội làm công cụ observability (log, trace, metric) cho cả thiết bị lẫn server, để người dùng vào một công cụ thay vì nhiều công cụ theo loại dữ…

Bài tóm tắt · Netflix · 2018 Trung bình

Evolution of Application Data Caching: From RAM to SSD

EVCache (từ 2013): cache phân tán dựa trên memcached, tích hợp với AWS, được gọi là "microservice ẩn". Đến 2018 là dịch vụ tier-0: hàng PB dữ liệu, hàng trăm tỷ item, hàng nghìn tỷ thao tác/ngày, hàng nghìn server ở 3…

Bài tóm tắt · Netflix · 2018 Trung bình

Scaling Time Series Data Storage — Part I

Lịch sử xem (viewing history) dùng cho bookmark và gợi ý; hội viên xem hơn 140 triệu giờ/ngày, hơn 100 triệu hội viên (2018). Dữ liệu tăng theo ba chiều: thời gian, số hội viên, số giờ xem mỗi người.

Bài tóm tắt · Quora · 2018 Trung bình

Automated Infrastructure Cost Optimization at Scale with AWS EC2 Reserved Instances

Quora chạy cả service online và tác vụ offline trên EC2; web server dùng autoscaling kết hợp on-demand và spot.

Bài tóm tắt · Shopify · 2018 Trung bình

A Pods Architecture To Allow Shopify To Scale

2015: không thể tiếp tục mua server DB to hơn, nên Shopify shard database. Scale được, nhưng mất khả năng chịu lỗi: code đầy những đoạn Sharding.witheachshard do ... end, nên chỉ cần một shard hỏng là cả hành động đó…

Bài tóm tắt · SoundCloud · 2018 Trung bình

Keeping Counts In Sync

Số lượt nghe, like, repost của mỗi track: vừa là thống kê cho creator (tổng theo khoảng thời gian bất kỳ, xem chi tiết theo ngày/giờ và phải cộng khớp), vừa là bộ đếm công khai hiện ở mọi nơi track xuất hiện, được đọc…