Yelp是如何利用Mesos和Docker搭建混合云的?

本文讲的是Yelp是如何利用Mesos和Docker搭建混合云的,【编者的话】为了让开发人员能够在数据中心和AWS上统一管理部署服务,且不增加工作量,Yelp围绕Docker容器寻找解决办法,Eaton决定选用Apache Mesos和Mesosphere,基于Mesosphere构建了PaaSTA,开发了新的测试平台Seagull。Mesosphere和Marathon的组合让开发人员从不同平台的处理中解脱,将精力放在了代码上。过程的艰辛与最终选择的好处都在文中做了说明。

2013年底,Yelp 运营总监Sam Eaton 意识到公司存在一个基础架构问题。运维人员和开发人员在自己的数据中心和AWS云上做站扩展已经变得复杂并且需要大量资源。

“问题是我们如何能够让开发人员在数据中心和AWS上统一管理部署服务,并且不带来过多复杂的工作。”Eaton 解释到。

太多的选择

讽刺的是,Yelp做了很多改进和创新,但问题依然没有解决。为了在裸机上部署服务,Yelp开发了自己的系统,用了开源Asgard系统(最初在Netflix上开发的)部署AWS。而要想持续部署,必须每天更新好几次网络服务才行。

Yelp尝试了太多的方案,而且考虑了每种方案的优缺点。建一个新的虚拟机镜像,即所谓的“黄金镜像”,对于AWS而言需要花1个小时,尽管建立的镜像启动会非常快。在裸机上启动服务可以获得更多权限,但是做扩展却很麻烦。Yelp的开发者试着在本地部署部分服务,在云端的一些服务需要很长一段时间处理AWS实例和Yelp硬件之间的区别。

“他们不得不用一种方式去配置裸机上的服务,并使用另一种完全不同的机制去配置AWS。这对于开发者来说太糟了”,Eaton说。

除了部署服务的复杂性,Yelp还有个测试方面的问题。Eaton说开发者一天要发布多个版本的新代码,但是总被测试的速度拖后腿,因为,跑完所有要求的测试要花上90分钟。均衡测试的运行是有问题的,Eaton的团队发现,至少在不浪费资源的情况下,去统计所有的依赖关系然后再找出一个最佳方法去规划所有的测试并不容易。

他说:“这是一个‘装箱’问题,用更多的VMs和更多硬件来跑也不能很好地解决这个问题”。

Docker来了

Eaton和他的团队考虑大量的用于解决云和本地日益增长的池的这个难题的方案。他们考虑过部署OpenStack。他们也考虑过用Eucalptus(这是一家创业公司,起初是为了满足惠普的需求,专注于AWS的兼容)的软件,旨在建立一个跨应急服务器与云的混合环境。

但是,Yelp的技术团队最终决定未来将围绕Docker容器,而不是虚拟机。Docker可以解决Yelp的一些部署问题,因为它让开发者可以管理他们自己的容器,迅速处理打包和依赖问题,而且不需要去等生成“黄金镜像”。

运行百万个容器那就意味着Mesosphere和Mesos

Eaton和他的团队研究并决定用Apache Mesos的Mesosphere革新作为最佳的运行容器的方案来满足Yelp的规模。Eaton对Mesos如何将Yelp的机器集群——虚拟和物理的——变成聚合资源池,而且没有关掉周边服务器的组成印象非常深刻。开发者可以随意启动容器,并且不考虑任何服务器的配置。

Eaton不仅仅坚持基础版的Apache Mesos,还选择测试Mesosphere的打包版本*,包含了诸如Marathon的工具。Eaton喜欢Mesosphere在Marathon的PAAS框架中提供原生的hooks, Yelp使用这些hooks计划和安排计算任务。此外,Mesosphere对数据中心操作系统(DCOS)的进化概念与Yelp的目标一致,Yelp的目标是建立一个单一开发环境、工具链和跨本地、云端服务的开发运维过程组。

(Mesophere 依旧提供开源下载,但下载还提供它的数据中心操作系统(DCOS)作为商业软件产品。DCOS预先打包许多重要组件,包括附加功能,极大地简化了部署和管理分布式服务的经验。)

Yelp可以在三个月内构建一个功能化Mesosphere集群,并使其达到预准备工作。

服务 PaaSTA

在Mesosphere之上,Eaton的团队构建了一个基于Docker的微服务架构,被称为PaaSTA,允许容器级作业跑在任意的计算平台上。

Eaton解释说:

我们非常喜欢Docker在整个堆栈能给开发者一个相同的环境。Marathon和在PaaSTA上的工具给他们提供了一个更好的方法,可以安排适当数量的容器来运行他们的服务,并且开发者可以隐藏底层基础设施。他们不需要担心他们的服务是否运行在数据中心、AWS或其他云提供商上。如果他们根据PaaSTA平台合同写服务,用适当的方式配置他们的Docker容器,此时PaaSTA通过提供资源发现和启动容器,负责其他工作的服务部署。

整个Yelp工程团队感受到PaaSTA和Mesos的好处。服务基础设施技术主管约翰•比林斯解释:

我们曾经花大量的时间手工分配各个机器上的服务。当推出新服务时会产生一个瓶颈。如果有一台机器故障,我们不得不单独联系所有受影响服务的所有者,并要求他们将他们的服务移动到新的硬件。我们还得在通讯量增加的同时必须保持机器之间的服务。我们增长了数以万计的生产服务,这成为一个不可能的情况。

“PaaSTA允许在内部和AWS硬件上进行自动配置和迁移服务,这就让我们从这些耗时的任务中解脱出来。开发人员和操作着完全爱上了这项技术。”

视频

与Seagull同行

除了提供的核心PaaSTA--平台即服务系统,Yelp也使用Mesosphere扩充了其测试基础设施,开发一个新的测试平台叫做Seagull。

通过使用Mesos可和一个自定义的调度器,Yelp能够建立一个更高效的并行系统和加速单元测试。公司现在每天运行着大约1700万独立测试,一些直接在机器上测试,一些在容器里测试,这些全部由Mesos管理。伊顿说,Yelp每天已经启动100万个Docker容器,随着公司将更多的测试移到容器里,这个数字也随之增加。

Mesosphere也给了Yelp一个意想不到的好处:资源利用率的提高意味着伊顿的团队可以通过更灵活地部署AWS的spot市场容量来省钱。

“随着测试数量的增加,我们出价购买用于测试的AWS实例将超过我们预定的量,”他解释说,“如果我们固定购买实例的量, 那些实例可能会在测试中途消失。Mesos以重新安排测试到新的实例上并且不停止测试的方式,允许这类动态购买存留下来。“

伊顿表示,Mesosphere和Marathon的组合给了我们的开发人员一个更具弹性的计算能力,让他们从根本上加快部署,他们可以花更少的时间处理不同的平台,把更多的精力放在代码。Mesosphere对于开发人员和Yelp来说非常好。

原文链接:CONTAINERS, CLOUDS AND CODE: HOW YELP BUILT A HYBRID CLOUD USING MESOS AND DOCKER(翻译:李渊文 校对:魏小红)

原文发布时间为: 2015-06-24 

本文作者:zaburo

本文来自合作伙伴DockerOne,了解相关信息可以关注DockerOne。

原文标题:Yelp是如何利用Mesos和Docker搭建混合云的?

时间: 2024-08-22 19:21:59

Yelp是如何利用Mesos和Docker搭建混合云的?的相关文章

容器,云和代码:Yelp如何使用Mesos和Docker构建混合云?

本文讲的是容器,云和代码:Yelp如何使用Mesos和Docker构建混合云,[编者的话]为了解决Yelp的基础设施问题,Eaton带领团队对容器进行调研并寻求解决方法,最终决定使用Apache Mesos和Mesosphere.基于Mesosphere构建了PaasTA服务,为测试环境开发了Seagull平台.本文对Yelp公司采取容器方案前的困境以及采取容器方案后的好处分别进行了说明. 2013年底,Yelp的运营总监Sam Eaton意识到公司基础设施存在问题.对开发和运维人员来说,在Ye

去哪儿网基于Mesos和Docker构建私有云服务的实践

本文讲的是去哪儿网基于Mesos和Docker构建私有云服务的实践[编者的话]本文深入介绍了去哪儿网利用Mesos和Docker构建私有云服务的全过程,分享了从无状态应用向有状态应用逐步过度的经验与心得. 平台概览 2014年下半年左右,去哪儿完成了有关构建私有云服务的技术调研,并最终拍定了Docker/Mesos这一方案.下图1展示了去哪儿数据平台的整体架构: 图1:去哪儿数据平台的整体架构 该平台目前已实现了如下多项功能: 每天处理约340亿/25TB的数据: 90%的数据在100ms内完成

去哪儿网基于Mesos和Docker构建私有云服务实践

本文深入介绍了去哪儿网利用Mesos和Docker构建私有云服务的全过程,分享了从无状态应用向有状态应用逐步过度的经验与心得. 平台概览 2014年下半年左右,去哪儿完成了有关构建私有云服务的技术调研,并最终拍定了Docker/Mesos这一方案.下图1展示了去哪儿数据平台的整体架构: 图1:去哪儿数据平台的整体架构 该平台目前已实现了如下多项功能: 每天处理约340亿/25TB的数据; 90%的数据在100ms内完成处理; 最长3h/24h的数据回放; 私有的Elasticsearch Clo

微博 Docker 化混合云平台大剖析

8亿用户.单日活跃人数超过1亿人.每日超过600亿次的API调度.超过1兆次远端程序呼叫,甚至连Log记录档每天都爆增100TB,这是新浪微博平台维运架构师王关胜所面对的挑战,他得设计出一个有能力胜任这些考验的微博系统的新一代架构,而且高层给他的要求是,系统反应时间不得超过50ms. 王关胜表示,微博如此大规模的业务,除了面临系统快速更新的任务,各种不同系统元件间的依赖关系也相当复杂.而当国际事件.名人丑闻等高关注度的议题发生时,经常导致微博的业务量遽增,使得系统流量达到顶峰. 尤其遇到大型节日

以Mesos和Docker为核心的云操作系统

  11月18日,北京数人云COO谢乐冰老师在DBA+社群中间件用户组进行了一次主题为"以Mesos和Docker为核心的云操作系统"的线上分享.小编特别整理出其中精华内容,供大家学习交流.  嘉宾简介   北京数人云COO 毕业于柏林工业大学计算机系,回国就职于中国惠普,多年服务于电信行业 目前专注于Mesos和容器技术在企业生产环境特定场景的应用,实现业务规模和运维复杂度的逐步解耦,让IT基础架构推进企业在互联网时代持续发展 内容摘要   以Mesos和Dcoker为核心的云操作系

优云实践:持续交付的Mesos与Docker导入篇

变革这个词在当今的数字化时代司空见惯,IT技术每过一段时间就会有一起革新,从WEB2.0.虚拟化.云计算.大数据.微架构.DevOps再到今天的容器Docker与Mesos. Docker的出现方便了应用的测试.部署.与升级,其将各种应用程序和它们所依赖的运行环境打包成标准的Container/Image,进而发布到不同的平台上运行.Docker的轻量级.快速部署.迁移方便的特性促进了DevOps的落地,借用容器,开发人员可以很方便的融入到产品的交付流程当中. Mesos是软件定义数据中心的最佳

基于Docker搭建多节点Mesos/Marathon

本文讲的是基于Docker搭建多节点Mesos/Marathon[编者的话]在之前的一篇博客中,我介绍了基于Docker搭建单机版Mesos/Marathon,但是仅仅使用了单个节点.而在这篇博客中,我将介绍基于Docker搭建多节点Mesos/Marathon,开发者可以使用3个节点快速地搭建一个真正的分布式容器集群系统.服务发现和负载均衡是容器集群必不可少的功能,我选择了Marathon LB来实现. GitHub地址: kiwenlau/mesos-marathon-platform 一.

利用Docker和阿里云容器服务轻松搭建TensorFlow Serving集群

本系列将利用Docker和阿里云容器服务,帮助您上手TensorFlow的机器学习方案 第一篇:打造TensorFlow的实验环境 第二篇:轻松搭建TensorFlow Serving集群 - 本文 第三篇 打通TensorFlow持续训练链路 第四篇 利用Neural Style的TensorFlow实现,像梵高一样作画 第五篇 轻松搭建分布式TensorFlow训练集群(上) 本文是系列中的第二篇文章,将带您快速了解Tensorflow Serving的原理和使用,并利用阿里云容器服务轻松在

《循序渐进学Docker》——2.2 利用Docker搭建个人博客

2.2 利用Docker搭建个人博客 WordPress是一款功能强大的个人博客系统.使用者众多,社区非常活跃,有丰富的插件模板资源.使用WordPress可以快速搭建独立的博客网站. 2.2.1 传统的安装方法 按照传统的安装方法,参考官方的安装文档(http://codex.wordpress.org/zh-cn:安装_WordPress) ,安装步骤如图2-5所示. WordPress运行环境需要如下软件的支持: PHP 5.6或更新版本. MySQL5.6或更新版本. Apache和mo