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 đó.
How we improved reporting and monitoring of test automation results
Từ 2015 trivago đã đẩy kết quả test tự động vào ELK. Với web app viết lại (Warp) và continuous delivery, sản phẩm chính có hàng chục release mỗi ngày, nên cần biết nhanh một test e2e hỏng là do PR hay do flaky.
Twitter's Blobstore Hardware Lifecycle Monitoring and Reporting Service
Blobstore lưu ảnh, video và blob khác của Twitter, phần lớn trên máy bare metal ở data center riêng. Lúc đầu, máy vào ra khỏi cluster Blobstore trong vòng đời của nó mà không ai nhìn thấy: muốn biết trạng thái hạ tầng…
The data platform cluster operator service for Hadoop cluster management
Twitter dùng Apache Hadoop bản gốc, không dùng giải pháp Hadoop enterprise, nên thiếu công cụ quản lý cluster chuẩn ở quy mô của họ.
Constraint Management for cluster operation safety and reliability at Twitter
Team Messaging (Kafka và PubSub) chạy hàng chục cluster Kafka broker trên hybrid Mesos, mỗi cluster từ vài chục đến vài trăm broker. Dữ liệu replicate n bản nên mất tối đa n-1 máy là an toàn; mất nhiều hơn thì lỗi…
Attribute-Based Access Control at Uber
Uber phân quyền theo policy qua một service tập trung là Charter (giống IAM của AWS/GCP). Policy được phân phối xuống các microservice, và mỗi service đánh giá, thực thi tại chỗ bằng thư viện authfx.
How to Think About Security in Next.js
Server Components làm mờ ranh giới server/client: props truyền xuống client component có thể mang theo dữ liệu nhạy cảm mà không ai để ý. Bài hướng dẫn nhóm bảo mật của Vercel cách nghĩ về mô hình này.
WhatsApp calls: Enhancing security and privacy
Phần mềm gọi điện là đường tấn công hấp dẫn: nhiều giao thức phức tạp (WebRTC, PJSIP có nhiều CVE), và client thường tự xử lý gói tin đến để thiết lập cuộc gọi nhanh hơn, nên lỗ hổng có thể bị khai thác "zero-click",…
How WhatsApp's device verification protects your account
Mã hoá đầu cuối chống nghe lén trên đường truyền, nên kẻ tấn công chuyển sang nhắm vào chính điện thoại.
Deploying key transparency at WhatsApp
Mã hoá đầu cuối chỉ đáng tin nếu hai đầu biết public key của nhau là thật. Public key do WhatsApp lưu và phát, nên server độc (hay bị xâm nhập) có thể đưa key giả để làm person-in-the-middle.
How we manage our 1200 incident playbooks
Zalando gom playbook incident về một chỗ vào 9/2019, khi chuẩn bị Cyber Week. Đến 2023: hơn 1.200 playbook, cho 850+ application thuộc diện trực, 100+ team on-call (khoảng 1,41 playbook/app, 12/team). Số playbook tăng…
The Data Infra Behind Zillow's 3x Growth in Experiment Volume
Giữa 2020, gần 200 triệu người dùng unique mỗi tháng. Các team dùng gần một chục công cụ thí nghiệm mua hoặc tự viết, mỗi cái giải một phần: có nơi gán bucket tốt nhưng PM chờ data scientist hàng tuần để có scorecard;…
Sharing Mobile Application Code Across Platforms with Kotlin Multiplatform Mobile for GraphQL Queries
App Premier Agent (cho môi giới) có bản iOS và Android viết riêng: code gần giống nhau viết hai lần, bug do hai bên khác nhau. Query GraphQL được viết lại ở cả hai nền tảng và đã gây bug (lộ ra khi viết UI test với mock…
Scaling Production Globally: Solving observability problems for developers (Part-2)
Sau khi đưa Istio lên nhiều cluster ở nhiều region (phần 1), lượng metric tăng mạnh. Achievers dùng New Relic làm "single pane of glass" cho cả nền tảng phân tán.
Scaling Production Globally — The service mesh facelift (Part-1)
Achievers tăng nhanh trong hai năm, mở rộng microservice sang nhiều region trên GKE với yêu cầu data residency chặt. Các cluster Kubernetes đã có nhưng không có failover giữa region; theo team SRE, mất một cluster hay…
Automated Incident Management Through Slack
Airbnb chạy hơn một nghìn microservice do hàng trăm team nhỏ quản lý (2022). Khi có incident, khó nhất là biết service nào hỏng và phải page ai.
An Article to Learn About ByteDance Microservices Middleware CloudWeGo
2014: ByteDance đưa Go vào để giải bài toán đồng thời cao của push service giữ kết nối lâu.
Hertz, an Ultra Large Scale Enterprise-Level Microservice HTTP Framework, is Now Officially Open Source
Framework HTTP nội bộ trước đây của ByteDance là một lớp bọc Gin: dễ dùng, hệ sinh thái đầy đủ. Khi nghiệp vụ lớn lên, nhu cầu hiệu năng và mở rộng tăng nhanh. Gin xây trên net/http của Go nên, theo team, khó mở rộng…
Kitex: Unifying Open Source Practice for a High-Performance RPC Framework
Lịch sử: ByteDance bắt đầu dùng Go năm 2014; năm 2015 dựng service nội bộ với Thrift cho RPC; 2016 ra framework RPC Go đầu tiên Kite, làm nhanh cho giai đoạn tăng trưởng, ít tính trước. Nhu cầu phức tạp dần và số…
How Discord Supercharges Network Disks for Extreme Low Latency
Discord chạy các cluster ScyllaDB trên Google Cloud, khoảng 4 tỉ tin nhắn/ngày (2022). Khi tải cao, queue đọc đĩa của DB tăng mãi và query bắt đầu timeout.
Moving e2e testing into production with multi-tenancy for increased speed and reliability
Thời monolith, nhu cầu test end-to-end được đáp ứng bằng sandbox. Sang microservices, chạy hết các service trên một máy không nổi, nên dựng môi trường staging riêng (bản sao production không có PII).
Using Fault Injection Testing to Improve DoorDash Reliability
DoorDash viết backend theo microservice; một request từ app có thể đi qua hàng chục tới hàng trăm service, nên phải xử lý lỗi một phần (một dependency chậm, lỗi, hay vừa deploy kèm bug).
Building Scalable Real Time Event Processing with Kafka and Flink
Event từ service và thiết bị phải tới warehouse OLAP (Snowflake), tới nền tảng ML (feature realtime như thời gian chờ trung bình của nhà hàng), tới backend metric (Chronosphere) để giám sát bản app mới.
3 Changes to Expand DoorDash's Product Search Beyond Delivery
Search của DoorDash được xây cho đồ ăn: nhà hàng và menu lồng nhau, gắn chặt với hệ thống giao đồ ăn. Khi mở sang tạp hoá, tiện lợi, rượu, đồ thú cưng, dữ liệu thành từng SKU rời với số lượng lớn hơn hẳn, và mỗi ngành…
Deployment At Scale: Dream11's In-House Blue-Green Deployment Platform "OneClick"
Traffic của Dream11 rất biến động (theo trận đấu) và deploy cả trong giờ cao điểm. Cần deploy thường xuyên mà ít lỗi và rollback được.