Tôi bắt đầu hành trình tự host các ứng dụng vài tháng trước bằng cách sử dụng Docker Desktop ngay trên chiếc máy tính Windows cá nhân của mình. Mặc dù một ngày nào đó tôi muốn xây dựng một “home lab” chuyên nghiệp để chạy các dịch vụ này, hiện tại tôi vẫn tiếp tục tự host chúng trên chiếc PC chính, vốn cũng là công cụ làm việc và giải trí hàng ngày của tôi. Tôi không thực sự hối tiếc về cách mình đã bắt đầu hành trình tự host này, nhưng sau vài tháng trải nghiệm, tôi đã nhận thấy một số hạn chế rõ rệt cùng với một lợi ích lớn. Dưới đây là những gì tôi đã học được thông qua việc tự host trên máy tính chính của mình.
Khởi Đầu Tiện Lợi và Tiết Kiệm Chi Phí Nhất
Các dịch vụ hoạt động nhanh chóng, hoàn toàn miễn phí
Tôi không bắt đầu tự host như một người có sở thích cá nhân đơn thuần, mà chủ yếu là để thử nghiệm và viết bài về các ứng dụng và dịch vụ cho XDA. Ban đầu, tôi tập trung vào các ứng dụng Windows, nhưng sau đó nhận ra rằng mình cần mở rộng kỹ năng để có cái nhìn toàn diện hơn về các tùy chọn phần mềm hiện có. Điều đó có nghĩa là tôi phải tìm cách bắt đầu tự host một cách nhanh chóng, dù không có kỹ năng lập trình và đã nhiều năm không “khởi động” một bản phân phối Linux nào. Tôi cũng cần một phương pháp host dịch vụ với chi phí tối thiểu, vì các linh kiện công nghệ (ngay cả các máy tính bo mạch đơn – SBC) có thể có giá cao hơn đáng kể ở Nam Phi do thuế nhập khẩu. Tôi đã cân nhắc việc tận dụng một chiếc laptop cũ, nhưng phần cứng của chiếc laptop gần đây nhất của tôi đã bắt đầu xuống cấp, nên tôi không xem đó là một lựa chọn khả thi.
Kết quả là, sử dụng máy tính cá nhân chính của tôi trở thành cách rẻ nhất và nhanh nhất để bắt đầu tự host. Tôi vừa cài đặt một ổ SSD 1TB, vì vậy tôi có đủ không gian để làm việc. Docker Desktop cũng giúp tôi thoát khỏi rắc rối khi phải cài đặt hệ điều hành kép (dual-boot) hoặc sử dụng máy ảo (VM) độc lập, vì tôi chỉ cần khởi động nó trên Windows và ngay lập tức truy cập vào các container của mình trong khi làm việc.
Giao diện Linkwarden hiển thị các liên kết đã lưu trên màn hình máy tính desktop
Hạn Chế Về Tài Nguyên Hệ Thống
Tranh chấp RAM với các tựa game
Khi số lượng các container Docker của tôi tăng lên, tải trọng lên hệ thống cũng tăng theo. Tôi có 16GB RAM và một CPU khá mạnh, nên ban đầu không gặp vấn đề gì. Nhưng khi tôi bắt đầu sử dụng một số ứng dụng đa container “ngốn” tài nguyên hơn trên Docker, tôi thực sự nhận thấy hệ thống của mình trở nên hạn chế hơn khi tôi chơi game hoặc khi có quá nhiều tab Chrome mở.
CPU của tôi vẫn còn nhiều sức mạnh xử lý và tôi còn rất nhiều không gian trống trên ổ SSD. Tuy nhiên, RAM lại là nút thắt cổ chai. Điều này không ngăn cản tôi chạy các container, vì chúng có một lượng RAM được cấp phát nhất định. Nhưng khi tôi chạy các container đồng thời với việc chơi game, tôi bắt đầu nhận thấy các vấn đề về hiệu suất rõ rệt hơn trong Chrome và các tựa game của mình. Vì vậy, tôi thường dừng các container và thoát Docker trước khi khởi chạy game.
Thiết lập máy tính chơi game (gaming PC) trên bàn làm việc, thường tắt vào ban đêm
Ảnh Hưởng Đến Thời Gian Hoạt Động Của Dịch Vụ (Uptime)
Giảm sự tiện lợi của dịch vụ luôn sẵn sàng
Một trong những cân nhắc bạn phải thực hiện khi thiết lập một home lab là chi phí điện năng để chạy một máy chủ 24/7. Khi bạn sử dụng một thiết bị lưu trữ mạng (NAS) hoặc kết hợp một vài linh kiện, chi phí này không đáng kể. Nhưng mức tiêu thụ điện sẽ tăng vọt khi bạn sử dụng một thiết bị không ưu tiên hiệu quả năng lượng.
Tôi có thể để máy tính của mình bật liên tục để duy trì các dịch vụ tự host, điều này sẽ tiện lợi hơn nhiều. Nhưng sẽ có sự đánh đổi về chi phí điện tăng lên. Máy tính chính của tôi là một dàn gaming cũ, vì vậy có rất nhiều linh kiện sẽ luôn được cấp điện – ngay cả những linh kiện không thiết yếu cho một máy chủ tại nhà.
Vì lẽ đó, tôi ưu tiên tắt máy tính của mình mỗi đêm, thay vì để nó chạy vô thời hạn. Do đó, ngoài việc dừng các ứng dụng tự host khi chơi game, tôi cũng tắt chúng khi tôi hoàn thành công việc với máy tính trong ngày. Kết quả là, tôi bỏ lỡ sự tiện lợi của việc có một máy chủ chạy 24/7. Tôi có thể chọn sử dụng một máy chủ riêng ảo (VPS) cho các ứng dụng tự host của mình, nhưng hiện tại tôi không thể chi trả thêm các khoản đăng ký bổ sung trong ngân sách của mình. Oracle Cloud cung cấp một tầng miễn phí, nhưng tôi cần tìm hiểu các dịch vụ cho khu vực của mình để xem liệu đó có phải là một lựa chọn khả thi hay không. Tuy nhiên, tôi nghi ngờ rằng mình sẽ cần mở rộng kiến thức về tự host để có thể triển khai ứng dụng một cách chính xác trên VPS.
Kết Luận
Mặc dù việc host ứng dụng trên máy tính cá nhân là một cách hữu ích để nhanh chóng bắt đầu với self-hosting, những hạn chế thực tế đã khiến tôi bắt đầu tìm kiếm các lựa chọn khác. Ngân sách là một yếu tố hạn chế lớn, vì đầu tư vào một NAS mạnh hơn hoặc mua linh kiện cho một máy chủ “bare-metal” sẽ tốn kém hơn khả năng hiện tại của tôi. Ngay cả các SBC đơn giản cũng khá đắt đỏ tại địa phương và đòi hỏi thêm các linh kiện khác, đặc biệt là về lưu trữ.
Tự host trên PC chính là một nỗ lực đáng giá nếu bạn đang bắt đầu với self-hosting và không có nhiều ngân sách. Nhưng về lâu dài, chắc chắn có nhiều lựa chọn mạnh mẽ và tối ưu hơn có sẵn. Hãy chia sẻ kinh nghiệm của bạn về việc tự host trên PC cá nhân hoặc các giải pháp khác ở phần bình luận dưới đây!