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. 979 bài. Đọ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 đó.
Update: Elasticsearch lessons learnt for Advanced Global Search
Deadlock "con gà quả trứng": muốn giảm kích thước index thì cần dữ liệu từ một deployment thật, mà chưa có deployment thật vì index quá lớn. Phản hồi khách và test nhỏ không đủ; dogfooding là cách tốt nhất.
GitLab's unconventional journey to CI/CD and Kubernetes
feature freeze từ ngày 7, release ngày 22;
6 Lessons we learned when debugging a scaling problem on GitLab.com
Khách hàng báo lỗi git pull qua SSH chập chờn, chủ yếu từ CI và job tự động: sshexchangeidentification: connection closed by remote host. Không tái hiện được, không thấy gì rõ trên graph hay log.
Debugging the Postgres query planner
Năm 2019, DB Postgres chính của GoCardless khoảng 2 TB. Bảng paymenttransitions (mỗi lần payment đổi trạng thái là một dòng, mô hình state machine bằng Statesman) có gần nửa tỉ dòng.
Designing Resilient Systems Beyond Retries (Part 2): Bulkheading, Load Balancing, and Fallbacks
Bài thứ hai trong series ba phần của Grab về các kỹ thuật chịu lỗi "ngoài retry" (bài 1 nói về rate limiting). Bài thiên về giải thích pattern, chỉ có vài đoạn ngắn về cách Grab áp dụng.
How We Built a Logging Stack at Grab
Một năm trước đó, Grab không có trực quan hoá hay metric cho log service; tìm một chuỗi trong log ba ngày qua là "chạy query rồi đi pha nước". Cách cũ là một mớ: log trên storage cloud (mất hàng giờ mới lấy được), một…
Building Pubsub for 50M concurrent socket connections
IPL 2019, Hotstar ra Social Feed dưới video trên app mobile: nội dung gắn với diễn biến trận đấu nên phải đẩy realtime, không cache được, thời điểm không đoán trước (mỗi quả bóng dài ngắn khác nhau), và không được làm…
Scaling for Tsunami traffic
Traffic của Hotstar (streaming ở Ấn Độ) có dạng "sóng thần": khi đội tuyển cricket Ấn Độ ra sân, lượng user đồng thời tăng vọt trong vài phút.
Python at Scale: Strict Modules
Instagram Server là monolith Python vài triệu dòng, hàng trăm commit mỗi ngày, deploy production vài phút một lần (2019). Theo Instagram, các tính năng động của Python ổn với codebase nhỏ và đội có kỷ luật, nhưng thành…
Authorization at LinkedIn's Scale
Phân quyền giữa các service (không phải giữa user và sản phẩm): một microservice chỉ được đọc dữ liệu khi có lý do nghiệp vụ, để dữ liệu thành viên không lan rộng và để giới hạn thiệt hại nếu một service nội bộ bị chiếm.
Eliminating toil with fully automated load testing
Năm 2013 LinkedIn chạy nhiều data center và dựng TrafficShift để chuyển traffic thật giữa các DC khi có incident.
Open sourcing Brooklin: Near real-time data streaming at scale
Bài toán không chỉ là chuyển nhiều dữ liệu, mà là số loại hệ nguồn và đích tăng nhanh (Espresso, Oracle, MySQL, Kafka, Azure Event Hubs, Kinesis).
An inside look at LinkedIn's data pipeline monitoring system
Dữ liệu vào Hadoop chủ yếu qua Apache Gobblin (nguồn Kafka, Espresso, Oracle), job batch chạy hàng giờ trên hàng trăm dataset. Giám sát lúc đó chỉ là trạng thái pass/fail của job trên dashboard Azkaban tự làm (Kyaraben).
DataHub: A generalized metadata search & discovery tool
WhereHows (mở mã nguồn 2016): kho metadata trung tâm cho dataset (schema, owner, lineage, job) kèm search. Khi mở rộng sang nhiều loại metadata, LinkedIn rút ra năm bài học:
Community-focused Feed optimization
Feed hai tầng (): các first pass ranker (FPR) chọn ứng viên từ kho của mình, second pass ranker (SPR) gộp và chấm điểm. FollowFeed là FPR chính: hơn 80% update trên feed, đóng góp hơn 95% cuộc hội thoại của member…
Auditing content features in FollowFeed
Hơn 80% feed là nội dung organic, đều do FollowFeed phục vụ. Activity và feature (ngôn ngữ, hashtag, vị trí tác giả...) cùng vào FollowFeed qua Kafka; storage node partition theo tác giả, chỉ giữ feature của activity…
Solving manageability challenges at scale with Nuage
Mỗi tính năng dùng nhiều hạ tầng: Espresso, Galene, Kafka, Bulkhead (quota), Helix, Fuse (chống lạm dụng), Couchbase, Ambry (blob), Pinot, Samza, Pro-ML, Brooklin, Venice. Mục tiêu "hạ tầng vô hình": team sản phẩm tự…
Smart alerts in ThirdEye, LinkedIn's real-time monitoring platform
ThirdEye giám sát và phân tích nguyên nhân cho metric từ sức khoẻ sản phẩm tới metric kinh doanh và hiệu năng model ML; nguồn chính là Pinot và inGraphs.
Amundsen — Lyft's data discovery & metadata engine
Ở Lyft, data scientist và research scientist lẽ ra dành phần lớn thời gian làm model và đưa lên production, nhưng mất nhiều thời gian cho tìm dữ liệu: dữ liệu có tồn tại không, ở đâu, đâu là source of truth, có quyền…
Payment Transaction Management in Microservices
PaymentService của Merpay (mảng thanh toán của Mercari) nằm giữa kiến trúc microservices: dùng các phương thức thanh toán ở service phía dưới (kể cả service bên ngoài như thẻ tín dụng) để cung cấp luồng thanh toán cho…
How our security team handle secrets
Nền tảng Monzo 2019: khoảng 1.100 microservice Go trên Kubernetes tự vận hành (kể cả etcd), Cassandra, Kafka và NSQ.
How we've evolved on-call
Từ bài 2018, Monzo đã có tuyến một gồm primary (kỹ sư kinh nghiệm, biết incident commander) và shadow (người mới học bằng cách quan sát), đều là tình nguyện viên có trả tiền. Khi hệ thống lớn nhanh, primary khó có ngữ…
Add-Ons Outage Post-Mortem Result
Đầu 5/2019, chứng chỉ trung gian dùng để ký add-on hết hạn, làm add-on trên rất nhiều bản Firefox bị vô hiệu hoá.
DBLog: A Generic Change-Data-Capture Framework
Nền tảng Delta của Netflix giữ nhiều kho dữ liệu sync: một kho là source of truth (MySQL), các kho khác dẫn xuất (Elasticsearch). CDC thay cho dual write và transaction phân tán.