OPENSTACK如何套牢雅虎400万核服务器

作者:Timothy Prickett Morgan 译:李昊阳

做为全球首批超大规模数据中心用户之一,隶属于Oath集团的一部分,该集团也包括了AOL,并且由电信巨头Verizon所拥有,雅虎知道在极端规模下运行应用程序这件事意味着什么,甚至更多。在过往的时期,这些都是依靠手工完成的,但时至今日,Oath的大部分服务器基础设施都安置在了OpenStack集群中,这些集群彻底改变了大容量服务器的部署和使用方式。

雅虎以其在线门户网站,搜索引擎和电子邮件服务而闻名 - 当然还有那个我们永远不会用在它的名字拼写中的感叹号后缀,以及那个疯狂的约德尔调- 然而它并没有立竿见影得实现其服务器基础设施的自动化。像许多其他公司一样,雅虎也不得不经历大量的即面向虚拟化又面向裸机的试验和磨难,才达到能够像轻松部署虚拟机一样部署裸机的能力。

这让雅虎耗费了一段时间来获得基于虚拟化的可行性方案,即使在迄今仍依赖裸机服务器来承担大量工作负载的公司,这也是一个优先事项。

雅虎的开端与谷歌2005年所做的大致相同,最初做了一些关于chroot jails的实验 - 一种早期的Linux容器虚拟化。然后,雅虎使用VMware的ESXi虚拟机管理程序和Citrix Systems的Xen虚拟机管理程序进行了一些进一步的实验和部署,但仍然不满意。再这之后,雅虎搭建了Odin,一个集群控制器,它构建在Red Hat的KVM管理程序之下,并且被捆绑在一个自行研发的硬件采购系统中,可以完成所需的大部分工作。但雅虎希望从事媒体业务,而不是软件开发业务,就像它已经取代了自行研发的MObStor / DORA对象存储一样,该对象存储使用开源的Ceph对象存储来支持它的许多服务。雅虎看到了OpenStack背后的势头,并在六年前做了一项承诺,在OpenStack平台之上构建云。

雅虎长久以来试图解决的问题不仅仅是一项技术问题,而是文化和商业实践问题。雅虎的所有不同部门 - 在公司内部称为“资产” - 都有自己独特的基础设施,并且它们都是独特的运营着。但每个人都知道,所有东西都需要像云一样运行,一种集中的共享资源的方式。为了实现这一目标,雅虎不仅深度挖掘进入OpenStack云控制器的代码,同时还彻底剔除了原有网络,使其能够支持一种新型的共享数据中心规模的计算环境,这个计算环境被雅虎的所有的“资产”部门所共享。

为了了解雅虎云计算演进的内幕,The Next Platform与Oath的架构总监James Penick进行了交谈,James参与绘制了雅虎整合裸机和虚拟化云的道路。

Timothy Prickett Morgan:在您决定采用OpenStack之前,管理雅虎的基础设施是一种什么感觉?您从这一转型中获得了什么?

James Penick:这实际上是一个很好的问题,它给你的是整个组织更广泛的一致性。

我们曾经有过一些零散的计算资源的“小水坑”,这是基于老式的网络设计实现的。因此,作为一家公司,我们做出了一系列的决定。我们选择对我们的网络基础设施进行现代化改造,我们的网络架构师提出了一种新型多层的由Leaf和Spine层构成的Clos拓扑架构,这是一个层3网络环境,我们决定转向使用它。这意味着作为一家公司,我们必须摆脱一些旧的假设。我们的应用程序依赖于多播这样的层2网络构造,但在这个新的网络环境中我们不能再有它了。

有了这些层3网络环境,我们就可以建立一个能够为我们提供大型“湖泊”的网络骨干网,然后通过这样做,通过推动我们的应用程序使用层3网络环境,我们现在能够采取下一步,在所有这些网络骨干网中预先分配计算硬件。不再像从前的那些“小水坑”,我们现在有了一个巨大的“湖泊”,我们可以在那里存放数千台机器。然后,如果一个公司内部的“资产”部门过来说它需要十台或一百台机器,我们只需要将需求发送到统一的门户平台即可获得配额。

最重要的是,在过去,可能需要数月才能获得硬件资源分配,现在我们将其改变为数分钟内,这是一个巨大的文化变革。

我正在使这种文化变革发扬光大。我们必须与我们的“资产”部门合作,帮助他们了解我们在做什么,为什么要这样做,以及从长远来看它将如何使他们受益。我们必须与我们的供应链组织合作并改变他们开展业务的方式,因为这不再是一个完全需求驱动的模型,我们在这个旧有模型中指定硬件并交付它,而是我们创建了十种类型的硬件配置列表,这是我们的标准并且几乎涵盖了所有用例。我们必须根据我们的预测提前购买这些产品。因此,供应链团队了解公司的这些“资产”部门需要什么以及他们的应用程序和用户如何增长,因此当“资产”部门实际需要时,他们会按需提供。

我们发现了一件清晰的事。如果你与公司谈论基础设施,你将听到有关囤积的表诉。各个部门获得硬件,并且硬件也非常容易获得,所以他们就一直坚持这个策略。然后他们就开始讨价还价了,因为他们害怕一旦放弃了这些硬件,他们就会永远失去它。可是,当人们发现他们可以通过OpenStack获得服务器配额时,我们很快发现他们希望能够有返还这些配额的功能实现,这让我感到震惊。我们没有优先考虑将这项功能在门户平台上的实现,因为我们认为这需要一段时间才能让人们意识到他们需要这个功能。但很快人们就想摆脱OpenStack获得的旧硬件。实际上,我们可以看到精简供应链流程,管理服务器资源以及培育灵活性的好处。

这并不是说管理裸机就没有挑战。

TPM:虚拟化了多少,裸机占了多少?

James Penick:我们的大部分基础设施都是裸机,我们正在努力改变这种状况,但进展缓慢。我们的裸机节点数量已经在下降 - 现在是220,000但过去接近于300,000。我意识到,这个原因是由于很多应用程序都被虚拟化了。大多数计算资源仍然是裸机 - 大概60%到70%的服务器资源是裸机,剩下的就是使用KVM管理程序进行的虚拟化资源。总共大约是400万核的服务器。

TPM:所有的这些基础设施是如何扩展的?您的管理域大小是多少,集群爆炸区域是什么?将一个OpenStack集群堆在一起相对容易,但是很难管理许多个OpenStack集群。

James Penick:我们有八个大型数据中心,每个数据中心都有自己的OpenStack裸机集群,我们正在努力实现通过它们管理远程数据中心。因此,例如,我们在新加坡有一个数据中心,我们在越南有一个远程边缘站点,新加坡的站点将管理外部计算资源。

对于虚拟机,我将分开来讲,描述一下我们的四种环境。首先,我们有预备好了的虚拟机和裸机,您可以从资源池那里选择配置并启动实例。

我们还有另外一个叫做OpenHouse的环境,我认为这是使我们的环境可以被OpenStack管理的一个非常重要的部分。我们创建了这些OpenHouse集群,其中有四个,一个在美国西海岸,一个在美国东海岸,一个在亚洲,一个在欧洲。澳大利亚也有一个集群,但是有点不同。基于OpenHouse环境,租户就变成了基于用户,而不是“资产”部门,和公司中的每个人,无论工作角色如何,都被授权在这些OpenHouse集群上最多使用五个计算资源。我们这样做的原因之一是我们想要推动和培养敏捷性和创新能力。我们想要一个工程师可以快速启动计算资源做为尝试他们的想法的地方,如果它有效,那么他们就可以将其移动到预备好的虚拟机中。

这是主要目的。但它也是我们将OpenStack API放在用户面前的方式,也就是他们控制计算资源的方式。它帮助人们感到适应一件事,就是没有实际的团队在为他们创建基础设施。另一件事是,我们永远不会为任何人增加OpenHouse的配额。这有助于帮助人们了解计算资源是一次性的,并且你不需要手动调整以用于永久保存 - 而且他们也不能将OpenHouse用于产品化负载。我们非常坚定地遵守这些规则。

TPM:针对容器,你做了什么?Oath不像一些大型企业,在那些企业里可能没有成千上万的应用程序,尽管它确实在数十到数百个应用程序上有大规模的扩展需求。我认为裸机上的容器是未来的,一旦容器的安全问题得到解决,虚拟机最终将逐步淘汰。

James Penick:作为一个组织,容器是临时完成的。一个组织有一个他们使用Docker容器构建的容器管理系统,除此之外,公司中有另一个团队已经生成了Kubernetes栈和一个如何管理这些容器的参考架构,其他团队仍然负责自己创建Kubernetes集群和控制平面。

你提出了这个有趣的观点,人们说虚拟机在容器方面存在不必要的复杂,容器要简单得多。有一种直觉是认为虚拟机的开销比它们实现的功能要多。事实上,一个非常常见的设计模式是为了进程隔离而将容器放在虚拟机中,以增加安全层面的考虑。这将是另一种解决容器安全问题的方法出现前的设计模式。

TPM:OpenStack环境将如何随时间发生变化?您的环境在OpenStack上的百分比是多少?

James Penick:我们现在没有用OpenStack管理所有的东西,原因是我们正在增强管理远程站点的能力,对于其中一些站点,我们一直在推迟到这些功能实现为止。我们还在等待添加与Affinity和Non-Affinity相关的功能 - 例如启动计算资源,并确保它们都在同一个机架中或分散在不同的机架中,视情况而定。我们也在等待能够启动一个支持自定义硬盘布局的裸机实例。有了这些即将部署的功能,我们期待在2019年第二季度末之前实现百分之百的OpenStack环境。

TPM:您如何保障OpenStack环境?

James Penick:我们在这里做了一些非常有趣的工作,创建一个名为Athens的工具,这个工具是我们已经开源了的认证和授权系统。我们已经能够使用它来推动一种独特的服务标识概念,我们正在将全公司转向使用它,以便我们所有的计算资源都是安全的。

现在,在Oath的OpenStack上启动计算资源,并让它们以X.509证书的形式提供唯一标识,是可行的。该证书包含许多内容,包括一个服务标识字符串。这意味着如果使用此安全系统启动所有节点,您还可以使用Athens工具来定义策略并解决许多基础架构特有的安全问题。

我们已经能够解决如何启动一个实例,并赋予它一个机密信息,通过这样,实例能够标识出它是它所说的样子。每个服务器都有一个由安全的信任根签名的标识,您不必使用网络控件来定义哪些应用程序可以相互通信。现在仍然是Athens工具的早期阶段,我们还在让每个人都参与进来。它实际上已经融入OpenHouse开发者环境中。

TPM:除了从采用OpenStack之前的几个月或几天到采用OpenStack之后变成了几小时或几分钟部署服务器的时间之外,你如何衡量OpenStack部署的成功?

James Penick:通过OpenHouse,我们几乎消除了开发者使用物理台式机的局面。这些已经消失了,这对公司来说是一笔可观的开销节省。我认为,看到我们的物理机计算资源出现如此大幅下降也是一项重大改进。

TPM:您的OpenStack集群在实现虚拟化时会继续收缩,还是会稳定下来?

James Penick:我认为它最终会达到稳定水平。我认为我们的虚拟机环境会随着时间的推移而增长,但我预计裸机环境再达到一定水平后不会再收缩,因为有些应用使用裸机会更有意义。可以改变吗?有可能。

TPM:您可以在服务器内以及群集上的节点之间进行哪种利用?谷歌在集群上的利用率达到了50%,有时他们可以将其提高到65%,而在分析工作量上则高达80%。在虚拟化或容器化环境中提高利用率更容易,因为您可以在服务器上安排多个工作负载,然后根据需要在群集中以不同的比例对其进行群集。

James Penick:我们的整体平均峰值利用率在过去四年中肯定有所增加,对于虚拟化工作负载来说,它要高得多,而对于我们的分析工作负载,它与你上面所引用的数字非常相似,从50%到80%。未注册大数据分析工作负载或未运行密集容器的裸金属利用率会相对低一些。

TPM:Oath从哪里获得服务器,以及您维护多少种不同的配置?当您按比例运营时,您希望减少供应商数量和不同配置的数量,以获得规模效益。很多超大规模的设备商在任何给定的时间内都可能有三到四个服务器设计用于工作,可能是六个,八个或十个不同的服务器设计在一组里。

James Penick:我们与许多不同的供应商合作。至于不同的配置,情况是类似的。它实际上归结为分析总体成本以及查看所有的用例,把它们整理起来,还有我们如何将它们缩小到特定范围。根据不同的年份,我们有六到十个不同的配置。

TPM:这一切有多难?

James Penick:这并不容易。管理裸机是一项挑战,因为你所正在尝试做的 - 这是我们一直在改进的事情 - 是一件非常复杂的事:管理不同供应商的硬件,每项技术都有自己的缺点,并提供一个面向用户保持一致性的环境,当他们要求计算资源时,它就会出现。改变整个公司的业务方式并不容易。这是非常困难的,但它也是非常有回报的。有时,我们必须回顾并记住我们所吸收的所有变化。

后记:

最近一段时间OpenStack行业的确有了不少传闻,但是更多时候我们还是需要听听真实的客户声音。不仅如此,如果能够亲身参与其中,定能够分辨出传闻的真伪。

如今,OpenStack柏林秋季峰会报名活动正在火热开启中,登录官网就可以享受999美元的早鸟注册价。11月13-15日,德国柏林,届时大嘴哥也将在现场全程进行直播,为大家带来最新最快的OpenStack资讯。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180928A1AA8H00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券