Mesos与Openstack

标签: mesos openstack | 发表时间:2016-10-25 11:55 | 作者:m635674608
出处:http://www.iteye.com

本文是 Quora 上的一个问题,提问者对于私有云未来的发展趋势感到疑惑,Mesos和OpenStack的关系是怎样的,它们之间是否可以相互替代?
来自 Mesosphere以及Rackspace的专家们从OpenStack与Mesos的功能和产品定位上对这个问题进行了解读,它们之间的关系并非互相 替代,
而是各有侧重,相辅相成,这取决于用户的实际需求。希望本文内容可以帮助读者对私有云领域的开源产品和相关概念有更好的了解。

Quora上的问题

私有云的未来的发展趋势是什么,是Mesos?还是OpenStack?

在私有云方面,Mesos和Docker二者似乎是一个完美的结,Google一直致力于这方面的研究,我很好奇私有云的未来会是怎样的,大家怎样认为的?

回答者:Lukas L?schea(在Mesosphere工作,之前在工作中曾使用OpenStack)

Mesosphere和Openstack解决的是完全不同的问题。实际上,它们是可以在一起协同工作的。用户完全可以在OpenStack的集群上面运行Mesos,
这样做可以带来很多额外的好处,比如提高系统的利用率和容错性。

我发现OpenStack的初始配置工作比Mesos要困难许多,但是对于OpenStack系统的整体理解要容易许多,因为OpenStack集 群的运行方式基本上
与我们过去几年运行系统的方式类似。OpenStack的基本理念是提供虚拟的服务器,为了实现这一目的,OpenStack也提供很 好的硬件层抽象。
但是虚拟机构成的集群可能会让你感到难以运维,对于每个虚拟机的维护也并非容易,用户遇到的问题基本上和以前在直接维护物理机集群基本
相 似。你仍然需要一个操作系统,一些配置和管理的工具,就像是Puppet、Chef、Salt、Ansible等等,并且需要采用独立的主机来运行这些工
具。容器化的思想是在这之后才有的技术。虽然在OpenStack上已经有了Docker Nova的驱动,但是在我看来,大多数人使用OpenStack是为了
创建虚拟机而并非容器。他们使用OpenStack的方式更类似于对AWS的使用方 式。

而现实情况是,用户并不需要那么多的服务器,用户只是希望能够将它们的服务运行起来,使其可以发挥作用。从这个角度来看,OpenStack能
做的 事情并不多。提供服务器是一种终极解决方案,最终来看,所有的服务都要运行在服务器上。但是如果我有其他选择,我宁愿采用这样的
方式来运行我地服务:服务 可以无限扩展(我不用在乎它们是怎样运行以及运行在哪),当服务失败的时候能够被自动检测并且可以自动修复,
我也不需要在凌晨3点的时候被叫醒,对服务进 行维护。这就是Mesos所能完成的事情。

Mesos的用户可以按照新的方式调整他们的工作模式,这样可以大大简化工作流程。比如,如果用户使用 Marathon 来长时间地运行服务,就可以
这样来设置工作流程:开发者可以将代码提交到staging分支中,CI(Continuous integration)服务器(运行在Mesos集群当中)会构建一个
docker image并且升级Marathon REST API来通过docker image进行部署。如果在staging阶段,服务运行的都很正常,开发者就会把他新提交的
代码合并到master/production分支中,从而 完成了产品系统的升级和部署。

最终的效果应该是这样的:对用户而言,所谓的部署过程仅仅意味着开发者将他的代码提交到对应的分支。类似于滚动部署(rolling deployments),
服务之间的依赖,健康检查以及自动重启这些功能都可以由Mesos/Marathon来提供。

这是一种完全不同的工作方式,因为在这种模式下,运维人员不再需要去打包应用部署代码,或者启动特定的监控服务。

从复杂性的角度来看,我认为,如果用户想基于OpenStack来运行私有云平台,至少需要了解 Heat、Nova、Glance、Keystone、Neutron以及
Cinder这些组件。我过去曾经做过OpenStack部署的工作,我发现由 于OpenStack本身的设计原因,在维护过程中会出现来一些很复杂的问题。
因为Openstack本身是一个企业级的产品,是并非社区产品,你会发 现,OpenStack平台的安装和运维工作至少需要来自不同部门的几个人一
起负责。因此,如果你在一个大的公司或组织里面工作,OpenStack平台 的维护工作可能恰好可以按照公司本身的组织结构来进行分工(系统
支持、服务器硬件、基础设施及网络、安全等等)

在网上可以找到相关的教程,基本上可以帮助你在半个小时左右就设置好可以用于生产环境的Mesos集群。

从个人的观点来看,Mesos的工作方式可能是未来我们运行数据中心的方式。所谓数据中心就是说我的所有的硬件资源都可以协同工作就像一
整台电脑一样,而并非是以单个主机的方式进行工作,并且用户不需要通过手工决定服务要在哪里运行。

回答者:Florian Leibert

对于私有云平台的构建,Mesos+Marathon+Docker是一个很好的解决方案。Mesos是一个被实际验证过的可以提供伸缩性服务的工具
(Mesos被Twitter、Airbnb、Netflix、ebay、PayPal等等公司采纳)。 Marathon 是一个集群范围的初始化和控制系统,它可以帮助用户
在cgroup和Docker容器中运行Linux服务。许多公司都看好这个技术上,所有的关键组件都 是开源的,这些技术也构成了我的公司的
DCOS(Mesosphere Datacenter Operating System)商业产品的核心组成部分。

Mesos以及Mesophere系列技术可以提供一个类似的云环境,这个环境中可以运行已有的Linux任务,它也可以提供一个本地的环境用于
构建新的分布式系统。

Mesos是一个分布式的系统内核,针对数据中心直接提供了编程所需的API。它将底层的硬件(裸机或者虚拟机)进行抽象,将这些硬件
以一致的资源 的形式提供给用户。它包含着用于构建分布式系统的基本功能(例如,Mesos支持Spark App、还有Chronos等等)例如
消息传递,任务执行等等。这样,用户就可以利用Mesos来构建完整的服务。Apache Spark就是其中的一个例子,Spark框架在Mesos
的基础上进行构建,这很大程度上提升了开发工作的效率。比如Spark的开发者不用担心网络相 关的问题,不用考虑如何将任务分布在
不同的结点上来执行,这些都是Mesos所具备的基础核心功能。

可以参考Mesos在Apache.org上的 页面 。Mesosphere及其合作伙伴正在对这些服务进行认证,并且正在将这些服务打包进
Mesosphere DCOS Datacenter Service中,这样这些服务就可以通过一条指令直接被安装完成。

Mesos的另一个很好的特性就是它可以运行在已有的OpenStack集群上,也可以直接在裸机上运行,只需要在每个节点上运行一个小
的Linux进程即可。

我认为Mesos是云计算的未来,因为它提供了良好的服务伸缩性,有利于数据中心自动化运维,可以进行自我诊断并且提供丰富的本
地的服务生态系统 (rich native application ecosystem),与此同时,还可以不用对代码进行修改就可以让已有服务正常运行。

回答者:Nati Shalom(构建了第一个Java PaaS解决方案, 与Amazon、RackSpace、Azure、VMware、Xen、JClouds专家一起工作,
设计了一款在云端提供自动化服务和编排服务的产品。)

在IT行业,每隔一段时间,就会有新的技术出现,代替原有的“新的技术”,Mesos的案例似乎很符合这个情况。

事实上,虽然Mesos很成功,但并不能使其成为一个取代已有基础云设施的通用的解决方案。在之前的一篇文章中: 如果我使用Docker我
还需要OpenStack吗? ,我就指出,在特定的领域内,OpenStack与Docker一样流行,因此Docker暂时还无法取代OpenStack。

我的观点是,如果想回答这个问题,我们需要回顾一下最初的时候我们希望从类似于OpenStack一样的云基础设施中得到什么。并且对比
一下。Mesos是否能提供覆盖全部这些功能的替代方案。

像OpenStack一样的云环境,除了可以主动获取资源,分配工作负载之外,还可以针对各种各样的计算、存储以及网络等核心功能提供
基于多租户的资源管理。

随着许多主要的云服务提供商不断投入到公有云基础设施的研发中,OpenStack也逐渐发展成一个生态系统。

对于跨主机分配工作负载,Mesos也做得很好。但是我觉得不应该把它看做是OpenStack云平台的替代方案。如果想要替代 OpenStack,
就需要提供与OpenStack同样级别的安全、存储、网络以及多租户的服务。我也不认为Mesos需要在所有方面做得都要比 OpenStack更好。
在我看来,Mesos至多可以和OpenStack运行的一样好,而并非替代OpenStack。

回答者:Dale Bracey(Rackspace私有云OpenStack产品工程师)

虽然我根本不熟悉Mesos,但是我大致了解,这是另外一个可以共享主机内核的容器化服务。

我尝试在 Lukas L?sche 的观点上再进行一些补充。你完全可以将之前回答中所提到的内容结合起来为你服务。OpenStack可以用来提供
伸缩性,并且可以更方便地管理你的开发工具、网站、服务以及服务器。即使是直接对裸机的管理,OpenStack也是可以完成的( Ironic-OpenStack )

OpenStack整体的部署维护比较困难,虽然文档内容非常详细,但是仍然缺少细节性的指导,比如告诉用户从开始到最后的整个的步骤
应该怎样完成。毕竟OpenStack是一个很大的项目,这种复杂性也是正常的。

OpenStack试图成为一个可以管理多种Hypervisor、虚拟机以及存储服务的编排层,但是目前仍然缺乏足够的能力。之前提到了
OpenStack-Docker Nova驱动,这个项目将Docker安装在计算节点上,将容器按照虚拟机的方式提交给Nova/Glance,但实际上,
容器并不虚拟机,这样用户不仅 可以利用容器技术本身的优势,还可以利用OpenStack提供的控制管理功能。此外还有一个 CoreOS-OpenStack
的项目,这个项目同样也很流行,这两个项目都有类似的特性。

当然,用户仍然需要使用一些配置系统来帮助你管理系统,除非想让事情变得更复杂。我们曾经使用Chef,之后使用Ansible。令人难过得是,
我 刚刚才知道,Ansible的CTO Michael Dehaan今天离开了Ansible公司。我不知道这个公司今后将会怎样发展,当然这是题外话。

如果你仅仅希望自己的系统能够运行,而不是去关心虚拟机和服务器,OpenStack的开箱即用并不能为你提供完全自动化的环境,但是你可以
利用些 现成的工具来实现这一目的。这些工具也是完全开放的,你可以对它们定制开发并且能按照你希望的方式来工作。你可以将
Heat-OpenStack、 Ceilometer-OpenStack、以及各种DevOps工具结合起来为你提供自动化服务。

最后为新产品做一个广告:Rackspace也承认OpenStack的部署工作确实很困难,我们一直致力于帮助客户简化部署的难度,我们在github上提
供用于部署私有云的OpenStack结点,可以让用户免费使用(在stackgorge中有一个社区项目 stackforge/os-ansible-deployment )我们也提供了
其他的私有云的解决方案。

你可以尝试使用一下,去阅读部署文档,提交bug提交新的特性请求,并为社区做贡献,让我们来共同努力,简化OpenStack的部署流程。用户
只 需要关注服务的开发过程,不用考虑底层的基础设施,我们会一直为你提供帮助,包括更新github上面的文档。以下是一些相关的资料:

Docs: Private Cloud Support and Management by Rackspace

Install: rackspace.comPrivate Cloud Computing, Storage & Hosting by Rackspace & Openstack

Learn more: Rackspace Community

原文链接: What is the future of the private cloud world, Mesos or OpenStack



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [mesos openstack] 推荐:

Mesos与Openstack

- - 企业架构 - ITeye博客
本文是 Quora 上的一个问题,提问者对于私有云未来的发展趋势感到疑惑,Mesos和OpenStack的关系是怎样的,它们之间是否可以相互替代. 来自 Mesosphere以及Rackspace的专家们从OpenStack与Mesos的功能和产品定位上对这个问题进行了解读,它们之间的关系并非互相 替代,.

Mesos上部署spark

- - 开源小站
还是回到之前一直持续的 Mesos话题. 在之前的环节里,我们已经尝试了Mesos的安装,Marathon守护服务以及相对比较主流的Mesos作为Hadoop的资源管理器的实际操作. 这次就说说同属于伯克利出品的Spark. 其实spark最初0.7以前的版本还没有自己的资源管理系统,资源的调度都是通过Mesos来执行的.

OpenStack实践

- - 开放博客
作者:Baihuogou DevOps Team. 我们在公司内部部署OpenStack主要是内部管理虚拟机的需要. 公司内部之前使用virt-manager来管理内部虚拟机,但是缺点有二:. 虽然提供图形界面,但是是桌面软件形式,需要安装软件. 所以现在需要一个新的管理软件来解决这些问题,满足两个特性:.

Openstack Swift简介

- - 忘我的追寻
Swift 最初是由 Rackspace 公司开发的高可用分布式对象存储服务,并于 2010 年贡献给 OpenStack 开源社区作为其最初的核心子项目之一,为其 Nova 子项目提供虚机镜像存储服务. Swift 构筑在比较便宜的标准硬件存储基础设施之上,无需采用 RAID(磁盘冗余阵列),通过在软件层面引入一致性散列技术和数据冗余性,牺牲一定程度的数据一致性来达到高可用性和可伸缩性,支持多租户模式、容器和对象读写操作,适合解决互联网的应用场景下非结构化数据存储问题.

Apache Mesos的真实使用场景

- - ITeye资讯频道
【编者的话】文中内容来源于stackoverflow上的一个问题 ,提问者想知道Mesos在实际的使用中都有哪些使用场景,来自Twitter的工程师从容器编排、资源利用率、优先级和资源抢占、以及服务运行等几个角度,对问题进行了回答. 我尝试探究用户使用Mesos的原因究竟有哪些,以下是暂时列出的几个要点,不知道还有没有其他的例子.

使用Mesos和Marathon管理Docker集群

- - zzm
分 布式系统是难于理解、设计、构建 和管理的,他们将比单个机器成倍还要多的变量引入到设计中,使应用程序的根源问题更难发现. SLA(服务水平协议)是衡量停机和/或性能下降的标准,大多 数现代应用程序有一个期望的弹性SLA水平,通常按"9"的数量增加(如,每月99.9或99.99%可用性).    分布式系统通常是以静态分区,比如Akka/Play、 Spark/Hadoop、Storm和 Redis各自分区分组划分.

畅谈 Mesos 生态圈系列

- - 编程语言 - ITeye博客
Apache Mesos 是 Apache 基金会下的一个分布式资源管理框架,它被称为是分布式系统的内核. Mesos 结合容器化技术提供了有效的,跨分布式应用或框架的资源隔离和分享机制,可以做为 Hadoop、Mpi、Hypertable、Spark、 Elasticsearch 等各种分布式应用的资源管理平台.

OpenStack开源云计算 OpenStack对象存储——Swift

- - 酷勤网-挖经验 [expanded by feedex.net]
OpenStack Object Storage(Swift)是OpenStack开源云计算项目的子项目之一,被称为对象存储,提供了强大的扩展性、冗余和持久性. 本文将从架构、原理和实践等几方面讲述Swift. Swift并不是文件系统或者实时的数据存储系统,它称为对象存储,用于永久类型的静态数据的长期存储,这些数据可以检索、调整,必要时进行更新.

为 OpenStack Nova 制作 Ubuntu 镜像

- Sai - vpsee.com
最近超级忙,被 Mesh Potato 的项目折腾的不行,发现只要什么东西沾上 “分布式、集群” 这些东西事情就变得格外复杂,一台 Asterisk 服务器做 VoIP 容易,n 台 Asterisk 服务器做集群就不容易;一台 Xen/KVM 服务器做虚拟机容易,n 台 Xen/KVM 服务器做云计算就不是那么容易.

在 Ubuntu 上安装和配置 OpenStack Nova

- JimQ - vpsee.com
OpenStack 是由 Rackspace 和 NASA 共同开发的云计算平台,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service, IaaS). OpenStack 包含两个主要模块:Nova 和 Swift,前者是 NASA 开发的虚拟服务器部署和业务计算模块;后者是 Rackspack 开发的分布式云存储模块,两者可以一起用,也可以分开单独用.