与 Rocks Cluster Distribution 相比,使用 Apache Mesos(或 DC/OS)有什么优势?
What are the advantages of using Apache Mesos (or DC/OS) over Rocks Cluster Distribution?
Apache Mesos 和 Rocks Cluster Distribution 均可用于 运行 任务和管理集群资源。
它们之间有什么区别,在什么情况下选择一个比另一个更好。
据我了解,相似之处是:
- 两者都用于管理集群中的资源
- 两者都可以安装在 RHEL/CentOS
- 列表项
同样的区别是:
- Apache Mesos 也支持 Ubuntu 安装
- Apache Mesos 要求托管任务 运行 在容器中
- Apache Mesos 允许(尽管不鼓励)在安装框架时 运行 在框架外执行任务
- Rocks Cluster Distribution 将集群视为一台机器(对于用户而言,集群上的任务 运行 并不明显)。
为什么有人会使用 Apache Mesos 而不是 Rocks Cluster Distribution?
我不是 Rocks 用户或专家,我在 Mesosphere 工作。这些评论是基于研究,而不是对 Rocks 的深入体验。所以把这个和一堆盐放在一起......如果有人知道得更多,我很乐意接受更新。
Rocks Cluster Distribution seems like a traditional distributed operating system 专为在超级计算机上使用而设计,但它 运行 在现有操作系统上运行,而不是使用其自己的微内核。与 Plan 9 等较旧的分布式操作系统相比,它具有多项进化优势,但并非旨在利用调度和超大规模计算方面的更多现代进步。
成熟度
Rocks绝对比Mesos成熟。这既有利也有弊。
我认为最好的看待它的方式是 Rocks 解决了学术界和政府在大约 2000 年左右遇到的问题,在 VMware 将虚拟化带给大众之前,在 Chef、Puppet 和 Ansible 使集群配置变得司空见惯之前,在 Google 和 AWS 在 Hadoop 普及 map/reduce 和分布式计算之前,在敏捷入侵企业公司之前,在 iPhone 将超级计算机放入每个人的口袋之前,AWS 拥有行星大小的超大规模计算机跨越每个大陆的数据中心,在微服务让单体变得过时之前,在 Docker 容器化普及之前,在物联网将微芯片放入你的鞋子和恒温器之前。过去 15 年的所有这些进步意味着人们的问题已经发生了重大转变。
Mesos 只有 5 岁。所以它比 Docker 和 Kubernetes 更成熟,仍然支持非容器化的本地进程(它们被透明地包装在一个可配置的隔离容器中),但已经被 Twitter 和苹果.
新的并不总是更好,但景观变化非常快,将新想法融入旧设计变得越来越难。
计划
现代集群任务调度器(Hadoop YARN、Mesos、Kubernetes 等)。允许在 运行 时间安排、监控、重启和重新安排任务。然而,Rocks 需要在每个节点上从 RPM 重新安装。通常 GRID computing system 必须在顶部分层,以便实际有效地使用资源。
Mesos 另一方面,可以更轻松地编写用于处理 运行 时间任务和应用程序生命周期管理的客户调度程序。一些非常通用的 Mesos 调度器也已经存在,用于处理常见的应用程序生命周期(Marathon、Aurora 等)。 Cassandra、Kafka 和 Spark 等其他分布式应用程序有自己的自定义调度程序来处理特定于业务逻辑的生命周期管理,尤其是与持久数据、耗尽清理和自动缩放相关的。
超大规模
Rocks 旨在支持 single system image 的前提,并且通过使集群对集群上的应用程序 运行ning 不可见来实现。这听起来像是一个了不起的壮举,但实际上它非常低效,导致不可预测的性能,并且没有提供足够的 API 来处理集群操作的所有复杂性。
与此同时,Google、亚马逊和其他公司正在投资 hyperscale computing,这允许以适度的成本实现大规模增长,而无需重新构建其基础架构、平台或软件。
Mesos 提供了一个新的抽象层,而不是试图模仿较低的抽象层(如 POSIX 和单机操作系统)。因此它可以更好地处理集群和节点生命周期事件。
套接字与TCP/IP
Rocks 应用程序使用 POSIX 套接字进行通信。虽然这会带来很多低级别的灵活性,但套接字的设计并没有像网络协议那样容忍故障。与遗留单体不同,现代微服务使用网络通信作为其主要通信形式。这种极端解耦的新架构范例使得应用程序不需要 运行 在一起,而是使用服务发现通过网络找到彼此。因此,现代集群不需要容纳多节点套接字流量,这让它们变得更加可靠和容错。
状态存储
Mesos 使用 Zookeeper。岩石使用 MySQL。
容器
Mesos 允许但不要求工作负载使用容器镜像。您可以轻松地压缩您的进程,Mesos 会将其下载到需要它的节点。 Mesos 可选地支持 Docker 容器,但默认是 Mesos 容器 运行time,它具有可配置和可插入的隔离级别。
DC/OS
Mesos 不是操作系统。它实际上更像是一个具有主配置和代理配置的分布式内核。如果您真的想与另一个分布式操作系统进行比较,请查看 DC/OS,它围绕 Mesos 提供了大量功能,使其成为您数据中心的操作系统。
Apache Mesos 和 Rocks Cluster Distribution 均可用于 运行 任务和管理集群资源。
它们之间有什么区别,在什么情况下选择一个比另一个更好。
据我了解,相似之处是:
- 两者都用于管理集群中的资源
- 两者都可以安装在 RHEL/CentOS
- 列表项
同样的区别是:
- Apache Mesos 也支持 Ubuntu 安装
- Apache Mesos 要求托管任务 运行 在容器中
- Apache Mesos 允许(尽管不鼓励)在安装框架时 运行 在框架外执行任务
- Rocks Cluster Distribution 将集群视为一台机器(对于用户而言,集群上的任务 运行 并不明显)。
为什么有人会使用 Apache Mesos 而不是 Rocks Cluster Distribution?
我不是 Rocks 用户或专家,我在 Mesosphere 工作。这些评论是基于研究,而不是对 Rocks 的深入体验。所以把这个和一堆盐放在一起......如果有人知道得更多,我很乐意接受更新。
Rocks Cluster Distribution seems like a traditional distributed operating system 专为在超级计算机上使用而设计,但它 运行 在现有操作系统上运行,而不是使用其自己的微内核。与 Plan 9 等较旧的分布式操作系统相比,它具有多项进化优势,但并非旨在利用调度和超大规模计算方面的更多现代进步。
成熟度
Rocks绝对比Mesos成熟。这既有利也有弊。
我认为最好的看待它的方式是 Rocks 解决了学术界和政府在大约 2000 年左右遇到的问题,在 VMware 将虚拟化带给大众之前,在 Chef、Puppet 和 Ansible 使集群配置变得司空见惯之前,在 Google 和 AWS 在 Hadoop 普及 map/reduce 和分布式计算之前,在敏捷入侵企业公司之前,在 iPhone 将超级计算机放入每个人的口袋之前,AWS 拥有行星大小的超大规模计算机跨越每个大陆的数据中心,在微服务让单体变得过时之前,在 Docker 容器化普及之前,在物联网将微芯片放入你的鞋子和恒温器之前。过去 15 年的所有这些进步意味着人们的问题已经发生了重大转变。
Mesos 只有 5 岁。所以它比 Docker 和 Kubernetes 更成熟,仍然支持非容器化的本地进程(它们被透明地包装在一个可配置的隔离容器中),但已经被 Twitter 和苹果.
新的并不总是更好,但景观变化非常快,将新想法融入旧设计变得越来越难。
计划
现代集群任务调度器(Hadoop YARN、Mesos、Kubernetes 等)。允许在 运行 时间安排、监控、重启和重新安排任务。然而,Rocks 需要在每个节点上从 RPM 重新安装。通常 GRID computing system 必须在顶部分层,以便实际有效地使用资源。
Mesos 另一方面,可以更轻松地编写用于处理 运行 时间任务和应用程序生命周期管理的客户调度程序。一些非常通用的 Mesos 调度器也已经存在,用于处理常见的应用程序生命周期(Marathon、Aurora 等)。 Cassandra、Kafka 和 Spark 等其他分布式应用程序有自己的自定义调度程序来处理特定于业务逻辑的生命周期管理,尤其是与持久数据、耗尽清理和自动缩放相关的。
超大规模
Rocks 旨在支持 single system image 的前提,并且通过使集群对集群上的应用程序 运行ning 不可见来实现。这听起来像是一个了不起的壮举,但实际上它非常低效,导致不可预测的性能,并且没有提供足够的 API 来处理集群操作的所有复杂性。
与此同时,Google、亚马逊和其他公司正在投资 hyperscale computing,这允许以适度的成本实现大规模增长,而无需重新构建其基础架构、平台或软件。
Mesos 提供了一个新的抽象层,而不是试图模仿较低的抽象层(如 POSIX 和单机操作系统)。因此它可以更好地处理集群和节点生命周期事件。
套接字与TCP/IP
Rocks 应用程序使用 POSIX 套接字进行通信。虽然这会带来很多低级别的灵活性,但套接字的设计并没有像网络协议那样容忍故障。与遗留单体不同,现代微服务使用网络通信作为其主要通信形式。这种极端解耦的新架构范例使得应用程序不需要 运行 在一起,而是使用服务发现通过网络找到彼此。因此,现代集群不需要容纳多节点套接字流量,这让它们变得更加可靠和容错。
状态存储
Mesos 使用 Zookeeper。岩石使用 MySQL。
容器
Mesos 允许但不要求工作负载使用容器镜像。您可以轻松地压缩您的进程,Mesos 会将其下载到需要它的节点。 Mesos 可选地支持 Docker 容器,但默认是 Mesos 容器 运行time,它具有可配置和可插入的隔离级别。
DC/OS
Mesos 不是操作系统。它实际上更像是一个具有主配置和代理配置的分布式内核。如果您真的想与另一个分布式操作系统进行比较,请查看 DC/OS,它围绕 Mesos 提供了大量功能,使其成为您数据中心的操作系统。