The Data Infra Behind Zillow's 3x Growth in Experiment Volume

Bài tóm tắt Zillow 2023 3. Quy mô lớn Độ khó: Trung bình

Zillow · 2023 · 3. Quy mô lớn · Độ khó: Trung bình — bài gốc

Bối cảnh

  • 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; có nơi mua công cụ nhưng chỉ đo metric cục bộ, không thấy tác động lên mục tiêu khách hàng hay sang mảng kinh doanh khác.
  • Hạ tầng: hơn 4.000 "application" (service, pipeline, stream, thư viện), nhiều cái cũ trên hạ tầng dùng chung không tự deploy được. Spark tốn hơn 15% ngân sách cloud của nhóm Data/AI cho hơn 13.000 job; on-call của team thí nghiệm mất khoảng một nửa thời gian cho sự cố cụm (scale, deploy, cấp instance).

Thay đổi chính

  • Lập team ZEXP; chiến lược lai mua và tự xây: mua phần gán bucket/feature flag (SDK cho mọi ngôn ngữ, team sản phẩm tự onboard, log exposure theo giờ); tự xây phần phân tích.
  • ZGCP (Zillow Group Container Platform): tạo và quản lý cụm Kubernetes với CI/CD, observability, config/secret, autoscaling, chi phí theo team; archetype theo ngôn ngữ để dựng service trong vài phút.
  • ZACS (Zillow Analytics Compute Services): Spark trên Kubernetes sau một SDK/API; scheduler YuniKorn đặt giới hạn theo team để ai cũng có capacity dự đoán được; plugin orchestrator mới nên chuyển job chỉ cần đổi plugin spark-submit; JupyterLab nối ZACS qua SparkMagic.
  • Streamz: hơn 2 tỷ event/ngày; producer tự tạo topic Kafka + bảng data lake đi kèm + job Flink, tất cả bằng Terraform, có chủ sở hữu để quy chi phí và alert; schema Avro gắn với event id để validate. Data Portal gom schema registry, data catalog, data contract, cấu hình phát hiện bất thường, metric, job SQL. Luminaire contracts: producer và consumer định nghĩa test trên dữ liệu stream/batch, chạy theo lịch, kết quả dùng làm kiểm tra sẵn sàng của dependency.
  • ZEXPy (Python/PySpark): interface cho nguồn exposure/metric, checkpoint dữ liệu trung gian theo trial, platform, segment để chạy lại từng phần và debug; chạy local giống hệt production nhờ ZACS. AB Testing Hub trên Data Portal: cấu hình, scorecard, cảnh báo SRM, ghi quyết định; FastAB là API nguồn sự thật duy nhất cho mọi thí nghiệm, kể cả trạng thái job để tự backfill.
  • Kết quả trong 2 năm: số thí nghiệm gấp 3, tiết kiệm chi phí và thời gian (theo Zillow, không nêu số).

Vì sao

Bài học cho SWE

  • Mua phần commodity (gán bucket), tự xây phần khác biệt (phân tích theo metric của doanh nghiệp).
  • Một API nguồn sự thật cho mọi thí nghiệm cho phép meta-analysis và học từ thí nghiệm cũ.
  • Checkpoint từng stage của pipeline phân tích để chạy lại từng phần thay vì cả ngày dữ liệu.

Liên quan