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 đó.
How GitHub uses merge queue to ship hundreds of changes every day
GitHub deploy trước rồi mới merge. Năm 2016, monorepo lớn đã có gần 1.000 PR merge mỗi tháng, nên họ cần gom nhiều PR deploy cùng lúc: train, một PR đặc biệt chứa nhiều PR "hành khách", có một người "lái tàu" điều phối…
How we seamlessly migrated high volume real-time streaming traffic with zero data loss and duplication
Grab tách phần đọc và phần ghi của một backend service thành hai service riêng để scale độc lập.
How we built a dynamic Kubernetes API Server for the API Aggregation Layer in Cozystack
Mở rộng Kubernetes thường bằng CRD + controller (kubebuilder, operator-sdk): khai báo resource, controller reconcile. Cách khác là API aggregation layer: viết một extension API server chạy riêng, đăng ký bằng…
How we built a queue on top of Kafka
Messaging bất đồng bộ có trong kiến trúc microservices của Monzo từ đầu. Ban đầu dùng NSQ: tiện kiểu queue (xử lý và ack từng message), nhưng không bền, đó là khoảng cách duy nhất tới at-least-once.
Database-per-User Architecture With Isolated Application Environments
Bài trước trong loạt: database-per-user với môi trường ứng dụng dùng chung (một bản ứng dụng nói chuyện với DB riêng của từng khách). Bài này: môi trường ứng dụng cô lập, mỗi khách một bản sao toàn bộ hệ thống.
A brief history of Notion's data catalog
Giai đoạn 1 (không catalog): dữ liệu tăng tự phát, phần lớn ở dạng JSON không cấu trúc, đổ vào công cụ như Amplitude để phân tích nhanh. Hệ quả: kiến thức truyền miệng, tên không thống nhất, không phân biệt event quan…
Diving into Uber's cutting-edge data infrastructure
Uber (2023): hơn 10.000 thành phố, 137 triệu người dùng/tháng, 25 triệu chuyến/ngày. Khách nội bộ của đội Data Infrastructure (vận hành cộng đồng, ML, growth marketing) đều muốn insight từ dữ liệu nhưng khác nhau về độ…
API, ChatGPT & Sora Facing Issues (incident write-up)
11/12/2024, từ 15:16 tới 19:38 (PST), mọi dịch vụ của OpenAI (API, ChatGPT, Sora) suy giảm nặng hoặc ngừng hẳn.
From Fragile to Agile: Automating the fight against Flaky Tests
Project iOS của Reddit có hơn 20.000 test unit/snapshot và 2.500 UI test (2024), tăng nhanh trong hai năm; flaky test tăng theo.
FLUX fine-tunes are now fast
Tiếp : bản fine-tune do người dùng train chạy bằng tốc độ model gốc (P50: schnell 0,6 giây, dev 2,8 giây). Lần chạy đầu tốn thêm khoảng 2,5 giây nạp bản đó; sau đó request được định tuyến tới instance đã nạp sẵn.
FLUX is fast and it's open source
Số đo (từ bờ tây Mỹ, client Python): FLUX.1 schnell 512x512, 4 bước: 0,29 giây (P90 0,49); 1024x1024: 0,72 giây; FLUX.1 dev 1024x1024, 28 bước: 3,03 giây (P90 3,90).
Shared network vulnerability disclosure
Replicate chạy code của người dùng trong production, với ba lớp phòng thủ: container, cô lập network, và đảo quyền điều khiển (model nhận lệnh từ dịch vụ "director" chạy cạnh nó; chỉ director được tin để nói chuyện với…
Advancing Our Chef Infrastructure
Slack quản lý hàng chục nghìn instance EC2 (Vitess, worker Kubernetes, nhiều thành phần ứng dụng), đa số Ubuntu, một phần Amazon Linux, cấu hình bằng Chef.
How Stripe's document databases supported 99.999% uptime with zero-downtime data migrations
Stripe chọn MongoDB từ 2011 (Atlas chưa có) và xây DocDB, DB-as-a-service nội bộ trên MongoDB Community: hơn 5 triệu query/giây, hơn 10.000 dạng query, hơn 5.000 collection trên hơn 2.000 shard, hàng petabyte dữ liệu…
Secure by default: WarpStream's BYOC deployment model
Hai mô hình triển khai hạ tầng dữ liệu quen thuộc: tự quản lý (mua license) và SaaS (nhà cung cấp chạy trong cloud của họ). BYOC chia phần mềm thành control plane (ở nhà cung cấp) và data plane (compute + storage ở tài…
IPLS: Privacy-preserving storage for your WhatsApp contacts
Danh bạ trước đây chỉ nằm trong điện thoại: mất máy là mất danh bạ, chỉ thêm được liên hệ từ điện thoại. Multi-device và nhiều account trên một máy (công việc, cá nhân) cần danh bạ riêng cho WhatsApp, sync qua thiết bị…
MLow: Meta's low bitrate audio codec
Âm thanh thô của một cuộc gọi khoảng 768 kbps; codec hiện đại nén còn 25–30 kbps. Meta dùng Opus (2012) cho mọi cuộc gọi.
Failing to Auto Scale Elasticsearch in Kubernetes
Lounge by Zalando lưu mô tả sản phẩm trong một cluster Elasticsearch trên Kubernetes, vận hành bằng es-operator (custom resource ElasticsearchDataSet → StatefulSet). Pod rải qua mọi AZ; Elasticsearch bật zone awareness…
Koios: A lightweight workflow service combined with server-driven UI for a better customer experience
StreetEasy (thương hiệu của Zillow cho New York): mỗi lần muốn hỏi người dùng thêm một câu (lần đầu mua nhà? đã có khoản vay chưa?) là một giải pháp làm riêng trên web và app, mất vài tháng tới vài quý; sửa lại thì…
Next Best Action platform: democratizing personalization with contextual bandits
Team sản phẩm và marketing chọn thông điệp, CTA bằng luật tay và A/B test tuần tự, rồi áp người thắng cho tất cả. Theo Zillow: thông điệp thắng với 60% khách bỏ quên 40% còn lại; mỗi vòng thử mất vài tuần tới vài tháng;…
Building a strong foundation to accelerate StreetEasy's data science efforts
Dữ liệu event thô của StreetEasy là một bảng hàng tỷ dòng, hàng trăm cột. Tính một chỉ số đơn giản (tỉ lệ session có gửi yêu cầu xem nhà) cần biết nhiều chi tiết ngầm: giá trị nào là huỷ, desktop và iOS ghi cùng hành…
Zkafka by Zillow: Go Library for Simplifying Kafka Consumption
Năm năm qua Kafka dùng rộng ở Zillow: cluster nội bộ hơn 1.500 topic (2024). Team Java có Flink và nhiều framework; team Go, Python, JS tự viết consumer.
Load Testing Kubernetes: Building a Framework (Part 1)
Achievers chạy nền tảng Kubernetes nhiều cluster; đội SRE cần một framework để engineer tự tạo tải và đọc kết quả, vì nền tảng phải chịu được cả traffic dự đoán trước lẫn bất ngờ.
Load Testing Kubernetes: Resolving bottlenecks and improving performance (Part 2)
Sau khi có baseline, đội đặt mục tiêu cho từng tiêu chí (throughput, lỗi, latency, scale) và dựng dashboard New Relic để thấy nút thắt ngay trong lúc chạy test.