美国电信巨头Verizon基于Mesos和容器的实践经验

jopen 9年前

本文主要介绍了电信巨头Verizon是如何通过使用Mesos和容器技术,将其原来的数据中心变成自动化、高利用率、高运营效率的现代化数据中心。据称 其数据中心的资源利用率可以提高到50%~60%,并且现场演示了在72秒内部署50000个Docker容器,使得应用集群部署的效率至少提高了一个数 量级。

 美国电信巨头Verizon基于Mesos和容器的实践经验

Verizon选择Mesos技术的来龙去脉

世界上的互联网巨头们(Google、非死book)已经在过去的十年中将其基础构架搭建为统一的整体,并不断提高其数据中心的运行效率。正是有了这样的刺激,商业上的创新才会被激发出来。

即使是像Verizon这样,虽然它的通信和服务器托管部门对于管理海量的服务器、存储和网络并不陌生(更不用提保障其运行),也逐渐认识到建造一个更自动化的数据中心比一个更大的要好。

大概一年多以前,我们看到了源自于搜索引擎巨头Google的大型基础架构的集群管理工具和容器技术。Verizon Labs作为价值1270亿的通信巨头Verizon的研发中心,并不仅仅是对新的集群管理工具感兴趣。Larry Rau,Verizon Labs的技术总监,被公司选出来负责建立一个与时俱进的基础架构。通过大量的调研和测试,Verizon Labs最终选择了Mesos集群管理和应用框架,并开始在上面推出和运行多种类型的服务。

电信公司在技术领域是一个保守和激进的综合体,他们一直都是这样。因为在互联网巨头出现之前,电话通信交换网络及其计费系统已经承担了这个星球上 最大的任务量。(这就是为什么C语言编译器和UNIX操作系统都诞生在AT&T贝尔实验室)历史上,电信公司总是对网络技术过度雕琢,以确保整个 网络的高可用。这其实占据了大量的资金,并产生了许多闲置——低利用率的计算和存储资源,最终带来了整个运营的低效率。为了改变这种现状,Verizon 选择了Docker容器技术以及用来管理Docker容器及服务器集群的Mesos技术。

我们最终建立起了一种以Linux为核心,加上由遍布数据中心的普通服务器构成的技术栈。所有这些服务器都大同小异,这样就可以节约整体的硬件和维护成本。
Rau 在Verizon Labs的新产品小组工作。这个小组的使命就是找出更好的基础设施架构来支撑Verizon网络上的数以万计的工作任务。在智能手机和平板电脑的时代,电 信公司不再仅仅是提供语音和数据服务,他们还提供面向用户的应用托管业务,以及一些Verizon内部服务——用来管理用户和他们托管的应用。正如你所预 料的,这些应用的重要性一点都不比传统的通信业务差。Rau告诉我们,Verizon需要像其他那些互联网巨头一样动态的去缩放他们的一些应用,所以基础 架构必须要做出改变了。

Rau说到“我发现我们现在的做法还是很传统的电信运营商做法:你创建一个应用,估算其规模,申请一堆的服务器,在数据中心找一个地方,花费大量 的时间把这个应用安装部署好。并且每次更新这个应用时,你都会遇到一堆的问题和麻烦。我们认为我们现在必须改变这些做法了,我们需要更快速的行动,自动调 整容量,降低我们的运营成本,并增加我们整体的系统投资回报率,而不是运行着一个个的计算资源孤岛”。

这些经验教训是每一个数据中心管理员最终都会领悟到的,但这并不意味着我们找一个更好的集群管理工具就够了。就算是Mesos,或者 Mesosphere所说的数据中心操作系统这样,在一个集群里以一种安全的方式运行多个工作任务,也还是不够的。一旦你开始考虑如何管理应用,你就需要 考虑如何提供隔离能力,如何进行软件打包,如何为这些应用分配资源,这个时候你就需要容器技术了。

“我们沿着这个思路,最终发现我们必须把整个数据中心作为一个整体的硬件资源池来看”Rau说“我们希望部署应用后,系统会自动找到合适的地方来 运行这些应用,这个概念就是将整个数据中心当做一台电脑来看。这使得我们继续思考,我们到底想如何构建我们的应用呢?对就是使用容器技术。我们希望通过容 器来构建我们的应用,并将其直接运行在我们的裸机硬件资源上。这些因为是Verizon内部数据中心上运行的自有应用,我们并不需要像公有云一样使用虚拟 化技术来提供一些多租户环境。对这些做智能管理的需求将我们引到了Apache Mesos这个开源技术。我们最终建立起了一种以Linux为核心,由普通服务器组成的数据中心。这样就可以节约整体的硬件和维护成本。”

Verizon 最终打造的系统就好像Google创建的Borg集群系统一样。Google在十年前就开始在他们自己的Linux操作系统上部署容器了,并通过Borg来管理这些容器。

“我们想做的就是一个类似Google的模式。像Google一样建设基础设施架构,创建自己的系统,并让开发者将自己的应用部署在这些系统 上。”Rau 说到 “最终我们就是建立了一个资源池,并将这个资源池作为一个整体来看待。同时也可以让我们更快的去部署应用。我们不用再去关心硬件或数据中心的机柜了。我们 开发一个应用,运行它就可以了。我们可以做更多的创新,尝试更多的东西,并让部署更快一些。能做到这些,完全是因为你再不需要去做一个18个月的项目,花 费大量的资金,仅仅是推出这个应用或服务,并猜测它是如何运作的。现在我们仅仅需要尝试一个服务,看它是如何发展的,并根据其发展情况,再通过平台扩展这 个应用。一旦我们我们部署并运行一个应用,我们也可以很快的去更新它。”

Verizon 能节省多少时间和金钱?

就像你猜到的一样,Verizon 不会透露使用Mesos和Docker技术将会获得多大的预期收益。不过Rau表示,根据一些传闻和使用类似平台的人所说的情况来看,效果会是非常显著的。

硬件方面Verizon会节省大量的成本。现在应用部署的方式是这样的,业务线想要推出一些新的服务,需要先做一个三年期的计划,并尽其所能的猜 测他们的业务峰值是在什么时间点,因什么而起的。因为是电信级业务,你必须为这个应用建立冗余的基础架构。更进一步,还需要建立基于地理位置的冗余架构, 从而让这个应用能够达到5个9的高可用性。这就意味着Verizon需要在一个服务刚刚推出时就购买大量的硬件,以便支撑未来这个业务有可能达到的规模。 我们猜想,Google在90年代到00年代爆发式增长期间,也同样遇到了这些问题,并在交了这些学费后,最终创造出了LXC容器和Borg系统。

"当Verizon推出一个新业务时,因为我们有集群闲置资源,我们就不需要立即给这个新业务一个三年预期规模的相关资源。这可以让我们根据所有 应用的运营情况来增加我们的硬件投入,我们可以按季度扩展我们的集群规模。这种方法还可以使我们的计划更具体和有效。这是因为我们可以参考集群的历史数 据,看我们具体有哪些应用上云,或者从云上下线了,从而将硬件采购做的更好,更加合理。"

最终我们就是建立了一个资源池,并将它作为一个整体来看待,同时也可以让我们更快的去部署应用。我们不用再去关心硬件或 数据中心的机柜了。我们开发一个应用,然后运行它就可以了。我们可以做更多的创新,尝试更多的东西,并让部署更快一些。而不再需要去做一个18个月的项 目,花费大量的资金,仅仅是推出这个应用或服务,并猜测它是如何运作的。
这正是Google们所做的事情。为成百上千个单独运 行在独立的主机或小集群上的协调分配资源是非常困难的,与其相比,将大量的任务在一个集群里面协调资源就要容易的多了。此外,提高一个大规模集群的资源利 用率要比提高好几个小规模集群的资源利用率要容易的多。这就是Google他们学到的教训,这也就是为什么他们尽可能的使用同样的硬件和软件的构建集群的 原因。

虽然人们不讨论其具体细节,我们知道企业级数据中心的服务器资源利用率一般是在10%~20%之间。通过使用虚拟化技术和容器技术,公司可以将不同的多个工作任务运行在同一个机器上,这样就有可能将服务器的资源利用率提高到50%~60%。Rau说这是他们跑出来的数字。

Mesosphere声称DCOS可以将整个集群的资源利用率提高2~3倍,一些情况下甚至可以提高5倍。当你运行着数万台,甚至数十万台服务器 时,这些就是惊人的数字了。这意味着公司可以部署更多的基础设施来提高其应用的底层资源,并且规范服务器的类型和规格。另外,Mesos最终可以具备超购 的能力,可以将资源利用率提升的更高。感谢Quasar项目。这意味着一些客户甚至可以在不给集群带来太多问题的情况下,将资源利用率提升至 75%~80%。

Lau没有透露Verizon的硬件计划,但他表示他们的目标是效仿互联网巨头并得到由"廉价的、单一的硬件设备组成的数据中心" 。这并不意味着我们必须让服务器、存储和交换机都遵循由非死book在五年前建立的 Open Compute Project。好比是服务器厂商专门为Google们所设计的产品,Dell期望通过上周宣布的“可扩展的数据中心解决方案部门”来将这些定制硬件卖给 类似Verizon这样的客户。虽然Mesos已经部署在了一些已有的机器上,但Verizon的想法是在新的硬件上为新任务建立Mesos集群。过几年 老的系统从原有硬件集群上退役后,这些硬件集群将被升级,最终Mesos将接管一切。

采用Mesos技术不仅仅是节约了硬件资源,也同时节约了大量的时间。最近在西雅图召开的MesosCon上,Verizon像大家展示了他们是 如何在72秒内创建50000个Docker容器。(数人科技在infoQ主办的容器大会上,演示了如何在数人云上在数十秒内启动运行10000个 Docker容器)Verizon相信这样的速度,自动化管理容器和底层集群,可以让应用部署的速度提高一个数量级。

Verizon计划今年就在其Mesos集群上运行一些服务。第一批将被迁移到Mesos集群上的服务包括无线网络支撑系统和一些移动应用的后 台,以及FiOS网络支撑系统(光纤到户)。Mesos也将用来支持IoT服务,包括多媒体服务、视频流媒体服务等等。Verizon还计划将其 Hadoop和Spark分析任务从他们的专属集群上迁移到Mesos集群。

Verizon的具体容器技术选型

系统采用的容器技术,Verizon预计会选择Docker,而不是 Kubernetes(Google开源)的Podding方案。Verizon计划采用Mesos自带的容器功能和Docker Daemons 来管理用容器进行打包部署的应用软件。Verizon也查看了CoreOS和rkt容器,以及它的Tectonic 容器管理系统(基于Kubernetes)。Verizon可能也会在某些场景下使用rkt容器,甚至是Linux的LXC容器。

"容器技术是非常成熟的,他已经存在了很长时间,Docker让容器技术更加易用了。我认为打包的形式让你可以将应用作为一个整体来看待" Rau 在谈Docker格式的容器技术 "Mesos有其自己的容器,他可以使用Linux容器,他们的namespaces,和contral group并与Docker守护进程通信,发布任务,这就是我们现在所做的方式。我并不是说我们会仅仅只使用Docker,但事实上Docker镜像格式 和标准,已经成为了关键性的组件"

另外,Kubernetes可以作为一个框架运行在Mesos之上,所以Verizon如果需要的话,也有可能使用Kubernetes。

原文链接:Verizon Satisfies Google Envy With Mesos (翻译:郭卿)

============================================
译者介绍
郭卿,数人科技市场负责人,毕业于北京理工大学计算机系,专注于Mesos技术在企业的应用和推广。

来自:http://dockone.io/article/659