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. 531 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 đó.
Predicting the real-time availability of 200 million grocery items
Hơn 100.000 shopper quét hàng triệu món mỗi ngày ở 20.000 cửa hàng (2018). Instacart không sở hữu chuỗi cung ứng; đối tác bán lẻ gửi dữ liệu tồn kho khoảng một lần mỗi ngày, trong khi hàng có thể hết trong ngày. Hàng…
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.
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).
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…
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.
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.
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…
Search Federation Architecture at LinkedIn
LinkedIn có nhiều "search backend" theo use case (People, Job...). Tầng federation ở giữa làm ba việc: mở rộng query (query understanding, spell check), fan-out tới các backend, rồi "blend" kết quả.
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…
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…
Microservice Architecture at Medium
Medium bắt đầu năm 2012 bằng một monolith Node.js; có vài service vệ tinh nhưng chưa có chiến lược.
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.
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.
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ữ…
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…
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.
Scaling Kubernetes to 2,500 nodes
OpenAI chạy Kubernetes cho thí nghiệm deep learning hơn 2 năm (workload lớn nhất thì quản lý VM trực tiếp). Kubernetes cho vòng lặp nhanh, scale vừa đủ, ít boilerplate. Trên đường lên 2.500 node, lần lượt các thành phần…
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.
Secure access to 100 AWS accounts
Segment bắt đầu trong một tài khoản AWS, năm 2017 tách thành dev, stage, prod và "ops". Đầu 2018 họ có vài chục tài khoản và thêm khoảng một tài khoản mỗi 1–2 tuần, hướng tới tài khoản riêng theo team và theo hệ thống.
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 đó…
AWS Multi-Account Architecture with Terraform, Yeoman, and Jenkins
Một tài khoản AWS đơn giản lúc đầu, nhưng theo Slalom hầu hết tổ chức thấy cách này không scale và muốn cô lập workload theo tài khoản.
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…
Sharding Cash
Cash App bắt đầu là thử nghiệm Hack Week trên một MySQL; tới cuối 2016 đã hơn nửa triệu dòng code, chật vật giữ uptime lúc đỉnh. Đã dùng hết "sách giáo khoa": cache, chuyển dữ liệu lịch sử ra, đọc replica, mua phần cứng…
Stack Overflow: How We Do Monitoring - 2018 Edition
Cuối 2018, Stack Overflow vẫn chạy ASP.NET MVC5 và đang chuyển sang .NET Core. Bài chia dữ liệu monitoring thành logs, metrics, health checks và profiling, rồi kể các công cụ (phần lớn tự viết và open source) dùng cho…