【编者的话】本文主要介绍了电信巨头Verizon是如何通过使用Mesos和容器技术,将其原来的数据中心变成自动化、高利用率,高运营效率的现代化数据中心。据称其数据中心的资源利用率可以提高到50%~60%,并且现场演示了在72秒内部署50000个docker容器,使得应用集群部署的效率至少提高了一个数量级。
世界上的互联网巨头们(Google、Facebook)已经在过去的十年中将其基础构架搭建为统一的整体,并不断提高其数据中心的运行效率。正是有了这样的刺激,商业上的创新才会被激发出来。
即使是像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 不会透露使用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的硬件计划,但他表示他们的目标是效仿互联网巨头并得到由"廉价的、单一的硬件设备组成的数据中心" 。这并不意味着我们必须让服务器、存储和交换机都遵循由Facebook在五年前建立的 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预计会选择Docker,而不是Kubernetes(Google开源)的Podding方案。Verizon计划采用Mesos自带的容器功能和Docker Daemons 来管理用容器进行打包部署的应用软件。Verizon也查看了CoreOS和rkt容器,以及它的Tectonic 容器管理系统(基于Kubernetes)。Verizon可能也会在某些场景下使用rkt容器,甚至是Linux的LXC容器。
"容器技术是非常成熟的,他已经存在了很长时间,Docker让容器技术更加易用了。我认为打包的形式让你可以将应用作为一个整体来看待" Rau 在谈Docker格式的容器技术 "Mesos有其自己的容器,他可以使用Linux容器,他们的namespaces,和contral groups 并与Docker守护进程通信,发布任务,这就是我们现在所做的方式。我并不是说我们会仅仅只使用Docker,但事实上Docker镜像格式和标准,已经成为了关键性的组件"
另外,Kubernetes可以作为一个框架运行在Mesos之上,所以Verizon如果需要的话,也有可能使用Kubernetes。
Verizon Satisfies Google Envy With Mesos (翻译:郭卿)
============================================
译者:
郭卿,数人科技市场负责人,毕业于北京理工大学计算机系。