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. 531 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 · Mercari · 2019 Trung bình

Payment Transaction Management in Microservices

PaymentService của Merpay (mảng thanh toán của Mercari) nằm giữa kiến trúc microservices: dùng các phương thức thanh toán ở service phía dưới (kể cả service bên ngoài như thẻ tín dụng) để cung cấp luồng thanh toán cho…

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

How our security team handle secrets

Nền tảng Monzo 2019: khoảng 1.100 microservice Go trên Kubernetes tự vận hành (kể cả etcd), Cassandra, Kafka và NSQ.

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

Remote Read Meets Streaming

Prometheus có remote API từ bản 1.x: write (Prometheus đẩy sample ra hệ khác, cách phổ biến để lưu dài hạn) và read (hệ khác đọc thẳng dữ liệu trong TSDB của Prometheus, không qua PromQL). Remote read có từ 3/2017, dùng…

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

Controlled Chaos with Fault Injection Testing

Riot Games API (dữ liệu League cho developer bên ngoài) có rate limiter ở edge (ESRL); vì request rơi vào server bất kỳ, tổng số call mỗi khách phải đếm ở một chỗ trung tâm là Redis.

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

Implementation of a monitoring strategy for products based on microservices

Một sản phẩm Salesforce sắp GA, ghép từ nhiều microservice do nhiều team sở hữu. Câu hỏi đơn giản "sản phẩm có đang dùng được không?" nằm rải trong các service.

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

Why isn't all test automation run on the pipeline?

Unit test đã chạy trong mọi pipeline, nhưng test API, UI, tích hợp, module thường vẫn chạy tay trên laptop. Theo tác giả, lý do quy về ba thứ: giá trị (chưa ai tin đáng làm), kiến trúc (hệ không chia module) và khả thi…

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

Alerting on Service-Level Objectives (SLOs)

Theo SoundCloud, alert dựa trên SLO gần như là "viên đạn bạc" cho alert có ý nghĩa: đạt SLO là định nghĩa của việc đáp ứng kỳ vọng của user, còn một mức lỗi nằm trong SLO (error budget) là chấp nhận được. Họ áp dụng…

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

Gradle Remote Build Cache Misses

Thời gian build tăng là một trong những rủi ro kỹ thuật hàng đầu của đội Android SoundCloud, nằm trong mục tiêu quý của công ty dưới tên modularization. Ngoài module hoá, cách thứ hai là tránh làm lại việc bằng build…

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

Solving Remote Build Cache Misses by Annoying Your Colleagues

Gradle khuyên CI ghi cache từ build sạch, developer chỉ đọc; SoundCloud cho cả CI đọc cache để CI nhanh hơn. Miss xảy ra khi danh sách input của cùng một task khác nhau giữa CI và máy developer.

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

Stack Overflow: How We Do App Caching - 2019 Edition

Thang latency (2019): RAM khoảng 100 ns; một lần gọi Redis qua LAN của họ 0,2–0,5 ms (chậm hơn RAM 2.000–5.000 lần); trang câu hỏi render trung bình 18–20 ms, nên vài lần gọi Redis đã chiếm một phần đáng kể.

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

How We Improved Our Performance Using ElasticSearch Plugins: Part 2

Mỗi query gợi ý phải gửi kèm danh sách bỏ qua (người đã xem gần đây, đã match), dùng terms query. Với người dùng rất tích cực, danh sách này dài.

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

Geosharded Recommendations Part 1: Sharding Approach

Search là thành phần chính của hệ gợi ý realtime. Nhiều năm Tinder chạy một cluster Elasticsearch, một index, 5 shard mặc định, scale bằng thêm replica và máy mạnh hơn. Đến lúc dùng rất nhiều máy mạnh mà CPU vẫn cao và…

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

Geosharded Recommendations Part 2: Architecture

Phần 1 đã chốt thuật toán chia geoshard trên S2 và đóng gói thành một microservice nội bộ. Phần 2 trả lời ba câu hỏi triển khai: "shard" cụ thể là gì trong Elasticsearch, cluster cần cỡ nào, và cân tải ra sao.

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

Phoenix — Tinder's Testing Platform, Part I

Tinder dùng thí nghiệm để quyết định thay đổi sản phẩm và tự dựng Phoenix để quản lý mọi thí nghiệm.

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

Phoenix — Tinder's Testing Platform, Part II (Levers)

Một tính năng của app mobile đi qua PM, design, code, QA, build rồi duyệt của app store. Bất kỳ thay đổi nào sau đó (bug lọt QA, chỉnh chi tiết, muốn ra mắt đúng giờ) đều phải lặp lại cả vòng; trên mobile không thể…

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

Diagnostics with Tracing

Trong code sync, thứ tự log ngầm cho biết ngữ cảnh: các dòng giữa "accepted connection" và "closing connection" thuộc về kết nối đó. Trong hệ async như Tokio, một thread chạy xen kẽ nhiều task, nhiều worker thread chạy…

Bài tóm tắt · V8 (Google) · 2019 Trung bình

Code caching for JavaScript developers

Parse + compile JavaScript chiếm phần đáng kể thời gian khởi động trang. Code cache lưu kết quả (bytecode) để lần sau bỏ qua bước đó.

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

Next.js 8 Webpack Memory Improvements

next build cho project vài trăm trang ngốn RAM, đôi khi vượt trần heap khoảng 1,4 GB của Node.js; theo Vercel, framework phải chạy tốt từ một đến hàng nghìn trang.

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

Architecting Restaurant Wait Time Predictions

Yelp Waitlist cho khách xếp hàng online ở nhà hàng không nhận đặt chỗ; mỗi lần xếp hàng, một model dự đoán thời gian chờ. Hệ phải bám trạng thái hiện tại của nhà hàng (bao nhiêu người đang chờ, giờ đóng cửa) và chịu QPS…

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

Snitch: Putting consistency back into S3

Hạ tầng analytics của Box coi S3 là nguồn sự thật trên cloud: dữ liệu ghi vào Kafka on-prem, committer chép sang bucket nguồn S3 (có thể trùng do Kafka giao lại), job MapReduce dedupe sang bucket đích, Hive và ETL sang…

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

Open Sourcing Coinbase's Secure Deployment Pipeline (Odin)

Theo Coinbase (5/2018): deploy hàng trăm lần mỗi ngày trên hàng trăm project; một tính năng đi từ ý tưởng tới production dưới một giờ.

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

How we rolled out one of the largest Python 3 migrations ever

App desktop Dropbox (Windows, macOS, Linux) phần lớn viết bằng Python từ dòng code đầu tiên; hơn 1 triệu dòng Python, hàng trăm triệu bản cài, phát hành cho mọi user mỗi hai tuần (2018). Bắt đầu chuyển sang Python 3 từ…

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

Introducing Grab-Kit: Distributed Service Design at Grab

Sau khi tách monolith thành microservices, Grab gặp bài toán mới: tăng trưởng theo cấp số nhân mà vẫn giữ được sự nhất quán. Các service có API, SDK, xử lý lỗi, transport khác nhau; log mỗi nơi một định dạng; không truy…

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

Rolling the Heroku Redis Fleet

Heroku quản lý hàng triệu database. Một lỗ hổng Redis bị cấm công bố (CVE-2018-11218) buộc nâng cả fleet Redis mà không được báo nguyên nhân cho khách. Plan trả phí có HA: standby nhân bản bất đồng bộ, tự thay primary…