Mesos vs OpenStack,谁才是私有云的将来?

本文是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? (翻译:王哲 )

===========================
译者介绍
王哲,浙江大学SEL实验室硕士研究生,目前在云平台团队从事科研和开发工做。浙大团队对PaaS,Docker,大数据和主流开源云计算技术有深刻的研究和二次开发经验,团队现联合社区将部分技术文章贡献出来,但愿能对读者有所帮助。

来自:http://dockerone.com/article/224 html

相关文章
相关标签/搜索