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 we rolled out security keys at Twitter
Sau incident bảo mật năm 2020 (bài nhắc tới, không kể chi tiết), Twitter đẩy nhanh dùng security key (FIDO/WebAuthn) cho nhân viên. Khác SMS hay OTP, security key phân biệt được trang thật và trang giả nên chặn được…
ADMIRE: A Product-Driven Approach to Automating Migrations
Đội Platform Engineering của Two Sigma chắc chắn phải làm migration (đổi DC, đổi container scheduler, đổi cloud), và phần lớn migration cần team khác làm việc; team nào cũng than "chẳng phải vừa xong đợt trước sao".
Next.js 12
Compiler Rust (SWC) thay Babel: theo Vercel, biến đổi mã nhanh hơn Babel 17 lần, refresh local nhanh khoảng 3 lần và build nhanh khoảng 5 lần. Phải viết lại các phép biến đổi Babel của Next.js bằng Rust, kể cả một…
How WhatsApp enables de-identified authenticated telemetry (DIT)
WhatsApp (2021): hơn 100 tỉ tin nhắn và 1 tỉ cuộc gọi mỗi ngày. Để vận hành cần metric như tin có tới nơi không, bao nhiêu người dùng hệ điều hành nào.
How WhatsApp is enabling end-to-end encrypted backups
Tin nhắn đã mã hoá đầu cuối, nhưng bản sao lưu lịch sử chat lên Google Drive hay iCloud thì chỉ được bảo vệ bởi chính nhà cung cấp lưu trữ. Đó là lỗ hổng lớn nhất còn lại của lời hứa "chỉ hai đầu đọc được".
Wix Inbox Journey: 3 Approaches for Zero Downtime Database Migration
Wix có hơn 200 triệu user ở 190 nước. Ứng dụng chat của Wix Inbox (trong bộ CRM) chạy trên Cassandra tự quản lý trên EC2, dùng chung cho nhiều microservice.
How We Improved Website Performance by Evolving Our Infrastructure
Wix phục vụ hàng triệu site, nhiều site làm từ lâu và không ai sửa nữa; là môi trường quản lý nên phần lớn hiệu năng nằm trong tay nền tảng chứ không phải người dùng. Từ 6/2021 Google đưa page experience vào xếp hạng…
Moving Velo to Multiple Container Sites: The Why, The How and The Lessons Learned
Velo (trước gọi là Corvid) cho người dùng Wix viết code backend và frontend cho site. Nó được thiết kế rất rẻ để phục vụ hàng chục triệu khách nhỏ: mỗi site chạy trên một container. Khách lớn xuất hiện thì cần chạy…
The process: Implementing Yelp's failover strategy
Yelp phục vụ từ hai region AWS ở hai bờ nước Mỹ. Request chỉ đọc (phần lớn traffic) đi tới region gần nhất, có logic cân tải giữa hai bên.
Kafka on PaaSTA: Running Kafka on Kubernetes at Yelp (Part 1 - Architecture)
Kafka của Yelp nhận hàng chục tỷ message mỗi ngày (2021).
Scaling with common sense #2: Being future ready
Trong khoảng một năm (2020–2021), số khách tăng hơn 3 lần do thị trường vốn bùng nổ, trong khi 10 năm trước đó tăng chậm và đều. Theo Zerodha, họ thích ứng được nhờ các nguyên tắc "lẽ thường" chứ không nhờ dự đoán trước.
Working with PostgreSQL
Các database của Console (báo cáo, lịch sử giao dịch) tự host trên EC2: hàng trăm tỷ dòng, gần 20 TB, 4 node shard (2021). HA bằng failover replica đơn giản; backup bằng snapshot đĩa AWS.
Anomaly Detection at Zillow Using Luminaire
Zestimate, gợi ý, model CV xử lý lượng dữ liệu lớn qua nhiều pipeline, mỗi chỗ là một điểm có thể hỏng. Theo Zillow, công cụ phát hiện bất thường có sẵn hoặc không bền trên nhiều dạng dữ liệu, hoặc cần chuyên môn mô…
Building an Effective Test Pipeline in a Service Oriented World
Airbnb đang chuyển từ một ứng dụng Rails khổng lồ sang SOA. Các luồng nghiệp vụ quan trọng từng nằm trong monorepo nay nằm ở nhiều service: REST + DB, Kafka producer/consumer, job hẹn giờ.
How we modified our infrastructure to deploy an EU data center
Khách hàng doanh nghiệp muốn chọn nơi đặt dữ liệu; Asana mở hạ tầng ở châu Âu (12/2019).
Automated testing: 5 lessons from Atlassian's Kubernetes team on testing infrastructure as code
Team KITT (Kubernetes Infrastructure Technology Team) vận hành hơn 22 cluster Kubernetes tự cấu hình (không dùng EKS/GKE vì lúc bắt đầu chúng chưa có hoặc thiếu tính năng), từ cluster dev nhỏ tới cluster production rất…
Three Basecamp outages. One week. What happened?
Basecamp 3 và vài dịch vụ hỗ trợ (login, billing) chạy ở hai data center on-prem dư thừa, nối bằng hai đường network độc lập; nhiều ứng dụng khác của họ chạy trên cloud.
Catching bugs on the client-side: how we developed our error tracking system
Bumble và Badoo có web (desktop, mobile) và app Android, iOS với hàng triệu người dùng. Web phát hành 1–2 lần mỗi ngày, app native khoảng một lần mỗi tuần; phân tích lỗi là một bước của mỗi lần phát hành: release…
Active-Active Shared-Nothing Database Architecture
Một DB sập kéo theo nhiều service; CTO hỏi "năm 2020 rồi, sao không chạy DB active-active?". Bài giải thích vì sao active-active shared-nothing (AASN) ở tầng DB, tức là hai bản DB ở hai vùng, cùng nhận ghi, nhân bản hai…
3 Lessons Learned From Implementing Chaos Engineering at Enterprise
Tác giả hỗ trợ nhiều delivery team đưa chaos engineering vào các hệ cloud native phân tán của CapitalOne. Theo tác giả, chỉ performance và stress test là kỹ thuật cũ, không đủ để lộ điểm yếu; chaos engineering là chuỗi…
Terraform Poka-Yokes: Writing Effective, Scalable, Dynamic, and Error-Resistant Terraform
Tác giả hỗ trợ sáu team chạy hơn 75 microservice trên ECS; môi trường non-prod có ngày tới khoảng 100 lần deploy. Mục tiêu: hỗ trợ được nhiều team mà không cần thêm người theo tỉ lệ 1–1, và developer tự quản ứng dụng…
Why Discord is switching from Go to Rust
Service Read States ghi nhận kênh/tin nào mỗi user đã đọc. Nó nằm trên đường nóng: mỗi lần kết nối, gửi tin hoặc đọc tin đều gọi tới.
Resiliency and Disaster Recovery with Kafka
Team Motors Vertical (eBay Classifieds Group) chạy phần mềm ở nhiều region, định kỳ diễn tập tắt cả một region. Kafka là thành phần quan trọng nhất, nhưng chạy Kafka nhiều cluster active/active vẫn khó, kể cả với…
Prefetch Caching of Items at eBay
Phần lớn traffic vào trang item đến từ trang kết quả tìm kiếm. Những năm trước eBay đã prefetch ảnh item sau khi trang tìm kiếm tải xong. Lần này họ muốn phục vụ cả trang item từ cache khi user bấm vào từ kết quả tìm…