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 đó.
Low Latency Optimization: Understanding Huge Pages (Part 1)
Latency thường là yếu tố quyết định trong giao dịch thuật toán; HRT tốn nhiều công tối thiểu latency của stack giao dịch. Một khía cạnh ít được bàn sâu: huge page và TLB.
Low Latency Optimization: Using Huge Pages on Linux (Part 2)
Bật huge page không chỉ là sửa một file cấu hình. Linux vẫn dùng trang 4 KiB cho phần lớn việc nội bộ; tạo một huge page nghĩa là tìm 512 trang 4 KiB liền nhau bắt đầu ở bội số 2 MiB. Khi bộ nhớ đã phân mảnh, OS phải…
In Trading, Machine Learning Benchmarks Don't Track What You Care About
HRT có câu lạc bộ đọc paper hai tuần một lần. Người ngoài hay hỏi họ có đọc paper mới rồi áp dụng ngay không. Theo HRT, hiếm khi: kết quả thực nghiệm trong paper không bao giờ đo trên đúng bài toán của họ; tăng 0,1% độ…
How Instacart Uses Embeddings to Improve Search Relevance
2022: catalog hơn 1 tỉ sản phẩm từ hơn 900 nhà bán lẻ. Query lệch mạnh: dưới 1.000 query phổ biến chiếm hơn 50% traffic, còn lại là long tail từ rất cụ thể tới rất rộng. Với query phổ biến hoặc cụ thể có thể dựa vào…
Magic-trace: Diagnosing tricky performance issues easily with Intel Processor Trace
Hệ giao dịch của Jane Street gần như toàn thời gian ngồi chờ gói tin network và phải phản hồi nhanh hơn nhiều so với chu kỳ lấy mẫu khoảng 250 µs của sampling profiler, nên profiler lấy mẫu gần như vô dụng cho latency ở…
Jepsen: Redpanda 21.10.1
Redpanda: hệ streaming tương thích giao thức Kafka, dùng Raft nội bộ thay ZooKeeper, quảng bá "không mất dữ liệu mặc định" vì chỉ ack sau khi fsync trên đa số replica (Kafka mặc định có thể ack trước fsync).
Near real-time features for near real-time personalization
Pipeline feature thông thường: event Kafka được ETL vào HDFS, job Spark định kỳ tính feature rồi đẩy tới recommender. Trễ từ vài giờ tới vài ngày giữa hành động và lúc recommendation phản ánh nó.
What it's like to work as an embedded microservices SRE
Mercari có Microservices SRE Team mà thành viên được nhúng (embedded) vào từng team sản phẩm một thời gian, kể cả trực on-call ở team đó. Tác giả vào 5/2021; nhúng vào team Item (7–12/2021) rồi team Mercari API (từ…
Who Watches the Watchmen? Keeping an Eye on Our Monitoring Systems
Pipeline SOAR gồm collector và analyzer (Cloud Run, Cloud Functions viết Go), Pub/Sub, BigQuery. Sau vài lần "sao không thấy log mới trong BigQuery", họ cần giám sát chính hệ giám sát. Dùng công cụ có sẵn của GCP thay…
Embedded SRE at Mercari
Chuyển từ team ops tập trung sang DevOps và "you build it, you run it" làm gánh nặng vận hành của team sản phẩm tăng, nhiều team còn non tay.
De-identified authentication at scale (Anonymous Credential Service)
Meta trước đó giảm dữ liệu bằng cách khử định danh hoặc gộp sau khi thu, cách làm bị động và tốn tài nguyên ở quy mô của họ. Hướng mới: khử định danh ngay tại nguồn bằng xác thực ẩn danh.
Cache made consistent: Meta's cache invalidation solution
Meta vận hành TAO (hơn một nghìn nghìn tỉ query mỗi ngày) và Memcache. Cache động khác DB ở chỗ dữ liệu bị thay đổi trên cả hai đường: đọc (cache fill) và ghi (invalidation). Ví dụ kinh điển: fill đọc được x=42, trong…
Argo Rollouts at scale: Bringing Automated Rollbacks to 2,100+ services at Monzo
Monzo (ngân hàng số ở Anh) theo đuổi microservices: hơn 2.100 service, hơn 100 lượt deploy/ngày, hơn 27.000 lượt deploy trong năm 2021.
How we deploy to production over 100 times a day
Theo Monzo, công ty lớn lên thường chậm lại: chi phí của lỗi tăng nên thêm quy trình phê duyệt, nhiều người đụng vào cùng hệ, nhiều người mới phải hiểu hệ. Hậu quả là engineer gom thay đổi thành bản phát hành lớn, vừa…
Scaling our on-call process
Mô hình cũ (khoảng 50 engineer): một nhóm trực tuyến đầu gồm primary và shadow. Nhóm này nhận mọi alert, tự sửa hoặc tìm team có thể sửa; sau lưng là các nhóm chuyên gia làm điểm leo thang (ví dụ một hệ thanh toán cụ…
Scaling our security detection pipeline with Sigma
Kiểm soát bảo mật gồm phòng ngừa (mật khẩu, 2FA) và phát hiện (cảnh báo đăng nhập từ thiết bị lạ); phòng ngừa có thể thất bại nên cần detection rule.
Retrospective and Technical Details on the recent Firefox Outage
Firefox gọi nhiều service nội bộ (update, telemetry, chứng chỉ, crash report) đặt sau load balancer của nhiều cloud. Trên GCP, load balancer có cài đặt HTTP/3 ba trạng thái; Mozilla để "Automatic (default)".
Data Mesh — A Data Movement and Processing Platform @ Netflix
Thế hệ trước là Keystone (pipeline stream) phục vụ tốt nhiều nhu cầu, nhưng có những use case mới chưa phủ. Năm trước (2021), Data Mesh được giới thiệu như một sản phẩm pipeline stream được quản lý hoàn toàn cho CDC của…
Timestone: Netflix's High-Throughput, Low-Latency Priority Queueing System
Năm 2018, khi thiết kế Cosmos thay hệ encode media Reloaded, cần priority queue giữa ba thành phần (API Optimus, rule engine Plato, lớp serverless Stratum). Yêu cầu:
Best Practices for Real-time Machine Learning: Alerting
Model real-time chấm điểm theo yêu cầu, nên gặp mọi lỗi của phần mềm thường (latency tăng vì tải dồn, sập vì upstream, deploy hỏng) cộng thêm lỗi riêng của ML: feature thiếu hoặc hỏng, phân phối dân số đổi đột ngột.…
How We Rebuilt Our Log Storage and Search Infrastructure for Scale
Đầu 2022, hơn 500.000 deployment trên Railway lấy log thẳng từ Docker: mỗi lần mở trang log, request đi tới hạ tầng deployment, đọc log từ Docker rồi trả về frontend, bằng polling mỗi 2 giây.
Lessons Learned From Running Apache Airflow at Scale
Shopify chạy Airflow production hơn hai năm (2022) cho trích xuất dữ liệu, huấn luyện model, bảo trì bảng Iceberg, mô hình hoá DBT; Airflow 2.2 trên Kubernetes, Celery executor, MySQL 8.
Caching Without Marshal Part 1: Marshal from the Inside Out
Mọi loại cache của Rails (trang, partial, query, low-level) dùng chung read/write trên Rails.cache, và mọi backend (monolith lõi của Shopify dùng Memcached) đều serialize bằng Marshal.dump/Marshal.load. Hướng dẫn Rails…
Caching Without Marshal Part 2: The Path to MessagePack
MessagePack từ chối object lạ: chỉ mã hoá kiểu cơ bản và extension type đã đăng ký; object khác ném NoMethodError có tham chiếu tới object. Đó là điểm để log xem thứ gì đang bị đưa vào cache.