在学习容器之前,我以前会为每个想要运行的服务专门分配一台虚拟机,这非常低效。与完全成熟的虚拟机相比,容器更轻、更专业、更灵活,且更易于设置。
不过,每次有新的自托管项目时,总是很难在我的主PC和树莓派 4B之间做选择。树莓派作为一款单板计算机(SBC),通常足以满足我大多数低级别的自托管任务。因此,我列出了每种选择的优缺点,以便下次提醒自己。到目前为止,我的大多数实验都是使用Docker和树莓派,尽管相同的理念也适用于其他产品。
此外,虽然云托管始终是一个选项,但这就失去了自托管的意义,因此在本文的范围内不考虑这一点。
性能
这适合该项目吗?
对于只有少数用户的简单自托管媒体服务器,容器或单板计算机都能满足需求。我的所有服务都可以在主PC上愉快地运行,无论是虚拟机还是容器,该PC配备了Intel Core i9-12900K和32GB的RAM。但对于日志记录、分析、时间敏感的控制设置或拥有数十个用户的大型媒体服务器,选择主机就变得更重要了。
在单个设备上运行的容器服务越多,它们之间共享的资源就越多。如果资源被拉得太薄,一切都会变得缓慢。将单个 SBC 专用于单个服务在一定程度上可以缓解这个问题,因为它们将所有资源分配给单一任务。然而,如果项目变得足够复杂,它们仍然容易出现减速,因为 SBC 的优势——在预算内运行低功耗硬件和节省电力——也会限制其性能。
值得庆幸的是,这两种设置都可以扩展。通过 SBC,您可以将多个板子组合在一起以分担负载。然而,添加更多板子会增加复杂性,而且实际上只对可以并行处理的工作负载有帮助。此外,在 SBC 集群中,单个组件(如内存)的扩展也很困难。对于单主机系统,性能扩展受到兼容性和可接受部件数量的限制。
值得庆幸的是,没有什么是永恒不变的。如果一种设置不起作用,还有很多方法可以在设置之间迁移。容器是为了便携而设计的,因此在具有相同架构的机器之间迁移应该是顺利的(否则,需要进行仿真或重建)。如果将单个 SBC 专用于某项服务,导致性能余地过大,把轻量级服务整合到中央主机上也应该很简单。
故障点
集中便利还是分布冗余?
在多容器环境中,如果中央主机出现故障,所有服务也会随之停止。在独立的单板计算机(SBC)环境中,这个问题就小得多。如果一块板子故障,故障仅限于单个设备和服务,而不是整个设置。此外,建立物理SBC计算集群是提高性能和增加冗余的好方法。如果集群中的某个设备出现故障,其他设备可以无缝接替,完全不影响运行。如果需要更多性能,只需添加更多板子。
管理
两者都易于处理
无论哪种方式,管理起来都很简单。您可以从集群的一个节点管理SBC集群,容器设置可以使用像 Docker Swarm 这样的工具进行编排,或直接从中央主机进行管理。
空间和设置
小型板子,空间整洁
SBC非常小。与笔记本电脑甚至NAS设备相比,它们更容易隐藏。它们的低功耗特性(例如,树莓派5在负载下仅需约12W)意味着可以长时间运行而不会显著增加电费。更好的是,对于低功耗任务,它们可以无风扇运行(尽管在持续高负载下仍需额外冷却),保持安静无声。一旦设置好,它们就可以无头运行(不需要显示器或输入设备),这样能节省更多空间。
拥有一个中央主机的情况稍有不同。某些操作系统(我们说的就是你,Windows 11)需要定期重启才能正常工作,这会导致停机时间增加。此外,桌面处理器需要更强的散热器和电源,导致更高的噪音和功耗。然而,在现有机器内部托管容器也节省了本来会被单板计算机占用的空间。
成本
没有明确的赢家
“平衡”是这里反复出现的主题,而成本可能是所有因素中最难处理的。大家自然会认为容器会更便宜,对于较小的家庭实验室来说,这通常是正确的。但随着工作负载的增加,你最终会遇到性能瓶颈,升级组件可能会迅速变得昂贵。
另一方面,单板计算机的价格相对便宜。树莓派 4B 的价格在 35 到 75 美元之间,包括主板、CPU 和内存。如果为每个服务专门配置一个,可能会显得有些奢侈,耐心地把它们聚在一起也是一个不错的选择。除了主板本身,主要的投入还包括存储和设置时间。
可修复性也是一个重要因素。虽然你不能更换单个组件,但主板本身价格足够便宜,更换一块主板对钱包的压力远没有更换PC硬件那么大。
这真的需要选择吗?
就像技术中的其他一切一样,答案从来不是明确的。在集中式主机和将服务分散到多个独立硬件之间选择,这是每天在小型家庭实验室和全球大型组织中都面临的挑战。
幸运的是,我们不需要处理价值数百万美元的基础设施,所以我们可以自由地进行实验。到目前为止,我一直在学习如何在容器中设置不同的服务,如果我愿意,还可以在SBC上重新设置它们。我理解有些人可能不想重复同样的麻烦,但对我来说,这是学习过程中必不可少的一步。而且,这真的很有趣。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.