Globally Distributed Object Storage with Tigris
Bài tóm tắt Fly.io 2024 2. Tăng trưởng Độ khó: Dễ
Fly.io · 2024 · 2. Tăng trưởng · Độ khó: Dễ — bài gốc
Bài ra mắt hợp tác với Tigris (bên thứ ba) của Fly.io; giọng quảng bá, phần kiến trúc chỉ vài câu. Nhận định là theo Fly.io.
Bối cảnh
- Upload file trong ứng dụng full-stack thì dễ; khó là giữ file để tải lại về sau, nên mọi người dùng object storage kiểu S3. Khách của Fly.io liên tục đòi có nó.
- Theo Fly.io, S3 được thiết kế khi ứng dụng chạy ở một thành phố: byte nằm ở một region cụ thể. Ứng dụng nay có user khắp thế giới; càng xa region và request càng nhỏ, càng nhiều thì càng chậm. Lời giải quen thuộc là bucket theo region hoặc CDN cache phía trước (CloudFront), làm ứng dụng phức tạp thêm. Tác giả tự dựng một CDN cache cho S3 trên sáu châu lục cho blog cá nhân.
- Fly.io không tự làm vì "không tìm ra cách làm tốt hơn S3".
Kiến trúc của Tigris (theo bài)
- Mỗi region của Fly.io chạy cụm FoundationDB dự phòng để theo dõi object (metadata).
- NVMe volume của Fly.io là tầng cache byte thô đầu tiên.
- Một hệ hàng đợi theo mô hình QuiCK của Apple phân phối dữ liệu tới nhiều replica, tới region đang có nhu cầu, và tới object store bên thứ ba như S3.
- Object dưới khoảng 128 KB thành toàn cầu ngay, mặc định. Có định tuyến giữa region trong tầng phân phối, bảo đảm nhất quán, purge tức thì, relay region; theo bài, đây là bộ công cụ để dựng CDN chứ không phải một CDN cache.
- API tương thích S3:
fly storage createtiêm sẵn biến môi trường cho thư viện AWS; không đổi code.
Vì sao (theo Fly.io)
- Compute và mạng là thứ họ hiểu; object storage quan trọng nên để một đội dồn toàn lực làm, và gộp vào một hoá đơn với compute, volume, database.
Bài học cho SWE
- Object storage một region là trung tâm dữ liệu cố định; user toàn cầu đẩy đến hoặc cache phía trước, hoặc storage tự phân phối theo nơi có nhu cầu (Độ tin cậy và multi-region).
- Mẫu tách metadata (kho giao dịch như FoundationDB) khỏi byte (cache cục bộ + object store) lặp lại ở nhiều hệ storage mới (Tách compute khỏi storage; so với Deno 2023 cũng dựng trên FoundationDB).
- Build vs buy ở nhà cung cấp hạ tầng: nhận đối tác cho phần không phải thế mạnh, giữ trải nghiệm thống nhất bằng CLI và hoá đơn chung.
Liên quan
#Object storage#S3-compatible#Tigris#FoundationDB#NVMe cache#QuiCK queue#Global replication#CDN#Partnership
Được nhắc tới trong
Công ty (1)
Bài tóm tắt (3)