Tôi bắt đầu hành trình tự host các ứng dụng (self-hosting) cách đây vài tháng bằng cách sử dụng Docker Desktop ngay trên máy tính Windows cá nhân. Mặc dù trong tương lai tôi mong muốn xây dựng một hệ thống Home Lab chuyên dụng để chạy các dịch vụ này, hiện tại tôi vẫn tiếp tục tự host mọi thứ trên chiếc PC chính mà tôi dùng để làm việc và chơi game.
Việc bắt đầu hành trình tự host theo cách này thực sự không có gì hối tiếc, nhưng qua nhiều tháng, tôi đã nhận thấy một số nhược điểm rõ rệt, bên cạnh một lợi ích lớn. Dưới đây là những gì tôi đã học được từ trải nghiệm tự host ứng dụng trên máy tính cá nhân của mình.
Lợi ích ban đầu: Tiện lợi và tiết kiệm chi phí
Triển khai dịch vụ nhanh chóng và hoàn toàn miễn phí
Tôi không bắt đầu self-hosting như một sở thích cá nhân, mà chủ yếu là để thử nghiệm và viết bài về các ứng dụng, dịch vụ công nghệ cho một trang tin tức. 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ó trên thị trường.
Điều này đồng nghĩa với việc tôi phải tìm một cách để bắt đầu tự host nhanh chóng, mặc dù tôi không có kỹ năng lập trình và đã nhiều năm không “đụng” đến 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ụ để giảm thiểu chi phí tối đa, vì các linh kiện công nghệ (ngay cả các máy tính bảng mạch đơn – SBC) có thể đắt hơn đáng kể ở quốc gia tôi do thuế nhập khẩu. Tôi đã cân nhắc việc tận dụng lại chiếc laptop cũ, nhưng phần cứng của nó đã bắt đầu hỏng hóc, nên tôi thấy đây không phải là một lựa chọn khả thi.
Chính vì vậy, việc sử dụng máy tính cá nhân 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 mới lắp thêm một ổ SSD 1TB, nên tôi có đủ không gian để làm việc. Docker Desktop cũng giúp tôi loại bỏ những rắc rối khi phải cài đặt Dual-boot hay 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 có thể truy cập các container của mình trong khi đang làm việc.
Màn hình máy tính hiển thị ứng dụng Linkwarden tự host, minh họa khả năng lưu trữ liên kết của người dùng.
Thách thức về tài nguyên hệ thống
RAM trở thành nút thắt cổ chai
Khi số lượng 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 nhận thấy hệ thống của mình trở nên chậm hơn khi chơi game hoặc khi có quá nhiều tab Chrome được 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 chính 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 phân bổ cố định. Nhưng khi tôi vừa chạy container vừa 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 trò chơi của mình. Do đó, tôi thường dừng các container và thoát Docker trước khi khởi chạy game.
Ảnh hưởng đến thời gian hoạt động của dịch vụ
Giảm sự tiện lợi của dịch vụ 24/7
Một trong những yếu tố bạn phải cân nhắc khi thiết lập một Home Lab là chi phí điện để chạy máy chủ 24/7. Khi bạn sử dụng một NAS (thiết bị lưu trữ mạng) hoặc vài linh kiện kết hợp, chi phí này không đáng kể. Tuy nhiên, mức tiêu thụ điện năng 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ể để PC của mình bật liên tục để duy trì hoạt động của các dịch vụ tự host, điều này sẽ tiện lợi hơn rất nhiều. Nhưng sẽ phải đánh đổi bằng chi phí điện tăng cao. Chiếc PC chính của tôi là một dàn máy chơi game cũ, nên 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 cần thiết cho một máy chủ gia đình.
Do đó, tôi ưu tiên tắt PC mỗi tối, thay vì để nó chạy liên tục. Vì vậy, ngoài việc tắt các ứng dụng tự host khi chơi game, tôi cũng tắt chúng khi không dùng PC nữa trong ngày. Kết quả là, tôi bỏ lỡ sự tiện lợi của một máy chủ chạy 24/7.
Tôi có thể lựa chọn sử dụng VPS (Máy chủ ảo riêng) 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ý dịch vụ. Oracle Cloud cung cấp một gói miễn phí, nhưng tôi cần tìm hiểu thêm các dịch vụ ở 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 cho rằng mình sẽ cần mở rộng kiến thức tự host để có thể triển khai ứng dụng một cách chính xác trên VPS.
Một góc làm việc với máy tính chơi game, thể hiện thiết lập PC cá nhân dùng để tự host ứng dụng.
Kết luận: Nhận định và định hướng tương lai
Mặc dù việc host ứng dụng trên máy tính cá nhân của tôi là một cách hữu ích để nhanh chóng bắt đầu tự host, những nhược điểm đã 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 mẽ hơn hoặc mua linh kiện để xây dựng một máy chủ bare-metal sẽ tốn kém hơn so với khả năng tài chính hiện tại của tôi. Ngay cả những SBC đơn giản cũng có giá khá cao ở địa phương và sẽ yêu cầu thêm các linh kiện phụ trợ, đặc biệt là về lưu trữ.
Tự host trên PC cá nhân là một nỗ lực đáng giá nếu bạn mới 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ó những lựa chọn mạnh mẽ và bền vững hơn rất nhiều.