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 đó.
Stack Overflow: How We Do Deployment - 2016 Edition
khoảng 25 lần deploy/ngày lên môi trường dev (CI build), chỉ tính repo Q&A; 5–10 lần/ngày lên production;
Stack Overflow: The Hardware - 2016 Edition
Các bài khác trong series hay nói kiểu "SQL Server chỉ dùng 5–10% CPU". Bài này trả lời câu hỏi "5–10% của cái gì" bằng danh sách phần cứng ở data center New York (thực ra nằm ở New Jersey) và Denver (DR), năm 2016.
Cook: A Fair Preemptive Resource Scheduler for Compute Clusters
Phần lớn tài nguyên compute của Two Sigma được cấp động cho ứng dụng theo nhu cầu, vì chia sẻ hiệu quả hơn cấp tĩnh. Có hai loại job, giống tiến trình foreground/background của OS: interactive (task nhỏ, người dùng chờ…
Lessons Learned From Scaling Uber To 2000 Engineers, 1000 Services, And 8000 Git Repositories
Uber có mặt ở 400 thành phố, 70 quốc gia, 6.000+ nhân viên, 2.000 kỹ sư (1,5 năm trước chỉ có 200), khoảng 1.000 microservice, hơn 8.000 repo git (tháng trước đó là 7.000). Một nửa đội kỹ sư mới vào chưa tới 6 tháng.
Why Uber Engineering Switched from Postgres to MySQL
Kiến trúc ban đầu: monolith Python + Postgres. 2016: microservices, và phần lớn chỗ trước đây dùng Postgres giờ dùng Schemaless, một lớp sharding tự xây trên MySQL. Một số trường hợp đặc biệt dùng Cassandra.
WhatsApp's Signal Protocol integration is now complete
Một năm rưỡi sau thông báo hợp tác, Signal Protocol đã được đưa dần vào mọi loại liên lạc (chat, group, tệp đính kèm, voice note, cuộc gọi thoại) trên mọi client: Android, iPhone, Windows Phone, Nokia S40, S60,…
Integrated Commerce and our Merchant Center rebuild
Zalando muốn bán được mọi món hàng thời trang "có ở đâu đó": nối kho e-commerce của thương hiệu/nhà bán lẻ khác và kho của cửa hàng truyền thống (số hoá tồn kho, hiển thị online, tính tới nhận hàng tại cửa hàng).
Migrating HotPads to an Isomorphic Stack with React
HotPads (thương hiệu thuê nhà của Zillow Group): sau 10 năm, front-end là JSP + jQuery + RequireJS + CSS toàn cục, dính chặt vào back-end monolith. Dev front-end mới phải học cả codebase lớn; mỗi nội dung động qua AJAX…
Zillow Transitions to Streaming Data Architecture
Team data science & engineering của Zillow nhận dữ liệu bất động sản liên tục từ hồ sơ công, feed của user/agent, Multiple Listing Services. Trước đây dữ liệu nằm trong SQL Server và xử lý bằng kỹ thuật cache tự làm.
How we moved our Food Feed from Redis to Cassandra
Food Feed là một phần của social graph: review, ảnh của bạn bè, ưu đãi từ nhà hàng đã lưu. Ban đầu chạy trên Redis, theo Zomato là lựa chọn tốt nhất lúc đó.
How We Partitioned Airbnb's Main Database in Two Weeks
Trước mùa du lịch hè 2015, DB MySQL chính (trên RDS, còn từ thời Airbnb là một app Rails) phải giảm tải. Airbnb chọn tách dọc theo chức năng thay vì shard ngang (theo bài, đồng ý với Asana và Percona rằng shard ngang là…
DNS fallback for better resilience
Algolia (search-as-a-service) đặt mục tiêu kiến trúc 99,9999%: mọi thành phần phải hỏng được mà không ảnh hưởng dịch vụ.
Evolution of our platform architecture
Allegro (sàn thương mại điện tử Ba Lan) ra đời năm 1999: 3 developer, vài trăm user, dữ liệu lưu trong file, chưa có SQL. Đến 2015 công ty có hàng chục team, hàng trăm lập trình viên. Bài kể bốn giai đoạn, mỗi giai đoạn…
Better Parallel Replication for MySQL
MySQL 5.5 và MariaDB 5.5 replicate đơn luồng: trên slave, transaction trước phải commit xong thì transaction sau mới chạy, trong khi master chạy nhiều transaction cùng lúc. Slave vì vậy ghi chậm hơn master, và master…
Evaluating MySQL Parallel Replication Part 3: Benchmarks in Production
Replication của MySQL lúc đó đơn luồng trên slave: muốn không có replication lag, master chỉ được ghi bằng khoảng một core, dù máy có 12 core trở lên. Đây là trần ghi của mỗi cluster.
Evaluating MySQL Parallel Replication Part 2: Slave Group Commit
MariaDB 10.0 và MySQL 5.7 có tham số trì hoãn commit trên master để nhiều transaction vào chung một nhóm (binlogcommitwaitcount/binlogcommitwaitusec ở MariaDB, binloggroupcommitsyncdelay/...nodelaycount ở MySQL): nhóm…
Zero-downtime Postgres migrations - the hard parts
GoCardless là công ty thanh toán: API ngừng nhận request thì merchant mất tiền. DB không được ngừng trả lời quá 1–2 giây.
Instagration Pt. 2: Scaling our infrastructure to multiple data centers
2013, khoảng một năm sau khi về Facebook: 200 triệu user/tháng, 20 tỷ ảnh. Họ bắt đầu "Instagration", chuyển từ AWS sang hạ tầng Facebook.
Search Architecture
Đầu 2015, Instagram chuyển toàn bộ hạ tầng search từ Elasticsearch sang Unicorn, hạ tầng search có nhận biết social graph của Facebook, đã chạy với index hàng nghìn tỉ document. Cùng giai đoạn, traffic search tăng 65%…
Building a lower-latency GC
GC gây pause không đoán trước, xấu cho hệ giao dịch. Cách thường làm là pool hết object, không cấp phát gì trên hot path; cách này chạy được nhưng code khó viết và khó suy luận. Jane Street muốn một GC cho phép vẫn cấp…
A Brief History of Scaling LinkedIn
LinkedIn ra đời năm 2003, tuần đầu có 2.700 thành viên. Năm 2015: hơn 350 triệu thành viên, hàng chục nghìn page mỗi giây, mobile chiếm hơn 50% traffic, backend chịu hàng triệu query mỗi giây.
Introducing Espresso - LinkedIn's hot new distributed document store
Trước Espresso, LinkedIn dùng Oracle (dữ liệu chính, strong consistency) và Voldemort (key-value). Phần lớn dữ liệu chính không cần đủ tính năng RDBMS nhưng lại cần đọc-sau-ghi và một change capture stream có thứ tự…
Making Your Feed More Relevant – Part I
Feed LinkedIn trộn nhiều loại update: bài chia sẻ của kết nối, gợi ý việc làm, tin tức, gợi ý kết bạn (PYMK), quảng cáo. Phản hồi là hành vi ngầm (click, like, comment, share, thời gian xem); đồ thị kết nối và profile…
Running Kafka At Scale
Năm 2015 Kafka chạm gần như mọi server LinkedIn: hơn 800 tỷ message/ngày (175 TB vào, 650 TB đọc ra), đỉnh 13 triệu message/giây (2,75 GB/s), hơn 1.100 broker trong hơn 60 cluster.