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. 72 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 8.979 bài thuộc 133 công ty có trang riêng được hiển thị cho thành viên. Cảm ơn những người duy trì các danh sách đó.

Mọi giai đoạn 1. Khởi đầu2. Tăng trưởng3. Quy mô lớn4. Điều chỉnh
Mọi độ khó DễCơ bảnTrung bìnhKhóNâng cao
Bài tóm tắt · Yelp · 2020 Nâng cao

Orchestrating Cassandra on Kubernetes with Operators

Cassandra ở Yelp dùng cho cả dữ liệu chính lẫn dữ liệu dẫn xuất; mỗi cụm production trải nhiều region AWS, chạy trên EC2 + ASG, dữ liệu trên EBS (backup bằng snapshot), seed provider dựa trên synapse.

Bài tóm tắt · Airbnb · 2019 Nâng cao

Avoiding Double Payments in a Distributed Payments System

Airbnb chuyển sang SOA; một API thanh toán gọi xuống nhiều service, mỗi service đổi trạng thái và có tác dụng phụ: thực chất là một transaction phân tán, trong khi request mạng chắc chắn có lúc timeout.

Bài tóm tắt · Atlassian · 2019 Nâng cao

Our not-so-magic journey scaling low latency, multi-region services on AWS

Atlassian "all in" trên AWS từ 2016; nhiều service phải viết lại cho stateless.

Bài tóm tắt · Dropbox · 2019 Nâng cao

Enhancing Bandaid load balancing with real-time backend server load information

Request của user qua GSLB (DNS) tới hơn 20 PoP, qua L4 rồi edge proxy L7, vào data center thì Bandaid định tuyến tới service. Bandaid đang dùng random N choices (N = 2) theo số request đang mở mà chính instance đó thấy,…

Bài tóm tắt · eBay · 2019 Nâng cao

GRIT: a Protocol for Distributed Transactions across Microservices

Trong microservices, một ứng dụng gọi nhiều service do nhiều team viết, mỗi service dùng DB riêng. Vẫn có nhu cầu thật về giao dịch ACID xuyên service.

Bài tóm tắt · Netflix · 2019 Nâng cao

DBLog: A Generic Change-Data-Capture Framework

Nền tảng Delta của Netflix giữ nhiều kho dữ liệu đồng bộ: một kho là nguồn sự thật (MySQL), các kho khác dẫn xuất (Elasticsearch). CDC thay cho dual write và transaction phân tán.

Bài tóm tắt · Tinder · 2019 Nâng cao

Geosharded Recommendations Part 3: Consistency

Sau khi shard theo địa lý, có hai kho dữ liệu phải khớp nhau:

Bài tóm tắt · V8 (Google) · 2019 Nâng cao

The story of a V8 performance cliff in React

V8 không lưu số JavaScript (Float64 theo spec) theo một cách cố định: số nguyên 31 bit có dấu là Smi, số khác là HeapNumber. Mỗi trường của object được đánh dấu "representation" trên shape (hidden class): Smi, Double…

Bài tóm tắt · Dropbox · 2018 Nâng cao

Meet Bandaid, the Dropbox service proxy

Bandaid bắt đầu là reverse proxy bù cho điểm yếu của các service phía server, rồi thành service proxy giúp Dropbox chuyển sang SOA. Viết bằng Go như phần lớn hạ tầng lõi; hỗ trợ TLS termination, HTTP/2, gRPC, service…

Bài tóm tắt · Netflix · 2018 Nâng cao

Rethinking Netflix's Edge Load Balancing

Cloud Gateway (Zuul) nhận hơn 1 triệu request/giây (2018). Zuul dùng Ribbon round-robin + loại server có tỉ lệ lỗi kết nối cao, kèm vài tuỳ biến bớt traffic cho server mới khởi động; một số cụm origin vẫn có lỗi do quá…

Bài tóm tắt · Netflix · 2018 Nâng cao

Scaling Time Series Data Storage — Part II

1/2016 Netflix mở ra 130 nước, 20 ngôn ngữ; cuối 2016 thêm video preview khi duyệt trên TV. Kiến trúc phần 1 coi mọi dữ liệu xem như nhau.

Bài tóm tắt · Pinterest · 2018 Nâng cao

Building a dynamic and responsive Pinterest

2015: phần lớn nội dung được sinh sẵn cho user trước khi họ đăng nhập, lưu tĩnh trong HBase. Kiến trúc này đưa Pinterest tới 100 triệu MAU.

Bài tóm tắt · Discord · 2017 Nâng cao

How Discord Scaled Elixir to 5,000,000 Concurrent Users

Discord dùng Elixir/Erlang VM (BEAM) từ prototype đầu tiên. Sau 2 năm: gần 5 triệu user đồng thời, hàng triệu event/giây (2017).

Bài tóm tắt · Dropbox · 2017 Nâng cao

Infrastructure update: evolution of the Dropbox backbone network

Đưa hàng trăm PB dữ liệu về data center riêng () trong khi user vẫn tăng đòi hỏi mạng phải lớn nhanh. Họ xây song song một edge network toàn cầu và một backbone nối các data center ở Bắc Mỹ với nhau và với các edge…

Bài tóm tắt · Instagram · 2017 Nâng cao

Dismissing Python Garbage Collection at Instagram

Web server Django chạy uWSGI ở chế độ pre-fork: process master fork ra hàng chục worker để chia sẻ bộ nhớ theo copy-on-write (CoW). Worker bị restart khi RSS vượt ngưỡng để tránh OOM.

Bài tóm tắt · V8 (Google) · 2017 Nâng cao

Taming architecture complexity in V8 — the CodeStubAssembler

Builtin là các hàm có sẵn trong mọi chương trình JavaScript (Array.prototype....). V8 viết chúng theo hai cách, cả hai đều có giá:

Bài tóm tắt · Airbnb · 2016 Nâng cao

Nebula as a Storage Platform to Build Airbnb's Search Backends

2015: dữ liệu cá nhân hoá cho search vượt sức một máy. Thay vì chỉ làm lại service đó, Airbnb xây nền tảng chung vì thấy nhiều service sẽ cần cùng thứ: phục vụ độ trễ ms cho traffic site, nhận cập nhật realtime từ…

Bài tóm tắt · Dropbox · 2016 Nâng cao

Scaling to exabytes and beyond (Magic Pocket)

Dropbox luôn là hybrid cloud: metadata và web server ở data center riêng, nội dung file trên Amazon S3. Họ là khách hàng sớm của S3 và nói thẳng là không thể lớn nhanh như vậy nếu không có AWS.

Bài tóm tắt · Uber · 2016 Nâng cao

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.

Bài tóm tắt · Instagram · 2015 Nâng cao

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.

Bài tóm tắt · Riot Games · 2015 Nâng cao

Chat Service Architecture: Servers

Chat LoL (2015): mỗi ngày thường định tuyến khoảng 1 tỷ event (presence, message, IQ) và hàng triệu REST query; một ngày tháng 7 có 1,7 triệu lượt kết bạn mới.

Bài tóm tắt · Booking.com · 2014 Nâng cao

Better Crash-safe replication for MySQL

Booking.com (2014) dùng replication MySQL để scale đọc, với hàng nghìn slave; số lượng đó nghĩa là sớm muộn sẽ có slave chết.

Bài tóm tắt · Meta · 2014 Nâng cao

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).

Bài tóm tắt · Go · 2013 Nâng cao

Inside the Go Playground

Playground (9/2010) cho chạy chương trình Go bất kỳ từ trình duyệt, dùng trong tài liệu, tour, slide. Ba phần: backend trên máy của Google (compile + chạy, trả output qua RPC), frontend trên App Engine (nhận HTTP, gọi…