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 đó.
The Story of Apollo – Amazon's Deployment Engine
Khi chuyển sang service-oriented architecture, Amazon tách phần mềm thành nhiều service nhỏ và tổ chức thành các team nhỏ tự chủ, mỗi team sở hữu cả phát triển lẫn vận hành một service. Team ra tính năng nhanh hơn,…
Outage post-mortem
Dropbox chạy hàng nghìn database, mỗi DB một master và hai replica, cộng backup full và incremental ở môi trường riêng. Các DB này giữ metadata cho tính năng (chia sẻ album, camera upload, một số API), không giữ nội…
Did you mean "Galene"?
Search của LinkedIn (hơn 300 triệu member, 2014) dựng trên Lucene, rồi đắp thêm từng lớp mỗi khi gặp giới hạn: Sensei (sharding, quản lý cluster), Search Content Store (giữ mọi term của entity, vì Lucene cập nhật bằng…
Garbage Collection Optimization for High-Throughput and Low-Latency Java Applications
Khi dựng thế hệ mới của feed data platform (index cập nhật từ member, company, group để phục vụ feed), team làm prototype gần đủ chức năng, chạy lại workload query của hệ đang chạy để đo GC trong thời gian dài. Java…
Maximizing Our Publishing Platform Reach with Network Distribution
Nền tảng viết bài của LinkedIn phân phối bài tới kết nối cấp 1 và người theo dõi (2014: tác giả trung bình có 1.049 kết nối cấp 1 và 42 follower). Ba kênh: feed, thông báo, email Pulse.
Real-time Analytics at Massive Scale with Pinot
Khoảng 2012, các sản phẩm phân tích chạy trên Oracle và Voldemort, không hợp với OLAP; dữ liệu tăng theo cả chiều rộng lẫn chiều sâu. Ví dụ Jobs Analytics: xử lý và nén trên Hadoop rồi đẩy lại vào Oracle, nên không gần…
Questioning the Lambda Architecture
Lambda architecture (Nathan Marz): cùng một luồng dữ liệu bất biến được đưa song song vào hệ batch (MapReduce) và hệ stream (Storm); logic biến đổi viết hai lần, kết quả hai bên ghép lại lúc truy vấn.
Lessons from Deploying MySQL GTID at Scale
Replication MySQL truyền thống dựa trên toạ độ tương đối (tên file binlog + vị trí). GTID (MySQL 5.6) gán cho mỗi transaction một ID duy nhất, nên replica tự biết mình đã chạy tới đâu (auto-positioning).
Using Presto in our Big Data Platform on AWS
Nền big data của Netflix (2014) đặt data warehouse trên S3: compute tách khỏi storage, nhiều cluster (chạy dài hay tạm) cùng đọc chung dữ liệu. User viết job Pig hoặc Hive cho ETL và phân tích; một phần nhỏ kết quả và…
How Twitter Uses Redis to Scale - 105TB RAM, 39MM QPS, 10,000+ Instances
Năm 2014 cache của Twitter: khoảng 105 TB RAM, 39 triệu QPS, hơn 10.000 instance; Redis từ 2010 cho Timeline (danh sách ID tweet), rồi Ads. Dịch vụ cache tăng từ một project lên gần trăm project dùng.
Open Whisper Systems partners with WhatsApp to provide end-to-end encryption
Open Whisper Systems đã phát triển giao thức mã hoá mở cho nhắn tin bất đồng bộ (TextSecure, sau đổi tên Signal Protocol) trong ba năm. Hai bên đã làm việc với nhau nửa năm trước khi thông báo.
How WhatsApp Grew to Nearly 500 Million Users, 11,000 cores, and 70 Million Messages a Second
465 triệu user/tháng; 19 tỉ tin vào và 40 tỉ tin ra mỗi ngày; 600 triệu ảnh, 200 triệu voice, 100 triệu video mỗi ngày.
Call me maybe: Cassandra
Cassandra theo mô hình Dynamo (hash ring, N bản, quorum điều chỉnh được, hinted handoff, anti-entropy) nhưng bỏ vector clock để dùng last-write-wins thuần: một round-trip mỗi ghi thay vì hai.
Call me maybe: Kafka
Kafka 0.8 thêm replication: mỗi partition một leader (bầu qua ZooKeeper) giữ ISR (in-sync replica); ghi commit khi mọi node trong ISR ack. LinkedIn tuyên bố chịu được f−1 lỗi với f node vì theo kinh nghiệm vận hành của…
Rest.li: RESTful Service Architecture at Scale
LinkedIn cần một cách chuẩn để mô tả resource trong kiến trúc SOA cho client viết bằng nhiều ngôn ngữ, chịu được vài nghìn QPS mỗi instance, bất đồng bộ, và cho phép interface tiến hoá lâu dài.
The Log: What every software engineer should know about real-time data's unifying abstraction
Khoảng 2007 LinkedIn bắt đầu chạm giới hạn của một database tập trung, chuyển sang một danh mục hệ phân tán chuyên biệt: search, social graph, Voldemort (key-value), Espresso (document), recommendation, OLAP, Hadoop,…
Under the Hood: Building out the infrastructure for Graph Search
Facebook có nhiều hệ search cũ chồng nhau: PPS (theo từ khoá, cá nhân hoá, lọc theo loại entity); Typeahead (2009–2010, tìm theo tiền tố khi gõ, viết lại toàn bộ backend và frontend để đạt hiệu năng, nhưng index bị giới…
Active-Active for Multi-Regional Resiliency
Theo Netflix, tỉ lệ hỏng phụ thuộc hai thứ: quy mô deploy và tốc độ thay đổi; chạy lớn mà vẫn đổi nhanh thì "lúc nào cũng có thứ hỏng". Mục tiêu nội bộ là 99,99%. Mất trọn một region rất hiếm, nhưng chính tốc độ thay…
Scryer: Netflix's Predictive Auto Scaling Engine
Netflix dùng Amazon Auto Scaling (AAS): tăng giảm số instance theo metric hiện tại (thường là load average). Theo Netflix, AAS hiệu quả cho availability và chi phí, nhưng phản ứng sau khi tải đã đổi.
What it takes to run Stack Overflow
Nick Craver mô tả Stack Overflow là chạy "with scale" nhưng không "at scale": vận hành rất hiệu quả nhưng chưa "lớn". Số liệu một ngày (12/11/2013), chỉ tính data center đang hoạt động, không tính CDN:
The Architecture Twitter Uses to Deal with 150M Active Users, 300K QPS, a 22 MB/S Firehose, and Send Tweets in Under 5 Seconds
150 triệu user hoạt động; 300K QPS đọc timeline nhưng chỉ khoảng 6.000 request/giây ghi: Twitter chủ yếu là nơi tiêu thụ. 400 triệu tweet/ngày (trung bình 5K/giây, đỉnh 7K/giây, hơn 12K/giây khi có sự kiện lớn);…
New Tweets per second record, and how!
3/8/2013 (khán giả Nhật xem Castle in the Sky): đỉnh 143.199 tweet/giây, trong khi bình thường là 500 triệu tweet/ngày, tức ~5.700 TPS. Đỉnh gấp ~25 lần mà user không thấy gián đoạn.
A Closer Look at the Christmas Eve Outage
Cuối 2012, Netflix dùng hàng trăm ELB, mỗi cái cho một service hoặc một phiên bản service; mỗi nhóm thiết bị (trong hơn một nghìn loại thiết bị) phụ thuộc vào một số ELB riêng. Kiến trúc chịu được mất một phần hoặc cả…
Lessons Netflix Learned from the AWS Outage
21/4/2011: incident lớn ở AWS US-East làm sập hoặc làm chậm nhiều website lớn.