Tôi đã bắt đầu hành trình tự host (self-hosting) 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 PC chạy Windows cá nhân. Mặc dù trong tương lai tôi mong muốn xây dựng một “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 chúng trên chiếc máy tính chính mà tôi dùng để làm việc và chơi game hàng ngày.
Thực lòng, tôi không hề hối tiếc khi khởi đầu việc tự host theo cách này. Tuy nhiên, sau nhiều tháng trải nghiệm, tôi đã nhận thấy những hạn chế rõ rệt của phương pháp này, cùng với một lợi ích lớn không ngờ. Dưới đây là những gì tôi đã đúc kết được thông qua việc tự host ứng dụng ngay trên máy tính cá nhân của mình.
Cách dễ dàng và tiết kiệm chi phí nhất để bắt đầu
Việc tự host ứng dụng trên chiếc PC cá nhân của tôi thực sự là phương pháp tiện lợi và kinh tế nhất để bắt tay vào thế giới self-hosting. Nó loại bỏ rào cản về việc đầu tư phần cứng chuyên dụng ban đầu, giúp tôi có thể thử nghiệm và triển khai các dịch vụ một cách nhanh chóng.
Triển khai dịch vụ nhanh chóng và hoàn toàn miễn phí
Tôi bắt đầu việc tự host không phải với tư cách một người có sở thích hay dân chuyên, mà chủ yếu là để thử nghiệm và viết bài về các ứng dụng, dịch vụ cho XDA Developers. Ban đầu, tôi tập trung vào các ứng dụng Windows, nhưng sau đó nhận ra mình cần mở rộng kiến thức và 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 tự host nhanh chóng, dù không có kỹ năng lập trình và đã nhiều năm không “động chạm” đến Linux distro nào. Tôi cũng cần một giải pháp lưu trữ dịch vụ với chi phí tối thiểu, bởi vì các linh kiện công nghệ, kể cả các máy tính bảng mạch đơn (SBCs), có thể rất đắt đỏ tại 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 cuối cùng của tôi đã bắt đầu xuống cấp, nên đây không phải là một lựa chọn khả thi.
Kết quả là, việc sử dụng chiếc PC 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 nên 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 dual-boot hay sử dụng máy ảo độc lập, vì tôi chỉ cần khởi động nó trên Windows và có thể truy cập ngay lập tức các container khi đang làm việc.
Màn hình máy tính hiển thị ứng dụng Linkwarden, minh họa một dịch vụ self-hosting tiện lợi
Tài nguyên hệ thống có thể bị giới hạn
Khi số lượng Docker container của tôi tăng lên, tải trọng lên hệ thống cũng tăng theo. Với 16GB RAM và một CPU khá mạnh, ban đầu tôi 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, đặc biệt là khi tôi đang chơi game hoặc khi có quá nhiều tab Chrome mở cùng lúc.
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 trở thành nút thắt cổ chai của tôi. Đ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 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. Do đó, tôi thường phải 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 (uptime) của dịch vụ
Một trong những cân nhắc quan trọng khi bạn thiết lập một home lab là chi phí điện năng khi để máy chủ chạy 24/7. Khi bạn sử dụng một NAS (thiết bị lưu trữ gắn mạng) hoặc kết hợp vài linh kiện nhỏ, chi phí này thường không đáng kể. Nhưng mức tiêu thụ điện sẽ tăng lên đáng kể nếu bạn sử dụng một thiết bị không ưu tiên hiệu quả năng lượng.
Tôi hoàn toàn có thể để PC của mình chạy liên tục để duy trì các dịch vụ tự host, điều này sẽ tiện lợi hơn rất nhiều. Tuy nhiên, tôi 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ủ tại nhà.
Vì vậy, tôi thường chọn tắt PC mỗi đêm thay vì để nó chạy vô thời hạn. 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 kết thúc sử dụng PC trong ngày. Hậu quả là tôi mất đi sự tiện lợi của việc có một máy chủ chạy 24/7 liên tục.
Tôi có thể cân nhắc việc sử dụng một máy chủ ảo riêng (VPS) cho các ứng dụng tự host của mình, nhưng ngân sách hiện tại không cho phép tôi chi trả thêm các khoản đăng ký. 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 về self-hosting để có thể triển khai ứng dụng một cách chính xác trên VPS.
Bàn làm việc với dàn PC gaming mạnh mẽ, liên quan đến chi phí điện và uptime khi self-hosting
Tự host trên máy tính cá nhân: Tiện lợi khi bắt đầu, nhưng tồn tại nhiều hạn chế
Mặc dù việc tự host ứng dụng trên máy tính cá nhân đã là một cách hữu ích để tôi nhanh chóng bắt đầu hành trình self-hosting, những hạn chế của nó đang 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ố giới hạn lớn, vì đầu tư vào một NAS mạnh hơn hoặc mua các linh kiện cho một máy chủ vật lý (bare-metal server) sẽ tốn kém hơn số tiền tôi có thể chi trả hiện tại. Ngay cả những chiếc máy tính bảng mạch đơn (SBC) đơn giản cũng có giá khá cao 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ữ.
Nhìn chung, tự host trên máy tính 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 tùy chọn mạnh mẽ và tối ưu hơn đang chờ bạn khám phá. Hãy cân nhắc kỹ lưỡng nhu cầu và khả năng của bản thân để đưa ra lựa chọn phù hợp nhất cho hành trình công nghệ của mình.