Apache Mesos、Apache CloudStack 和 OpenStack 解决了大规模、轻松管理基础设施(私有云或公共云)的问题。
Mesos 和 CloudStack/OpenStack 之间的主要区别是什么?
(PS:请原谅我没有为该问题添加标签 apache-mesos。该标签不存在,而且由于我的分数较低,我无法创建标签)
答案1
一个全面的文章已于近期发布,涵盖了您的问题。
本文的一些亮点:
“实际上,您可以在使用 OpenStack 配置的任何云上运行 Mesos,这正是我们许多客户目前部署它的方式。当然,Mesos 也可以直接在裸机上运行,所以这也是另一种选择。”
“Mesos 的妙处在于它颠覆了虚拟机范式。Mesos 不会将应用程序拆分为多台机器运行,而是将所有系统集中起来,并将它们作为单一资源(一台机器)呈现给应用程序。从设计角度来看,它使在云或数据中心上运行应用程序在概念上与在单个(非常大的)桌面上运行应用程序相同。”
因此,如果您需要传统的 IaaS 供应模型,请使用 OpenStack/CloudStack。如果您希望汇集您的系统并将其作为单一资源呈现,Apache Mesos 是一个不错的选择。
答案2
如果你问我,这是一个范围问题。如果你正在做传统的 IaaS,正如@user222032 已经提到的那样,那么 cloudstack 将成为你的朋友。因为使用虚拟化,你处于“计算”范围内,所以你基本上可以做任何你能用计算机硬件做的事情。
除此之外,使用 mesos 时,您只能在操作系统(例如 mesos)上运行,例如在受支持的框架内运行应用程序(甚至是 docker 容器)。但请记住,您并不像在纯硬件上那样“自由”。
例如:使用 mesos 提供桌面即服务?如果 SSH 对您来说足够了,那么可以。但这完全不是 mesos 的范围(这意味着您最终会进行更多配置,而不是更少)。提供 Windows 桌面?OSx 桌面?没办法。
所以对我来说,真正的问题是你想用它做什么。谷歌、Facebook 或 Twitter 的使用情况很可能不是你的。因此,谷歌运行数据中心的方式——尽管令人着迷——在大多数情况下不适合你的使用情况(除非你是某种电子服务提供商)。由于 mesos 实际上是谷歌“borg”的副本,如果你正在做 IaaS,它可能不是你所需要的。
但是,如果你想做 PaaS 或软件即服务,在特殊的大数据处理和运行 Linux 应用程序和数据库方面,mesos 可能正是你所需要的。做大数据?那么 mesos 可能适合你(让我澄清一下:我说的是真正的 BI,而不是他们以 BI 的形式卖给你的东西。运行 Hadoop 或任何 map Reduce 数据库并不意味着你在做大数据。它只是意味着你成功安装了 Hadoop - 不多也不少)。
请记住,即使可以在一组虚拟机上运行 mesos - 这样您就拥有了一个能够完成所有工作的数据中心,但您也会失去像谷歌这样的公司一直在寻求的通过开发 borg(=> mesos)之类的东西所带来的效率优势。
几年前,世界很美好——只需在一个庞大的 VM 集群中运行一切。你只需要选择哪一个:ESXi、HyperV、KVM。如今,它似乎又变得更加复杂:虚拟机还是容器?集群还是“模拟”的大型单机(mesos)?正如你所见,两者都有其用例。所以今天你必须做出决定,最终必须运行两种截然不同的技术才能完成所有事情,这有点糟糕。
由于“它糟透了”一直是开发新产品的最大驱动力,我很期待这两种技术在未来几年内如何融合在一起。但我想这需要更长的时间才能最终进入“企业市场”。看看类似简约和 evorail 的东西,它们目前是市场上的“热门产品”,但在现代数据中心应该如何运作的想法方面仍落后约 3 年。毕竟:我不是在责怪企业市场,而是客户不想在思考和交谈上投入。宁愿付钱让别人给你一些“最终”解决方案,并为解决方案付费,这样你在接下来的几年里就“没问题”了。我想这就是为什么像 mesos 这样的东西只发生在初创公司和硅谷的原因。在其他地方,硬件很便宜,而人力和时间很昂贵。