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. 979 bài. Đọ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 đó.
Fleet Management at Spotify (Part 1): Spotify's Shift to a Fleet-First Mindset
Spotify chia phần mềm thành rất nhiều component nhỏ do từng squad tự thiết kế, build, vận hành (microservice cho mọi loại: service, pipeline dữ liệu, web...). Số component tăng nhanh hơn số kỹ sư.
Fleet Management at Spotify (Part 2): The Path to Declarative Infrastructure
Spotify chuyển từ datacenter riêng lên GCP theo kiểu lift and shift: kiến trúc và quan hệ với hạ tầng gần như giữ nguyên, nên lựa chọn hạ tầng trên cloud rất khác nhau giữa team (tự chạy Cassandra, Kafka, Elasticsearch,…
Fleet Management at Spotify (Part 3): Fleet-wide Refactoring
Polyrepo hàng nghìn repo; phần lớn backend dùng một service framework và bộ thư viện lõi chung, phần lớn pipeline batch dùng Scio. Từ 2021 Spotify đầu tư vào refactor toàn fleet để "repo" không còn là đơn vị công việc,…
Journey to the cloud part I: Migrating Stack Overflow Teams to Azure
stackoverflow.com vẫn chạy on-premises (2023). Sản phẩm Stack Overflow for Teams (SaaS riêng tư cho doanh nghiệp) lúc đầu dùng chung hạ tầng và phần cứng với site public, vốn được thiết kế để chạy trên số máy ít nhất có…
Journey to the cloud part II: Migrating Stack Overflow for Teams to Azure
Sau pha 1, Teams đã chạy ở stackoverflowteams.com nhưng mới tách "bề ngoài". Phía sau vẫn dùng chung với stackoverflow.com: DB Sites (nền của multi-tenancy), DMZ nhận request rồi chuyển vào vùng khoá kín TFZ, và quy…
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…
How we scaled reads on the Twitter Users Database
URS (User Reservation System), theo Twitter là một trong những hệ thống loại này lớn nhất thế giới, được xây trên Gizzard, chính framework sharding MySQL từng dùng cho tweet năm 2010–2013 (, ). Gizzard có những tính…
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.
Next.js App Router Update
Theo Vercel, Pages Router không được thiết kế cho streaming, nên muốn dùng Server Components, Suspense thì phải đổi lõi kiến trúc. Bài viết ngày 22/6/2023, khoảng bảy tuần sau khi App Router "stable" (13.4, 4/5/2023);…
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.
Next.js 13.4
App Router ổn định, sáu tháng sau bản 13: theo Vercel, "stable" nghĩa là lõi đã sẵn cho production, chưa phải xong việc; Server Actions vẫn alpha, App Router chạy trên kênh canary của React.
Next.js 14
Turbopack đổi cách tiến: thôi viết lại next dev, chuyển sang hỗ trợ đủ tính năng trước. Mốc ổn định đo bằng bộ 5.000 test tích hợp của next dev (chứa bảy năm sửa lỗi): 90% đã qua, công khai tại areweturboyet.com, 100%…
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…
Building the Neural Zestimate
Zestimate ra 2/2006 cho 40 triệu nhà, cập nhật hằng tháng; nay hơn 100 triệu nhà, cập nhật vài lần mỗi tuần.
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…