Server Survival: game thủ thành dạy kiến trúc đám mây
Server Survival là game thủ thành miễn phí, chạy trên trình duyệt, dạy kiến trúc đám mây bằng cách bắt bạn xây dựng và bảo vệ các mẫu hạ tầng — tự động mở rộng quy mô, circuit breaker, chuyển đổi dự phòng đa vùng — trước lưu lượng truy cập tăng dần. Hãy chọn game này nếu bạn học mở rộng quy mô tốt hơn qua việc tự tay làm sập hệ thống; bỏ qua nếu bạn cần nội dung bám sát chứng chỉ AWS hay Azure.
Server Survival là gì?
Server Survival là game mô phỏng 3D, nơi bạn đóng vai một Kiến trúc sư Đám Mây, kết nối các dịch vụ như Load Balancer, NoSQL DB và CDN trên một canvas theo thanh công cụ để giữ lưu lượng truy cập thông suốt. Game chạy trong trình duyệt nhờ Three.js, với ba chế độ — Survival, Campaign và Sandbox — dùng chung 26 dịch vụ. Khung thủ thành biến các khái niệm như mở rộng theo hàng đợi hay circuit breaking thành thứ bạn thấy sụp đổ theo thời gian thực.
Các khái niệm kiến trúc đám mây được dạy
- ✓Observability — đặt một node Monitoring sẽ bật bảng điều khiển số liệu trực tiếp (RPS, tỷ lệ lỗi, độ trễ); cấp độ 15 của Campaign cố tình không cho bạn dùng nó trước, để bạn cảm nhận cảm giác mù thông tin.
- ✓Tự động mở rộng quy mô kèm cold start — cụm Compute mở rộng khi mức sử dụng vượt 70% và thu lại khi xuống dưới 30%, nhưng instance mới cần thời gian khởi động, còn Container Cluster thì khởi động còn chậm hơn.
- ✓Mở rộng theo độ sâu hàng đợi — một cụm được cấp dữ liệu qua hàng đợi sẽ mở rộng quy mô dựa trên áp lực hàng đợi chứ không chỉ CPU, nên hàng đợi bị dồn ứ cũng tự kích hoạt việc mở rộng.
- ✓Circuit breaking và retry — một downstream bị quá tải sẽ ngắt mạch khi tỷ lệ lỗi trong cửa sổ trượt chạm 50%, và các request được thử lại với backoff.
- ✓Chuyển đổi dự phòng đa vùng — GeoDNS chia lưu lượng truy cập ra nhiều stack theo từng vùng, và các sự kiện mất cả một vùng cho thấy vì sao chỉ một vùng là không đủ.
- ✓Kinh tế học suy luận trên GPU — GPU Cluster gộp các request suy luận thành một lô, nên một lô đầy thì có lãi còn một GPU chỉ chạy nửa tải thì chỉ đốt tiền upkeep 60 đô/phút.
- ✓Điện năng là giới hạn cứng — lưới điện chỉ chịu được 8 kW, mỗi GPU tiêu tốn 6 kW, và một Substation cộng thêm 6 kW, nên công suất hết trước khi ngân sách hết.
- ✓Badge lý do thất bại — mỗi request bị rớt hiện một badge trên node đã làm rớt nó, nêu rõ nguyên nhân thật (không có route, hết dung lượng, replica chỉ đọc, v.v.).
Các chế độ chơi: Học, Sinh tồn, Thử nghiệm
- •Chế độ Survival để kiểm tra áp lực không giới hạn: lưu lượng truy cập tăng theo mốc thời gian (×1.3 ở phút 1 lên ×4.0 ở phút 10) trong khi các đợt DDoS và sự kiện ngẫu nhiên liên tục buộc bạn điều chỉnh một hạ tầng đã dựng sẵn.
- •Chế độ Campaign để học có cấu trúc theo từng cấp độ: 25 cấp độ trải trên năm chương, đi từ server và CDN đầu tiên cho tới observability, tự động mở rộng quy mô, chuyển đổi dự phòng đa vùng và suy luận trên GPU, mỗi cấp có sẵn kiến trúc khởi đầu và phần tổng kết cuối màn.
- •Chế độ Sandbox để thử một ý tưởng cụ thể trong môi trường tách biệt: đặt ngân sách khởi đầu tùy ý, chỉnh tỷ lệ cả bảy loại lưu lượng, và tắt hẳn upkeep, không có game over để làm gián đoạn việc thử nghiệm với toàn bộ 26 dịch vụ.
- •Chia sẻ một bản dựng cho người khác: bảng chia sẻ xuất ra ảnh PNG của sơ đồ, hoặc một URL có toàn bộ kiến trúc mã hóa trong tham số `?arch=`, để bất kỳ ai mở link cũng thấy ngay bản dựng đã sẵn sàng.
Bắt đầu với Server Survival
Server Survival không cần cài đặt gì để chơi: clone repo về, mở index.html trực tiếp bằng một trình duyệt hiện đại, và game sẽ tải lên ngay — không có bước build nào cả, vì chính những file tĩnh đó cũng là thứ GitHub Pages đang phục vụ trực tiếp. Mục tiêu là sống sót càng lâu càng tốt bằng cách quản lý Ngân sách ($), Uy tín (%) và độ khỏe của dịch vụ; game kết thúc nếu Uy tín chạm 0% hoặc bạn phá sản ở mức -1000 đô. Nếu muốn sửa code, hãy chạy `npm install` một lần rồi `npm run check` — lệnh này lint bằng ESLint và chạy bộ test Vitest, nhưng công cụ đó chỉ dành cho người đóng góp, không cần thiết để chơi.
Điểm mạnh
- ✓Badge lý do thất bại nêu đúng nguyên nhân của từng request bị rớt (không có route, hết dung lượng, replica chỉ đọc...), biến một lần game over thành một bài học debug thay vì chỉ là một lần thua.
- ✓25 cấp độ của Campaign được cấu trúc mỗi cấp một bài học, có sẵn kiến trúc khởi đầu, mục tiêu và phần tổng kết — bạn không phải nhìn một canvas trống rồi đoán mò cần xây gì.
- ✓Sandbox bỏ hẳn game over, cho phép chỉnh tỷ lệ lưu lượng, ngân sách và RPS độc lập với nhau để thử riêng một cơ chế, chẳng hạn kinh tế học gộp lô trên GPU, mà không chịu áp lực như ở Survival.
- ✓Không cần bước build nào để chơi — clone về rồi mở index.html — trong khi người đóng góp vẫn có toolchain thật (ESLint, Vitest) nếu muốn động vào code.
- ✓Cấp phép MIT và đã có 6.339 star, nên code thực sự mở để đọc, fork hay mở rộng, chứ không chỉ miễn phí để chơi.
Giới hạn của mô phỏng
- △Không có tài liệu nào nói tới hỗ trợ mobile hay cảm ứng — điều khiển chỉ qua chuột, bàn phím và kéo camera, nên đây không phải thứ bạn chơi được trên điện thoại.
- △Mô hình kinh tế được đơn giản hóa kiểu arcade: giá cloud thực tế còn có reserved instance, spot pricing và chênh lệch chi phí theo từng vùng — những thứ mà các con số upkeep cố định theo dịch vụ trong game này không mô phỏng.
- △Chế độ Campaign dừng ở 25 cấp độ trải trên 5 chương — sau khi hoàn thành chương The AI Wave, không có tuyên bố nào về nội dung tiếp theo ngoài việc quay lại Sandbox để luyện thêm.
- △Game chỉ dạy lớp logic của kiến trúc đám mây; README dẫn bạn sang dự án Datacenter Survival riêng biệt để học các khái niệm lớp vật lý như chuỗi cấp điện, nhiệt và làm mát, nên bạn cần cả hai game mới có bức tranh đầy đủ.
Lựa chọn thay thế để học cloud
Câu hỏi thường gặp
Server Survival miễn phí hoàn toàn — game chạy trong trình duyệt, không cần tài khoản hay thanh toán, và được phục vụ trực tiếp từ GitHub Pages.
Server Survival có 26 dịch vụ chia thành năm nhóm — Front Door (GeoDNS, CDN, Firewall, Identity Provider, API Gateway, Load Balancer), Compute (Compute, Serverless Function, Container Cluster, GPU Cluster, Inference Gateway), Data, Async và Ops — mỗi dịch vụ có chi phí, dung lượng và upkeep riêng.
Bảng chia sẻ của Server Survival xuất bản dựng theo hai cách: ảnh PNG của sơ đồ để đăng ở bất kỳ đâu, hoặc một URL chia sẻ có toàn bộ kiến trúc mã hóa trong tham số `?arch=`, tải sẵn cho bất kỳ ai mở link.
Server Survival chạy trên JavaScript thuần với ES module gốc và không dùng bundler, dựng cảnh 3D bằng Three.js, và tạo giao diện kiểu glassmorphism bằng Tailwind CSS — GitHub Pages phục vụ code nguyên bản, không qua bước build nào.
Server Survival dạy lớp logic của hạ tầng đám mây — dịch vụ, định tuyến lưu lượng, mở rộng quy mô — còn Datacenter Survival, game chị em của cùng tác giả, bao quát lớp vật lý bên dưới: chuỗi cấp điện, nhiệt, làm mát và PUE.
Server Survival cấp phép MIT và mã nguồn mở trên GitHub; người đóng góp chạy `npm install` một lần rồi `npm run check`, lệnh này chạy ESLint cùng toàn bộ bộ test Vitest (593 test), và CI chạy đúng kiểm tra đó trên mỗi pull request.
Vấn đề mà nó giải quyết
Phần lớn cách học kiến trúc đám mây hiện nay là đọc tài liệu của nhà cung cấp dày đặc hoặc học một khóa chứng chỉ chỉ kiểm tra khả năng nhớ tên dịch vụ — không cái nào cho bạn thấy điều gì xảy ra ba phút sau khi bạn cấp thiếu tài nguyên cho một cụm Compute. Server Survival biến hậu quả đó thành lối chơi: hàng đợi bị dồn ứ, circuit breaker ngắt mạch, uy tín tụt dần, và bạn chứng kiến nó xảy ra thay vì đọc một sơ đồ giải thích mọi thứ sau khi chuyện đã rồi.
Ai nên thử — và ai nên bỏ qua
Hãy thử Server Survival nếu bạn là developer hoặc sinh viên muốn thấy các khái niệm mở rộng quy mô — ngưỡng tự động mở rộng, circuit breaker, chuyển đổi dự phòng đa vùng, kinh tế học gộp lô trên GPU — qua hậu quả thực tế thay vì chỉ đọc định nghĩa; phần tổng kết ở cuối mỗi cấp Campaign khiến nó dùng được cho việc tự học, và việc chơi miễn phí trên trình duyệt nghĩa là thử một cấp độ không tốn gì cả. Bỏ qua nếu bạn cần thứ bám sát một kỳ thi chứng chỉ cụ thể hay console của một nhà cung cấp cloud cụ thể, vì không dịch vụ nào trong 26 dịch vụ ở đây mang tên dịch vụ AWS, GCP hay Azure thật — chúng chỉ là đại diện chung cho khái niệm.
