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. 625 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 đó.
Keeping Customers Streaming — The Centralized Site Reliability Practice at Netflix
Netflix theo mô hình service ownership ("full cycle developer"): team vận hành cái mình xây; phần lớn lỗi được team sở hữu bắt trước khi khách thấy.
How Netflix Scales its API with GraphQL Federation (Part 1)
Mảng Studio (sản xuất nội dung) có hàng trăm ứng dụng; dữ liệu và quan hệ nằm rải trong vô số microservice.
Scaling Cache Infrastructure at Pinterest
Tầng cache phân tán nằm gần đáy stack, đứng trước nhiều service và DB, hấp thụ phần lớn traffic backend: hàng nghìn máy EC2, hàng trăm TB, hơn 150 triệu request/giây lúc cao điểm (2020).
How Postman Engineering handles a million concurrent connections
Service Sync là một trong những service đầu tiên của Postman: sync mọi hoạt động trên client với server qua WebSocket theo kiểu pub/sub. Ban đầu chỉ lo giao dịch DB (ví dụ cập nhật collection), dần ôm thêm việc thông…
MySQL sharding at Quora
MySQL giữ câu hỏi, câu trả lời, upvote, comment: hàng chục TB (chưa kể replica), hàng trăm nghìn QPS; thêm Memcache và Redis cho đọc. Dữ liệu và QPS ghi tăng nên phải shard.
The Great K8S Migration
Reddit 15 tuổi (2020): nhiều kỹ sư hơn thì nhiều deploy hơn và codebase phức tạp hơn. Họ gom hạ tầng về một chuẩn trên Kubernetes để service owner chỉ lo service của mình.
Scalability and Load Testing for VALORANT
Nền tảng của VALORANT (ngoài game server) là hơn 30 microservice Go: party, matchmaking, chọn Agent, cấp trận về datacenter theo ping, lưu kết quả, store, loadout. Microservice từ đầu là bài học từ League of Legends,…
Under Deconstruction: The State of Shopify's Monolith
18 tháng sau . Monolith chính có 2,8 triệu dòng Ruby, 500.000 commit, phát triển liên tục từ 2006, hàng trăm developer đang thêm tính năng.
Scaling Datastores at Slack with Vitess
Slack bắt đầu bằng LAMP. Mọi dữ liệu trên MySQL, gồm ba loại cluster:
How Does Spam Protection Work on Stack Exchange?
"Đặt một ô nhập liệu lên Internet thì sẽ có người nhét spam vào." Một network có hàng triệu lượt truy cập mỗi ngày và rất nhiều ô nhập liệu cần chống spam ở nhiều lớp, mỗi lớp của đường đi request (CDN → load balancer →…
How we built it: our new Articles feature for Stack Overflow for Teams
Articles là loại nội dung dài mới trong Stack Overflow for Teams; phải hiện cùng câu hỏi/trả lời trong search, profile, thông báo theo tag, có vote và comment. Mỗi article có một "loại" (Knowledge Article, Announcement,…
Phoenix — Tinder's Testing Platform, Part III (Metrics System)
Sản phẩm rộng và đổi nhanh, mỗi thành phần hành xử khác nhau theo vùng; muốn biết "sức khoẻ" cần nhiều chiều metric, và muốn tiến hoá nhanh thì phải thử nhiều và nhanh.
The Ultimate Load Test
Swipe Night (video tương tác) ra mắt ở Mỹ tối Chủ nhật 6/10/2019, chỉ trong khung 18h–24h. Thường Tinder rollout dần từ thị trường nhỏ, nhưng lần này phải bí mật và mở cho tất cả cùng lúc.
Retail Graph — Walmart's Product Knowledge Graph
Catalog thương mại điện tử lấy dữ liệu từ seller và nhà cung cấp; dữ liệu hay thiếu, đôi khi sai, và không có một nguồn sự thật duy nhất. Thông tin hữu ích nằm lẫn trong tiêu đề và mô tả.
6 Event-Driven Architecture Patterns — Part 1
Team data-streams của Wix lo hạ tầng event-driven trên Kafka cho hơn 1.400 microservice (2020). Bài là ba mẫu dùng thực tế ở Wix, mỗi mẫu một use case.
6 Event-Driven Architecture Patterns — Part 2
Ba mẫu tiếp theo của team data-streams (Kafka cho hơn 1.400 microservice), dựng trên thư viện consumer Greyhound do Wix tự viết và mở mã nguồn.
Orchestrating Cassandra on Kubernetes with Operators
Cassandra ở Yelp dùng cho cả dữ liệu chính lẫn dữ liệu dẫn xuất; mỗi cluster production trải nhiều region AWS, chạy trên EC2 + ASG, dữ liệu trên EBS (backup bằng snapshot), seed provider dựa trên synapse.
A lesson in creating and using niche business DSLs at scale
Mỗi lệnh đặt vào OMS (Order Management System) phải qua nhiều kiểm tra nghiệp vụ tốn CPU, và lệnh sau phải chờ lệnh trước. Để giảm latency, Zerodha tách một phần kiểm tra ra một thành phần đứng trước tên là Veto: một…
Infrastructure monitoring with Prometheus
Năm 2020 Zerodha xử lý khoảng 15% khối lượng giao dịch bán lẻ hằng ngày trên các sàn ở Ấn Độ; tự host gần như mọi phụ thuộc (CRM, database lớn, Kafka, mail server).
Building a Data Streaming Platform
Ba cách đưa dữ liệu vào data lake S3 trước đó, đều có vấn đề:
On-Device Stitching with Zillow 3D Home
App Zillow 3D Home (iPhone, ra 10/2017) chụp tour ảnh 360° bằng cách người dùng xoay tại chỗ. Bản đầu chụp 180 frame và gửi 70 MB trở lên mỗi panorama lên cloud để ghép.
How to Pitch Apache Kafka
Zillow chạy trên AWS và dùng SQS, SNS, Kinesis. Theo tác giả, lý lẽ "Kafka throughput tốt hơn" không thuyết phục được lãnh đạo; ở công ty trước, chính ông từ chối Kafka vì không thấy ROI của việc thêm người vận hành.
ML Model Deployment for Zillow Floor Plans with SageMaker
Zillow Floor Plan: model phát hiện cửa sổ, cửa ra vào, lối mở trong ảnh panorama của tour 3D để tự động hoá việc vẽ sơ đồ nhà. Cần hạ tầng deploy và phục vụ model dễ tích hợp, tin cậy, dễ thêm model, dùng lại được cho…
How Zillow Tests Clickstream Analytics
Event analytics (page view, sự kiện) do dev gắn vào trang, gửi Google Analytics, rồi được kéo từ BigTable về data lake (bảng Hive). Zillow chưa có schema chung cho event.