Mesosphere 公司为创建数据中心服务,发布了Mesosphere软件开发套件( Mesosphere software development kit (SDK)),该套件将运行在Mesos驱动的 数据中心操作系统 (DCOS)上。Mesosphere的官方博客说,目前这套SDK支持的语言包括Java、Go和Python,可以通过DCOS的web界面或者命令行将服务打包,并在集群范围内安装和执行。
Mesosphere DCOS 是一种可伸缩的数据中心(datacenter-scale)操作系统,能够在数据中心或者云中,将服务和应用跨机器集群运行。DCOS将 Apache Mesos 集群管理器与一些开源或者专利组件整合在一起,为开发和管理服务提供定制化的web界面和命令行。
Mesosphere官方网站上说,DCOS当前提供 两个版本 :社区版,包括免费云许可,当前可以运行在Amazon的AWS上,计划支持Microsoft的Azure和Google云平台;商用企业版,可以运行在企业云或者公有云上,并享受24x7的技术支持服务。
在Mesos中已经一些存在的调度器或者Framework的用法得以延续,这些应用包括,用于执行长时间运行(微)服务的 Mesosphere Marathon ,用于运行批量负载的 Chronos ,用于大规模数据处理的 Spark ,用于数据存储的 Cassandra ,以及其他一些应用。 Mesosphere官方网站 上说,相较于直接使用标准的Mesos集群,DCOS的目标是简化这些Framework的安装和管理。发布Mesosphere SDK的目的是降低开发者创建特定Framework或者数据中心服务的门槛。
就Mesos、DCOS以及新的Mesosphere SDK等相关问题,InfoQ采访了Mesosphere数据中心应用架构师 Michael Hausenblas 。
InfoQ: 包括Mesosphere、Twitter和Apple在内,很多公司都在基于Mesos构建Framework。Spark的Framework是Mesos的第一批Framework之一。你能向InfoQ的读者讲述一下相关的历史吗,以及为什么我们一直呼吁Framework的创建者要基于Mesos构建?
Mesos的故事开始于2009年,加州大学伯克利分校的 AMPlab ,当时在读博士生Benjamin Hindman、Andy Konwinski和Matei Zaharia正在研究集群资源的配额和调度,并且构建了Mesos。为了 演示 基于Mesos之上创建的,一个完整的新分布式系统能跑多快,他们开发了只有1300行代码的Spark。Spark是为Mesos编写的一个应用示例,诞生于Benjamin父母的滑雪小屋,耗时一个周末。
这创造了新一类数据中心开发者,他们可以在周末完成分布式系统。为了不重新发明轮子,他们使用了Mesos提供的群集资源共享元。这样以来,几乎不用写任何网络代码,开发周期更快,同时还可以依赖Mesos的容错性和可扩展性。
也许你已经知道,Benjamin Hindman现在是Mesos背后的商业实体公司Mesosphere的首席架构师。Andy Konwinski和Matei Zaharia是Spark背后的商业实体公司Databricks的联合创始人。我们将在这个生态体系中看到更多的商业形式。
Hausenblas:Mesosphere DCOS是一种新型的横跨数据中心或者云机器的操作系统,能够将全部机器资源池化,使它们的行为看起来像一台大计算机。Apache的开源项目Mesos,是这个操作系统的内核。这与Linux世界中的工作模式类似。你拿到Linux内核,它本身并没有多大用处,于是你拿到了一个像Ubuntu那样的发行版,它里面已经围绕内核增加了所有的系统服务和工具,使之成为一个完整的产品。我们已经为数据中心做了同样的事情。我们使用一系列组件包装了Mesos内核,比如初始化系统(marthon)、文件系统(HDFS)、应用打包和部署系统、图形化界面和命令行。所有这些组合在一起组成了DCOS。关于Mesos和Mesosphere之间对比的讨论,可以看 这篇博客 。
InfoQ:你觉得编写基于数据中心操作系统的数据中心服务,与开发者编写运行在本机操作系统的应用程序或者运行在手机操作系统上的APP有什么区别?
Hausenblas:非常类似的是:早在PC时代,我们有像MacOS和Windows这样的操作系统,它们将硬件和多核处理器抽象出来,为应用程序开发者提供了一种通过使用功能强大的API和原语,就可以快速编写桌面应用程序的方式。这使得快速开发、利用底层的硬件,以及易于(最终用户)同时运行许多应用程序成为可能。
不同的是:如今使用数据中心操作系统,我们要为不同的生产因素构建应用程序。在数据中心中,你是在面对4万核的机架编程,而你的笔记本电脑是4核。但这确实是一样的。请求内存分配、产生新的任务、抽象的硬件并为构建应用程序提供一个统一的API,这只是规模不同而已。
要澄清的是:数据中心的开发正在成为主流,置身其中的大多数人可能不需要编写本地的数据中心服务。他们可以充分利用工具,比如使用 Marathon 构建应用程序和数据中心的工作负载。如果你真的需要开发数据中心的服务,我们的 常见问题涵盖了如何去做 。除此之外,从应用的角度来看,它真的是很简单:在最简单的情况下,如果要运行现有的应用程序,比如使用JAR文件或Python脚本的Java应用程序,你可以不用做任何修改。在更复杂的情况下,比如你要构建一个 面向微服务的应用程序 ,是基于Docker镜像的,你可以使用Mesos-DNS做服务发现,使用Marathon组件启动和编排你的容器。
Hausenblas:Mesosphere的SDK(软件开发套件)是为DCOS开发者提供的,使他们能够更轻松地使用不同的语言(Java、Go、Python)创建一个新的数据中心服务,打包部署这些应用,且使用命令行工具中的一条命令即可完成安装。Mesosphere的SDK开放了Mesos API,同时还提供了DCOS的扩展包、构建服务(调度器的开发,执行器等)库、Alpha、Beta和 Production阶段的认证清单和开发者手册。此外还有一个非常强大的社区成长计划,这是应用程序开发走向成功的重要组成部分。
InfoQ:开放这些服务作为操作系统的抽象,其根本原因是什么。对于Framework的创建者,或者构建在服务之上的应用程序的最终消费者来说,卖点是什么?
Hausenblas:对于构建和运行分布式应用程序来说,按机器级别的抽象是错误的,因为它迫使你去推断机器的具体细节信息,比如IP地址和本地存储。通过将所有的机器,包括虚拟的或物理的,组成一个资源池,DCOS为任务、服务发现和传递任务协调消息的自动配置,提供了内置的原语。因为你无需亲自写(测试和调试)这样的代码,因此效率得到很大的提升,你可以更快速地提供更好的用户体验。通过构建数据中心操作系统的抽象,你可以将新的可伸缩数据中心的产品,快速推向市场。这就是操作系统的催化剂作用。想象一下,如果没有iOS和Android,要构建和交付Uber,得花上好几年的时间。
但是,之所以使用数据中心操作系统的抽象也有经济因素。操作系统提供了可以在其上分发跨基础设施运行的应用程序的平台。这使开发者得以进入一个宽广、无摩擦的市场,在这里他们可以分发这些应用程序。我们已经让开发者很容易地分发他们的作品,例如,在DCOS中构建一个非常复杂的打包系统,可以让我们打包一个复杂的分布式系统(如Cassandra、Kafka、Spark、Kubernetes等),运维人员或者开发人员可以用一个命令,在几分钟内完成安装、配置和运行这个系统。这是前所未有的。我们的CEO Florian聊过,他在Airbnb公司的时候,曾经用了三个星期的时间来搭建Cassandra。我用一个命令安装Cassandra只需要不到2分钟。
InfoQ:所有这些数据中心服务会被存在什么地方,InfoQ的读者将如何获取这些服务呢?
Hausenblas: 数据中心的所有这些服务将会存储于一个不断发展和壮大的仓库中。DCOS仓库是一种打包和交付大型分布式系统的方式。它的工作原理是将较低级别的容器仓库关联在一起,就像DockerHub(存储我们容器镜像的地方)那样,但是DCOS仓库包含了所有的元数据,允许分布式系统复杂的安装和配置,比如Hadoop或者Kafka。
由于新的数据中心服务的开发,开发者将它们添加到DCOS仓库(这里无需支付费用),然后他们通过一个命令安装成为客户和潜在客户。开发者很高兴能无摩擦地进入DCOS用户不断增长的生态系统,从世界500强企业到新兴的创业公司。DCOS提供了部署和管理数据中心应用程序的标准化平台,无论是在云端还是在企业内部,历史性突破了企业采用最新技术的一个很大的障碍。
当你为DCOS构建之时,就是在为Mesos社区构建。因为Mesosphere DCOS是建立在Mesos之上的,你的应用程序将具备Mesos开源社区成员的所有好处,包括DCOS整套的部署、伸缩和管理功能。对于开发者来说,DCOS SDK提供了社区和可重用的代码。对于客户来说,它提供了方便的应用程序发现,而且安装方便。
Hausenblas:作为开发者计划的成员,你将获得全套的DCOS SDK开发工具和库,还将参与DCOS开发者社区的成长。通过加入开发者计划,你将有资格成为VIP合作伙伴。作为VIP合作伙伴,除了开发者计划,您将得到高优先级的获取Mesosphere开发、早期DCOS服务构建,并具备贡献完整认证的DCOS服务的能力。开发者计划是免费的,向所有人开放。VIP合作伙伴计划只接受邀请,并且提供给经过挑选的合作伙伴。
InfoQ:你现在可否提供一些用SDK编写的服务示例呢(以及他们是如何定制使用Mesosphere DCOS提供的通用服务的呢)?
Hausenblas:我们有很多重要的VIP合作伙伴为DCOS构建了数据中心服务,他们的服务处于alpha、beta或者production等不同阶段。他们的服务包括Kafka、Kubernetes、HDFS、Hadoop、YARN、MemSQL、Cassandra、ArangoDB、Crate.io、Spark,以及Quobyte等等。这些都是DCOS的最高需求的核心服务,我们预计在今年年底前能有超过100个这样的服务。关于DCOS服务的不断更新列表,详见 https://docs.mesosphere.com/reference/servicestatus 。
InfoQ: 非常感谢你今天的宝贵时间,Michael。还有什么想与InfoQ的读者分享的吗?
谢谢。我想我们已经覆盖了全部内容 - 我们非常期待InfoQ读者关于SDK的反馈,同时期待大家对新数据中心服务的贡献!
关于Mesosphere DCOS SDK的更多信息请访问 Mesosphere的博客 ,在Mesosphere的官方网站上可以找到 Mesosphere developer program ,由此可以注册并获取SDK。
查看英文原文: Mesosphere Releases SDK for Mesos-Powered 'Datacenter Operating System'