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. 82 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 · Square · 2018 Trung bình

Sharding Cash

Cash App bắt đầu là thử nghiệm Hack Week trên một MySQL; tới cuối 2016 đã hơn nửa triệu dòng code, chật vật giữ uptime lúc đỉnh. Đã dùng hết "sách giáo khoa": cache, chuyển dữ liệu lịch sử ra, đọc replica, mua phần cứng…

Bài tóm tắt · Tokio · 2018 Trung bình

Tokio Reform is Shipped and the Road to 0.2

Trước bản này, người dùng phải tự tạo và quản lý event loop, dù hầu hết đều làm giống nhau; chạy code trên thread của reactor khác hẳn chạy từ thread khác (thread pool). Reactor của Tokio vừa lo I/O vừa thực thi task…

Bài tóm tắt · Two Sigma · 2018 Trung bình

Introducing Flint: A Time-Series Library for Apache Spark

Dữ liệu tăng tới mức giải pháp một máy không còn đủ; Spark đã thành chuẩn cho big data, nhưng thiếu các thao tác chuỗi thời gian mà nghiên cứu cần.

Bài tóm tắt · Airbnb · 2017 Trung bình

Alerting Framework at Airbnb

Năm 2017 Airbnb không có đội vận hành riêng: từng team tự cấu hình monitoring và tự xử lý sự cố của service mình. Họ dùng Datadog.

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

How Discord Stores Billions of Messages

Bản đầu của Discord được viết trong chưa tới 2 tháng (đầu 2015). Mọi thứ nằm trong một replica set MongoDB, và họ nói rõ là cố ý: làm nhanh để kiểm chứng sản phẩm, nhưng luôn chừa đường sang giải pháp bền hơn. Họ biết…

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

Postmortem of database outage of January 31

Đầu 2017, GitLab.com chạy một primary + một secondary hot standby PostgreSQL; secondary chỉ để failover, mọi tải dồn vào primary. Primary đã là điểm hỏng chung trong vài sự cố trước (bloat, polling của CI giữ khoá hàng).

Bài tóm tắt · GoCardless · 2017 Trung bình

Incident review: API and Dashboard outage on 10 October 2017

Dữ liệu quan trọng nhất nằm trên Postgres 3 node: primary + 1 replica đồng bộ + 1 replica bất đồng bộ (mỗi lần ghi thành công đều có ít nhất 2 bản).

Bài tóm tắt · Segment · 2017 Trung bình

The million dollar engineering problem

Cuối quý 3/2016: 2/3 giá vốn (COGS) của Segment là hoá đơn AWS.

Bài tóm tắt · Segment · 2017 Trung bình

A Brief History of the UUID (KSUID)

Bài giới thiệu KSUID, thư viện Go sinh ID của Segment. Phần lớn bài là lịch sử của UUID. Bối cảnh trực tiếp: một hệ thống nội bộ dùng UUIDv4, vài tuần sau phát sinh yêu cầu sắp ID theo thời gian để lưu log lên S3 theo…

Bài tóm tắt · Slack · 2017 Trung bình

Flannel: An Application-Level Edge Cache to Make Slack Scale

Slack thiết kế cho team vài trăm người: khi khởi động, client gọi rtm.start nhận toàn bộ snapshot của team (user, channel, thành viên, tin mới nhất, DM...) rồi mở WebSocket nhận event real-time.

Bài tóm tắt · Slack · 2017 Trung bình

Maximum Warp: Building Migrations for Slack Enterprise Grid

Mô hình dữ liệu Slack: mọi dữ liệu của một team nằm trên cùng một shard MySQL, băm theo ID 64-bit của team. Dàn tải tốt, nhưng khó với dữ liệu vượt ranh giới một team.

Bài tóm tắt · Slack · 2017 Trung bình

Scaling Slack's Job Queue

Job queue chạy mọi việc không làm kịp trong request web: mỗi tin nhắn, push notification, unfurl URL, nhắc lịch, tính tiền. Ngày bận nhất hơn 1,4 tỉ job, đỉnh 33.000 job/giây.

Bài tóm tắt · Slalom Build · 2017 Trung bình

Secret Management Architectures: Finding the balance between security and complexity

Nhiều team để secret dạng plain text trong code hoặc file cấu hình, chỉ dựa vào việc repo là private. Slalom đề nghị tự hỏi: nhân viên nghỉ thì rotate secret có dễ không, bị lộ thì mất bao lâu để khoanh vùng, có audit…

Bài tóm tắt · Swiggy · 2017 Trung bình

Kabootar — Swiggy's Communication Platform

Swiggy (giao đồ ăn, Ấn Độ) cần liên lạc với khách hàng, shipper, nhà hàng và nhân viên chăm sóc khách hàng qua push, SMS, email.

Bài tóm tắt · Walmart · 2017 Trung bình

Avoid pitfalls in scaling your Cassandra cluster: lessons and remedies

Nhiều team ở Walmart dùng Cassandra làm nguồn dữ liệu chính, đọc ghi hàng chục tới hàng trăm nghìn ops/giây. Theo bài, để tới được đó họ phải "quên" nhiều mẹo của thế giới RDBMS và chấp nhận schema trông "lạ" nhưng…

Bài tóm tắt · Airbnb · 2016 Trung bình

Unlocking Horizontal Scalability in Our Web Serving Tier

Monolith Rails chạy trên nhiều web server, nói chuyện với vài service Java; dữ liệu lõi trong MySQL trên RDS, đã tách database theo chức năng năm 2015.

Bài tóm tắt · Grab · 2016 Trung bình

This Rocket Ain't Stopping - Achieving Zero Downtime for Rails to Golang API Migration

Grab đang chuyển từ Rails + NodeJS sang kiến trúc service toàn Go. Một phần mục tiêu là về tổ chức: chuyển các kỹ sư Rails sang các team Go, chung một codebase.

Bài tóm tắt · Quora · 2016 Trung bình

Ensuring Quora's Resilience to Disaster

Quora backup hằng ngày mọi kho dữ liệu gốc (MySQL, HBase, Redis, feed service) và nhân bản tới nhiều nơi.

Bài tóm tắt · Zillow · 2016 Trung bình

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…

Bài tóm tắt · Airbnb · 2015 Trung bình

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à…

Bài tóm tắt · GoCardless · 2015 Trung bình

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.

Bài tóm tắt · Pinterest · 2015 Trung bình

Sharding Pinterest: How we scaled our MySQL fleet

2011 Pinterest tăng trưởng cực nhanh; khoảng 9/2011 mọi tầng hạ tầng quá tải, vài hệ NoSQL "đều hỏng nặng", còn đọc từ nhiều MySQL slave gây bug khó chịu (nhất là với cache). Năm 2015: hơn 50 tỉ Pin trên 1 tỉ board.

Bài tóm tắt · Wix · 2015 Trung bình

Scaling to 100M: MySQL is a Better NoSQL

Mỗi request tới một site Wix (domain riêng hoặc subdomain) phải phân giải URL → site: một phép tra key/value.

Bài tóm tắt · Wix · 2015 Trung bình

Building and Open-Sourcing Wix's A/B Testing System

Wix làm continuous delivery: code đẩy lên là chạy production. Theo Wix, vì code tồi cũng lên production ngay, một hệ thống experiment (A/B test và feature toggle) là điều kiện cần của CD: đánh dấu code là thử nghiệm,…