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. 157 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 đó.
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…
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.
Diagnostics with Tracing
Trong code đồng bộ, 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…
Building a High-Throughput Metrics System Using Open Source Software
Two Sigma xây nền tảng cho "nghiên cứu dạng hội thoại". Một nền tảng dữ liệu hiệu năng cao trả kết quả truy vấn của researcher (ví dụ "dataset x từ 2000 tới 2019, lấy log mọi giá trị"), tới 50.000 query/giây và 1,85…
Member Transaction History: Data Store Selection Journey
Member Transaction History (MTH) là lớp đọc đa kênh cho đơn hàng của club (Sam's Club) và online: nguồn sự thật duy nhất để tra cứu và sửa đơn, với một mô hình đơn hàng chuẩn.
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…
Preventing Rogue Cookies with the Zillow Cookie Checker
Từ 2018 Zillow dọn cookie và nâng banner tuỳ chọn cookie: người dùng tắt cookie quảng cáo/chức năng thì không trang nào được tạo các cookie đó. Cookie đến từ tag trong Google Tag Manager và từ code của Zillow.
Federated GraphQL Server at Scale: Zillow Rental Manager Real-time Chat Application
Zillow Rental Manager (ZRM): chủ nhà xem được tin nhắn của người thuê nhưng không trả lời được trong app; trước đó trao đổi qua email.
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ờ.
Enforce Timeout: A DoorDash Reliability Methodology
Câu hỏi trong một cuộc họp quản lý: bỏ statementtimeout của PostgreSQL thì sao? Với hàng trăm kỹ sư đẩy code mỗi ngày, theo tác giả, sớm muộn sẽ có sự cố do dùng tài nguyên không giới hạn.
Using API Gateway for Authorization and Authentication
Yêu cầu duy nhất: phải có xác thực/phân quyền và không được "tĩnh" (username/password cứng gửi kèm mọi request). Đã cân nhắc Passport (phổ biến với NodeJS) và tự viết (tác giả từng làm ở dự án khác và khuyên đừng làm).
Saving Millions : Leveraging EC2 Spots at scale
Spot instance là capacity EC2 chưa dùng, giá thấp hơn On-Demand nhiều, đổi lại có thể bị thu hồi. Cuối 2017 AWS đổi cơ chế: giá mượt hơn, không cần đấu giá, giá tối đa chặn ở mức On-Demand, ít bị thu hồi hơn.
Predicting the real-time availability of 200 million grocery items
Hơn 100.000 shopper quét hàng triệu món mỗi ngày ở 20.000 cửa hàng (2018). Instacart không sở hữu chuỗi cung ứng; đối tác bán lẻ gửi dữ liệu tồn kho khoảng một lần mỗi ngày, trong khi hàng có thể hết trong ngày. Hàng…
Microservice Architecture at Medium
Medium bắt đầu năm 2012 bằng một monolith Node.js; có vài service vệ tinh nhưng chưa có chiến lược.
Scaling Kubernetes to 2,500 nodes
OpenAI chạy Kubernetes cho thí nghiệm deep learning hơn 2 năm (workload lớn nhất thì quản lý VM trực tiếp). Kubernetes cho vòng lặp nhanh, scale vừa đủ, ít boilerplate. Trên đường lên 2.500 node, lần lượt các thành phần…
Secure access to 100 AWS accounts
Segment bắt đầu trong một tài khoản AWS, năm 2017 tách thành dev, stage, prod và "ops". Đầu 2018 họ có vài chục tài khoản và thêm khoảng một tài khoản mỗi 1–2 tuần, hướng tới tài khoản riêng theo team và theo hệ thống.
AWS Multi-Account Architecture with Terraform, Yeoman, and Jenkins
Một tài khoản AWS đơn giản lúc đầu, nhưng theo Slalom hầu hết tổ chức thấy cách này không scale và muốn cô lập workload theo tài khoản.
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…
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…
Splitting a Monitoring Monolith into Separate Components
Team Website-Performance có một ứng dụng PHP nguyên khối (Symfony, Orchestra) kéo metric từ API của các CDN (ChinaCache, Edgecast…) và vài dịch vụ khác, đẩy vào InfluxDB qua Graphite. Code nhiều phụ thuộc chéo giữa các…
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.
How we build a robust analytics platform using Spark, Kafka and Cassandra
Người dùng nghiệp vụ cần dashboard mức độ còn hàng (item availability) tổng hợp ở các địa điểm then chốt, không theo dõi được từng SKU.
Debugging Production with Event Logging
Trang tìm căn hộ: khi lưu một bản ghi vào SQL, các thuộc tính tìm kiếm được index vào Elasticsearch; search chạy trên Elasticsearch, rồi lấy bản ghi đầy đủ từ SQL theo ID.
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.