OpenFreeMap xử lý 100.000 yêu cầu mỗi giây khi trang web vẽ tranh viral Wplace.live tạo ra lượng truy cập khổng lồ

Nhóm Cộng đồng BigGo
OpenFreeMap xử lý 100.000 yêu cầu mỗi giây khi trang web vẽ tranh viral Wplace.live tạo ra lượng truy cập khổng lồ

OpenFreeMap , một dịch vụ tile bản đồ miễn phí, gần đây đã phải đối mặt với một bài kiểm tra căng thẳng bất ngờ khi bị tấn công bởi 3 tỷ yêu cầu trong 24 giờ - khoảng 100.000 yêu cầu mỗi giây. Lượng truy cập khổng lồ này đến từ Wplace.live , một trang web vẽ tranh cộng tác đã bất ngờ bùng nổ lên 2 triệu người dùng chỉ trong vài ngày.

Sự cố này làm nổi bật cả khả năng phục hồi ấn tượng của cơ sở hạ tầng web hiện đại và những thách thức khi vận hành các dịch vụ miễn phí ở quy mô lớn. Điều làm cho câu chuyện này đặc biệt thú vị là hệ thống đã hoạt động tốt như thế nào dưới tải trọng cực kỳ nặng.

Thống kê lưu lượng truy cập

  • Tải cao điểm: 100.000 yêu cầu mỗi giây
  • Tổng số yêu cầu: 3 tỷ yêu cầu trong 24 giờ
  • Truyền tải dữ liệu: 215 TB trong 24 giờ (56 Gbit/s)
  • Tỷ lệ thành công: 96% (phản hồi 200 OK)
  • Tỷ lệ trúng cache: 99,38%
  • Tải máy chủ gốc: ~1.000 yêu cầu mỗi giây

Kiến trúc chứng minh giá trị của mình dưới tải trọng cực kỳ nặng

Mặc dù lưu lượng truy cập áp đảo, OpenFreeMap vẫn duy trì tỷ lệ thành công 96%, chỉ có 3,6% yêu cầu thất bại. Chìa khóa của thành công này là tỷ lệ cache hit ấn tượng 99,38% thông qua mạng phân phối nội dung của Cloudflare . Điều này có nghĩa là trong khi dịch vụ nhận được 100.000 yêu cầu mỗi giây, các máy chủ gốc thực tế chỉ phải xử lý khoảng 1.000 yêu cầu mỗi giây.

Các cuộc thảo luận cộng đồng tiết lộ rằng việc đạt được tỷ lệ cache cao như vậy cho các tile bản đồ không phải là ngẫu nhiên. Dịch vụ được thiết kế đặc biệt với việc lưu cache trong tâm trí, cấu trúc đường dẫn tệp và cấu hình máy chủ để tối đa hóa hiệu quả cache. Quyết định kiến trúc này đã chứng minh là quan trọng khi tải trọng bất ngờ xuất hiện.

CDN (Content Delivery Network): Một mạng lưới các máy chủ được phân phối trên toàn cầu để lưu cache nội dung gần người dùng hơn nhằm cải thiện hiệu suất và giảm tải cho các máy chủ gốc.

Hiện tượng Wplace.live và hành vi người dùng

Wplace.live hoạt động như một canvas cộng tác nơi người dùng có thể đặt một pixel mỗi 30 giây. Cuộc tranh luận cộng đồng xung quanh việc liệu khối lượng yêu cầu khổng lồ có đến từ các script tự động hay sự tham gia thực sự của người dùng đã tiết lộ những hiểu biết thú vị về các mẫu sử dụng web hiện đại.

Trong khi người vận hành dịch vụ ban đầu nghi ngờ hoạt động script do tỷ lệ yêu cầu trên người dùng cao là 1.500 yêu cầu mỗi người dùng, các thành viên cộng đồng thực sự sử dụng nền tảng đã vẽ ra một bức tranh khác. Người dùng báo cáo rằng họ dành hàng giờ khám phá canvas, tìm kiếm tác phẩm nghệ thuật và phối hợp với những người khác. Một thành viên cộng đồng lưu ý rằng chỉ 2-3 phút duyệt web bình thường đã tạo ra 500 yêu cầu và 5MB truyền dữ liệu.

Thực tế dường như là sự kết hợp của các yếu tố: sự tham gia thực sự của người dùng với việc khám phá bản đồ nặng nề, một số công cụ tự động hóa để phối hợp, và việc làm mới trang thường xuyên do trang web gặp khó khăn dưới sự phổ biến đột ngột của chính nó.

Bài học về quản lý dịch vụ và trách nhiệm cộng đồng

Sự cố đã khơi mào cuộc tranh luận về trách nhiệm khi các dịch vụ miễn phí đối mặt với tải trọng bất ngờ. Một số thành viên cộng đồng chỉ trích quyết định chặn Wplace.live , lập luận rằng quảng cáo không giới hạn nên có nghĩa là chính xác như vậy. Những người khác bảo vệ cách tiếp cận thực dụng, chỉ ra rằng việc duy trì dịch vụ cho tất cả người dùng đòi hỏi các ranh giới sử dụng hợp lý.

Vận hành một dịch vụ không giới hạn miễn phí chắc chắn phụ thuộc vào chi phí biên của việc phục vụ một yêu cầu duy nhất.

Giải pháp thể hiện việc giải quyết vấn đề một cách thiện chí. Thay vì chỉ đơn giản chặn lưu lượng truy cập vĩnh viễn, người vận hành OpenFreeMap đã liên hệ với các nhà phát triển Wplace.live để cung cấp giải pháp tự lưu trữ. Cách tiếp cận này có lợi cho tất cả mọi người: Wplace.live có được tài nguyên chuyên dụng, người dùng khác không bị ảnh hưởng, và dịch vụ công cộng vẫn ổn định.

Sự cố cũng tiết lộ chi phí thực sự của các dịch vụ như vậy. Khối lượng lưu lượng truy cập sẽ có giá hơn 6 triệu đô la Mỹ mỗi tháng trên các nền tảng thương mại như MapTiler , và gấp đôi trên Mapbox . Điều này đặt vào góc nhìn giá trị mà sự tài trợ băng thông của Cloudflare mang lại cho cộng đồng bản đồ mã nguồn mở.

So sánh chi phí

  • MapTiler: Hơn 6 triệu USD mỗi tháng cho lưu lượng truy cập tương đương
  • Mapbox: Hơn 12 triệu USD mỗi tháng cho lưu lượng truy cập tương đương
  • Quyên góp hiện tại của OpenFreeMap: 500 USD mỗi tháng
  • Tăng trưởng của Wplace.live: 2 triệu người dùng trong vài ngày
  • Số lượt yêu cầu trung bình mỗi người dùng: 1.500 (so với mức bình thường 10-20 đối với việc sử dụng bản đồ thông thường)

Chuẩn bị cho tương lai của các dịch vụ miễn phí

Tiến về phía trước, OpenFreeMap có kế hoạch triển khai giới hạn băng thông dựa trên referrer - thiết lập các giới hạn cao nhưng hợp lý như 100 triệu yêu cầu mỗi 24 giờ mỗi trang web. Cách tiếp cận này duy trì bản chất miễn phí, không cần đăng ký của dịch vụ trong khi ngăn chặn bất kỳ ứng dụng đơn lẻ nào làm quá tải cơ sở hạ tầng.

Trải nghiệm này mang lại những bài học có giá trị cho bất kỳ ai vận hành các dịch vụ web miễn phí. Các chiến lược lưu cache thông minh, quan hệ đối tác CDN và các chính sách sử dụng rõ ràng có thể giúp duy trì chất lượng dịch vụ ngay cả khi đối mặt với lưu lượng truy cập viral bất ngờ. Quan trọng nhất, nó cho thấy rằng với kiến trúc phù hợp và sự hỗ trợ của cộng đồng, ngay cả các nhà phát triển cá nhân cũng có thể cung cấp các dịch vụ cạnh tranh với các dịch vụ thương mại lớn.

Tham khảo: OpenFreeMap survived 100,000 requests per second