Mesosphere 为 Mesos 驱动的数据中心操作系统发布 SDK

  • Daniel Bryant
  • 韩陆

2015 年 8 月 5 日

话题:DevOps语言 & 开发架构

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 的联合创始人。我们将在这个生态体系中看到更多的商业形式。

InfoQ:Apache Mesos 和 DCOS 之间的区别是什么?

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 组件启动和编排你的容器。

InfoQ:给我们讲讲 SDK 自身的事情吧,它都定义了哪些东西呢?

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 提供了社区和可重用的代码。对于客户来说,它提供了方便的应用程序发现,而且安装方便。

InfoQ:InfoQ 的读者将如何 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'

DevOps语言 & 开发架构