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 đó.

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 · Airbnb · 2019 Trung bình

Dynein: Building a Distributed Delayed Job Queueing System

Job nền ở Airbnb gồm cả job hẹn giờ xa (nhắc check-in trước nhiều tháng, thậm chí nhiều năm). Yêu cầu: at-least-once, scale ngang, cô lập theo service, p95 lệch giờ dưới 10 giây, ack từng message, dead letter queue, mỗi…

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 network chắc chắn có lúc timeout.

Bài tóm tắt · Alibaba · 2019 Trung bình

A Decade of Evolution of Alibaba's Databases - Part 2

2016, giám sát: hệ giám sát DB thành nút cổ chai khi số DB tăng: độ chi tiết chỉ 1 phút, sau tối ưu mới được 10 giây. Bộ phận bảo mật lại đòi thu toàn bộ câu SQL để phân tích realtime. Họ dựng lại cả hệ giám sát (giám…

Bài tóm tắt · Alibaba · 2019 Trung bình

A Decade of Evolution of Alibaba's Databases - Part 1

Double 11 tạo ra một đỉnh tải cực lớn đúng 00:00, và chính đỉnh đó định hướng công nghệ database của Alibaba suốt một thập kỷ.

Bài tóm tắt · Appian · 2019 Trung bình

Chaos Testing a Distributed System with Jepsen

Data store của Appian (nền tảng low-code) chọn Consistency khi phải đánh đổi theo CAP và cam kết linearizability: ghi xong thì mọi lần đọc bắt đầu sau đó phải thấy giá trị đó hoặc mới hơn; cộng read-your-own-writes,…

Bài tóm tắt · Appian · 2019 Trung bình

Chaos Testing a Distributed System with Jepsen — Part II

Sau khi chọn Jepsen, việc khó là đưa nó vào hạ tầng thật: hệ cần test (SUT) phụ thuộc Kafka và Zookeeper, binary và thư viện nằm trong kho nội bộ có xác thực, và test phải chạy liên tục chứ không chỉ trên máy dev.

Bài tóm tắt · Asana · 2019 Trung bình

Analysis of recent downtime & what we're doing to prevent future incidents

Đa số dữ liệu người dùng của Asana đã shard, nhưng một phần mô hình dữ liệu dùng chung cho mọi team/workspace của user nằm trong một database dùng chung (MySQL trên RDS, cấu hình HA).

Bài tóm tắt · Atlassian · 2019 Trung bình

Using an event-driven architecture to improve Jira Software responsiveness

Board của Next-Gen Jira Software poll mỗi phút để lấy dữ liệu mới. Hậu quả: người khác sửa issue thì phải chờ khoảng một phút mới thấy, và phần lớn request là thừa vì không có gì đổi.

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 · Basecamp · 2019 Cơ bản

Basecamp 2 and Basecamp 3 search outage report

Basecamp 2 và tính năng search của Basecamp 3 phụ thuộc vào các kết nối network tới một nhà cung cấp cloud.

Bài tóm tắt · Booking.com · 2019 Dễ

How Reliability and Product Teams Collaborate at Booking.com

2019: hơn 1,5 triệu đêm phòng/ngày, 50.000+ server vật lý ở 4 data center và 6 PoP. Quy mô đủ để có team reliability riêng cho từng nền tảng lớn.

Bài tóm tắt · Bumble · 2019 Trung bình

A monolithic architecture for our clients' hundreds of versions: how we write and support tests

Backend Badoo là monolith PHP 12 năm tuổi, khởi đầu không có test. Backend developer viết tính năng và đưa lên production trước mọi client (app mobile, site), bọc bằng feature flag hoặc A/B test; client phát hành sau…

Bài tóm tắt · Discord · 2019 Trung bình

Using Rust to Scale Elixir for 11 Million Concurrent Users

Discord đổi cách cập nhật Member List: chỉ gửi thay đổi của phần danh sách đang hiển thị thay vì mọi thành viên, đỡ bandwidth và pin cho client.

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 · Dropbox · 2019 Khó

Courier: Dropbox migration to gRPC

Dropbox chạy hàng trăm service bằng nhiều ngôn ngữ, trao đổi hàng triệu request mỗi giây (2019). Trước Courier có giao thức tự serialize, Thrift cho pipeline log, và "legacy RPC" chính là HTTP/1.1 + protobuf.

Bài tóm tắt · Dropbox · 2019 Trung bình

Finding Kafka's throughput limit in Dropbox infrastructure

Kafka ở Dropbox phục vụ analytics, ML, monitoring, search, stream processing (Cape); đội Jetstream vận hành và cần biết giới hạn throughput để cấp cluster.

Bài tóm tắt · Dropbox · 2019 Khó

How we optimized Magic Pocket for cold storage

Magic Pocket () lưu block bất biến tối đa 4 MB trên đĩa quay (SMR từ 2018, ); trong một region thì mới upload là replication n-way, sau đó erasure coding nền.

Bài tóm tắt · eBay · 2019 Khó

Centralized Application Logging at eBay (CAL Ingress)

CAL gom log cục bộ của các application server về một chỗ và làm báo cáo cho mọi mảng của eBay. CAL Ingress nhận log từ hàng nghìn client qua kết nối TCP sống lâu, chia ra: raw log tới Filer, metric VID (gộp lại) qua…

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 · GitLab · 2019 Trung bình

How we used delayed replication for disaster recovery with PostgreSQL

GitLab.com (2/2019): khoảng 3 triệu user, gần 7 triệu project; theo GitLab là một trong những site SaaS single-tenant mã nguồn mở lớn nhất. Postgres là thành phần sống còn.

Bài tóm tắt · GitLab · 2019 Trung bình

Lessons from our journey to enable global code search with Elasticsearch on GitLab.com

Bản tự host của GitLab đã có tích hợp Elasticsearch (global search, code search) vài năm, nhưng GitLab.com, instance lớn nhất, vẫn chưa bật được.

Bài tóm tắt · GitLab · 2019 Trung bình

Update: Elasticsearch lessons learnt for Advanced Global Search

Deadlock "con gà quả trứng": muốn giảm kích thước index thì cần dữ liệu từ một deployment thật, mà chưa có deployment thật vì index quá lớn. Phản hồi khách và test nhỏ không đủ; dogfooding là cách tốt nhất.

Bài tóm tắt · GitLab · 2019 Dễ

GitLab's unconventional journey to CI/CD and Kubernetes

feature freeze từ ngày 7, release ngày 22;

Bài tóm tắt · Grab · 2019 Dễ

Designing Resilient Systems Beyond Retries (Part 2): Bulkheading, Load Balancing, and Fallbacks

Bài thứ hai trong series ba phần của Grab về các kỹ thuật chịu lỗi "ngoài retry" (bài 1 nói về rate limiting). Bài thiên về giải thích pattern, chỉ có vài đoạn ngắn về cách Grab áp dụng.