私有 IaaS 或 PaaS,哪个是私有云的未来?

经过 IT 界数年针对私有云架构争论,一个企业级的私有云架构终于应运而生。和过去十年五花八门的技术不同,它已经在一些世界级巨头和技术最激进的公司里都证明了价值。

重要的是,这里指的不是 IaaS。到目前为止 IaaS 方案已经抄成了冷饭。不断的有初创公司无功而返,也不乏大公司步其后尘 —— 像OpenStack这样的项目,私有的 IaaS 从来没有成为一个正经的生意。问题出在哪呢?这是因为 IaaS 本身并不是云计算用户的终极目标。高效运维和易伸缩的基础设施(scalable infrastructure)只是提高开发效率和商业敏捷性的手段。对于CIO来讲,投入大量资源却只能前进半步,性价比不怎么样。

这就是为什么私有云的未来在于另一个开源平台 – Apache Mesos,而且看起来更像 PaaS!这条路之所靠谱是因为它仍然具有运维高效的特点,通常这一点是兜售部署私有云的重要论据,而且 PaaS 能给开发者带来更快、更简单和更灵活体验。这才是 Mesos 风格的私有云真正奏效的原因,也是云计算真正的核心。

你可能不会相信我的这些话。但你会相信 Gartner 的话,相信 Twitter,Apple,Yelp,Hubspot,Autodesk,eBay,Ericsson,Capgemini 的话,他们已经基于 Mesos 打造出功能完整、无比牢靠的私有 PaaS。

要私有PaaS,不要私有IaaS

企业的私有云复制 AWS 这样的 IaaS 是不靠谱的,AWS 当初火起来是因为可以刷卡“秒”开虚拟机,而不是因为提高了部署和开发的效率。

下面是Gartner 的 杰出分析师(Distinguished Analyst ) 和 VP Thomas Bittman 对于私有 PaaS 的看法,这出自 2014 年10 月的一篇有关于私有云用户踩过的大坑的报告:

尽管大部分的私有云是 IaaS,使用虚拟机来作为工作单元(unit of work),但单纯的 IaaS 价值有限。即便是公有云 IaaS 提供商们已经增加了不少额外功能,例如便于开发者使用的工具,用来准备虚拟机系统环境和对虚拟机内部进行管理的工具,以及越来越多的 PaaS 服务。

改善应用的办法包括进行重构以使用更多的 PaaS 服务,接入公有云 PaaS,甚至使用部分第三方的 SaaS 服务。尽管私有的 PaaS 仍然少见,支撑它的技术会日趋成熟——特别是在混合云场景下。

实际上,私有 PaaS 成熟只是个时间问题。 一直以来都是用户推动着云计算技术落地。他们是 AWS 的第一批用户,因为其让他们不用再烦运维;他们是 PaaS 的第一批用户(如早期的Heroku),因为可以远离 AWS 的复杂度;他们也是SaaS 工具,如 NewRelic 的第一批用户,因为帮助监控他们刚刚开动的云服务。

就如Marten Mickos,Eucalyptus Systems 和 MySQL 的前 CEO,今年年初言简意赅的说:

开发者再也不问你要服务器了。他们甚至不问你要一个LAMP套件(stack),他们想要 API。

— Mårten Mickos (@martenmickos)

2015年5月29日

很可能还要一些容器。

本质上,开发者想要以快速开发-部署-测试循环(code-deploy-test cycle)方式来进行开发。如果你总是在等待运维来部署镜像,那么持续交付、持续集成和微服务就是空中楼阁。坦白地讲,开发者甚至不关心在何处部署他们的应用,只要这个部署过程很流程。

这里就是 IT 和运维真正施展身手和改变世界的地方。通过合适的技术栈(至少是Mesos和Docker),聪明的 CIO 既能满足商业生成的需求 —— 如提高的资源利用率,降低用电开销以及减少宕机时间,同时又能提供快速灵活,符合开发者需求的平台。

基于 Mesos 构建私有 PaaS 不仅是跟风

对于很多 Mesos 的用户来说,包括上面列举的大公司,私有的 PaaS 不仅仅是一个时髦技术 – 它已经站在了我们的面前。Mesos 提供了服务器层面的调度和针对底层资源的抽象和管理(resource-management capabilities and abstractions),以及高层次的工具如 Marathon,Docker 和其他自己开发(并且通常开源)的工具提升开发者体验。

几乎对于一个公司来说,基于 Mesos 的 PaaS(Paas on Mesos)架构已经大大地改善了部署应用的舒适度和速度。得益于 Mesos,很多用户终于能够实践微服务架构,甚至尝试时髦的大数据,因为 Mesos 可以动态地基于实际所需资源进行调度,并且支持在同一个集群里运行任何类型的任务。

已经有好几个由大公司构建的 PaaS 框架,方便运行在 Mesos 之上,并且已经开源。包括:

  • Marathon:由 Mesosphere 开发,并且其也预装在我们的 DCOS(数据中心操作系统,面向 IDC 基于 Mesos 的 PaaS 平台)之上。Marathon被设计来运行长时间不间断运行的服务,通常用来调度运行在 Mesos 中用 Docker 封装的应用。Marathon 能处理资源分配,确保运行的服务的高可用性。

  • Apache Aurora:Twitter 很可能是世界上最大的 Mesos 用户,节点数量近万。Aurora 最初是 Twitter 开发用来作为类似 PaaS 的抽象层(PaaS-type layer),现在用来管理公司很多核心服务所需资源。类似 Marathon,Aurora 负责保证在服务器宕机的情况下任务仍然能持续运行。

  • Singularity:Singularity 有 HbuSpot 开发,将他们在 AWS 大量应该经过重构之后,使用 Mesos 来管理。 HubSpot 把Singularity 称为“盒装软件版的 PaaS”,意思是其抽象性和易用性足以让不熟悉 Mesos 的人轻松启动自己的应用。

  • Deis:Engine Yard 很多年一直是公共 PaaS 的推手,最近发布了焕然一新的核心平台 —— 基于 Deis 的私有 Docker 平台。今年早些时候,Deis 项目开始集成 Mesos。

  • Apollo:这是一个特别有意思的项目,因为它是由咨询和系统集成巨头 Capgemini 开发,来服务自己的大客户。Apollo 使用了很多额外的组件,这包含 Terraform 和 Packer,让用户构建私有的 IaaS 和 PaaS 环境。

  • Ochothon:CAD 的巨头 Autodesk 最初创建了一个容器编排层叫做 Ochopod,用来简化内部的IT流程。Ochothon 运行在 Marathon 之上,而且越来越向 Mesos 方向发展,提供支持集群内容器互相通讯的调度功能。

Mesosphere 将对开源的支持又推进了一步,在 DCOS 中添加了对其他容器管理和 PaaS 系统的支持。这些系统在开发时没考虑到 Mesos,但是仍然提供了很多好用的功能。包括 Google 领头的 Kubernetes 项目、Docker 的 Swarm,Red Hat的 OpenShift 和老伙伴 Cloud Foundry。

过去几年也有一些基于 Mesos 建构的 PaaS 没有开源,公开讨论过的公司包括:

  • Yelp:Yelp 在 Marathon 的基础上构建了一个基于 Docker 的微服务架构,叫做 PaaSTa。它能在公司和 AWS 之间完成 Docker 容器的自动化部署和服务集成。PaaSTa 等对于 Yelp 实现持续集成至关重要,该公司现在每天启动超过一百万次容器来支持其开发-测试(code-testing)流程。

  • Apple:Apple 构建了一个自己的 Mesos 调度器,名字叫 J.A.R.V.I.S.(Just A Rather Very Intelligent Scheduler 一个颇有点智能的调度器),用来支撑整个 Siri。Mesos 的集群包括数千节点,让开发人员更容易的部署 Siri 的单个组件。

  • eBay:对于eBay来说,目标是把持续化集成方案从目前基于虚拟机迁移到基于 Mesos。新方案每一个开发者都分配有一个 Jenkins 实例,下面用 Mesos 和 Marathon 来管理,而 Mesos 又基于 OpenStack 之上。

  • Ericsson:这位通讯巨头使用 Mesos 和 Marathon 来作为 PaaS 系统的基础,在全球数千个数据中心中运行数据分析服务并且保证服务的 SLA。 DCOS 助力私有 PaaS

尽管之前提到的案例显示 Mesos 带来的美好愿景,现实不是每一个公司都有足够的资源和热情,完全依赖开源技术来构建核心业务系统。

我们的 DCOS 让构建一个私有的 PaaS 变地相对简单,提供了所有必要的组件和范例,不管是公有还是私有的云。DCOS 包含了开源 Mesos 的所有功能,还在用户界面、SDK 和商业支持方面有重大改进。

大的架构如下图:

mesosphere

其中的 IaaS 层在这里严格地指底层被管理和被部署应用的主机,可以是物理机、虚拟机或者公有云主机。DOCS 负责管理底层的主机集群资源,包括 CPU、内存和存储资源,只要这些主机运行 Linux 即可。DOCS 负责实现应用的高可用性和可扩展性。

在 DCOS 抽象的计算资源之上,PaaS 层包括应用、应用组和服务等逻辑概念。DCOS 中默认的 PaaS 服务是 Marathon,一个由 Mesosphere 开发并开源的项目。Yelp 等公司的实践证明,Marathon 也可以作为基础来构建自定义的调度层 —— 通常是自有的容器配置策略。

DCOS 也能让部署混合云(hybrid cloud architecture)变地容易 —— 这意味着你的私有 PaaS 可以运行在公有云之上。运行应用的可移植性是 DCOS 最基本要保障的东西,这样私有部署的应用可以无缝迁移到公有环境。同样的资源抽象,同样的用户体验,同样的代码。

今天的现实要求业务能与时俱进,意味着对于IT基础的和开发者的需求也时时变化。很多公司一直都把私有云作为救主,今天它终于登上舞台为自己代言。尽管其可能不是我们六年前想象的情形,但无所谓啦。

因为这一次,it works。

原文链接:https://mesosphere.com/blog/2015/07/10/why-your-private-cloud-could-look-a-lot-like-paas/

翻译:

谢乐冰,数人科技COO,毕业于柏林工业大学,多年电信运营商行业(HP)和云计算创业公司经验。