大多数云计算技术都是基于虚拟化的。云计算技术的广告经常提到可靠性和降低成本。但是与像Java这样的容器技术相比,动态迁移和虚拟化的硬件抽象要困难得多。
那么,基于虚拟化的云计算比基于容器的技术更流行的原因是什么呢?
发布于 2015-06-22 09:34:30
灵活性。
如果您使用在容器中运行应用程序的共享宿主,则只能执行一小部分非常特定的任务。
如果您使用虚拟机,您将受到操作系统和管理程序的限制,但是您的机动空间要大得多。
例如,在VM上,您可以访问所有文件,这也意味着您可以安装任何您想要的文件。这样就可以在共享主机平台上做一些你不能做的事情。示例:
此外,您还可以使用系统管理员多年或几十年来使用的工具来管理服务器。例如,如果您有一个VM,您通常可以使用SSH或通过RDP访问它。在基于容器的服务器中,唯一可以作为客户使用的东西是托管公司提供的(通常是糟糕的)工具。这使得很难对应用程序进行概要分析或调试,甚至生成转储或读取日志文件这一最简单的任务也可能变得不必要地复杂。
集装箱方法本身没有什么问题。它有其完全有效的用途。但这并不能解决所有问题:有时,需要一个实际的虚拟化。
发布于 2020-02-04 17:43:26
这个问题已不再准确。今天,由开放式集装箱倡议 (包括Docker)定义的容器化是一种托管复杂应用程序的方法,就好像它们是单独的单元一样。集装箱提供了良好的成本节约和高可用性。这提供了以下好处:
在这个场景中,如果您需要添加redis缓存,那么您将引入redis容器,并使用编排服务将所有内容连接到一起。
每个主要的云提供商都有一个托管容器服务,包括Amazon、Azure AKS、Google等。通常情况下,云管理托管容器的硬部分,并为其提供部署指导。只要付出最少的努力,您也可以使集群自动扩展。
底线是容器集群运行在虚拟机之上,但是您不再管理它。有一些权衡,但我相信它们是可以管理的:
尽管如此,2020年的力量平衡肯定已经转向使用符合OCI的容器来承载您的应用程序。
https://softwareengineering.stackexchange.com/questions/287501
复制相似问题