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

8亿用户、单日活跃人数超过1亿人、每日超过600亿次的API调度、超过1兆次远端程序呼叫,甚至连Log记录档每天都爆增100TB,这是新浪微博平台维运架构师王关胜所面对的挑战,他得设计出一个有能力胜任这些考验的微博系统的新一代架构,而且高层给他的要求是,系统反应时间不得超过50ms。

王关胜表示,微博如此大规模的业务,除了面临系统快速更新的任务,各种不同系统元件间的依赖关系也相当复杂。而当国际事件、名人丑闻等高关注度的议题发生时,经常导致微博的业务量遽增,使得系统流量达到顶峰。

尤其遇到大型节日或活动时,如元旦、春晚、圣诞节还有红包飞等大型活动,同样也会为微博带来巨大的流量挑战。王关胜表示,位于三节的日子,微博的系统流量,会在3个小时内冲上顶峰,而红包飞则是带来瞬间的峰值流量,在两个小时内就达到最高点。过去面对此样的峰值事件,微博需要调度大量硬体设备。而如此做法,除了成本高外,系统在进行水平扩充时,也必须耗费更多的时间。

过长的前置作业时间为微博带来营运痛点

而繁琐扩充流程所花费的时间,为微博带来了营运痛点。过去当峰值事件出现时,首先,维运团队必须申请实体机器,将其登入组态管理资料库(CMDB),在机房安装妥当后,交予第一线作业人员进行初始化,并开始进行部署作业,如环境部署、监控部署、服务部署及流量导入等流程。

王关胜表示,过去的水平扩充的方法,也可能因为各个服务间的系统环境差异,无法充分使用硬体资源,即使有多余的伺服器也无法灵活调度。然而,在设备充足的状况下,完成正常的设备申请程序也必须花上一天,甚至可能碰上没有足够设备的状况,使得系统进行水平扩充花上更多时间。

另外,微博也有许多使用率不高、閒置在各丛集跟服务池的实体基础设施,而微博过去在应付红包飞、三节爆增流量的作法,会预先在各个业务的伺服器丛集,準备多余硬体设备,用来因应峰值突发的事件。而预先準备多余设备,则包含采购周期过长、机房空间不足所带来的高营运成本外等缺点。

而设备申请时间周期长、使用率不高的閒置设备,则对新浪微博带来庞大的成本压力。而因为面临这些挑战、痛点,「我们要建构有弹性的混合云系统。」王关胜表示,微博的新做法是,导入公有云并结合过去的私有云,集结各业务丛集多余的运算设施,构建混合云的系统架构。

他表示,混合云架构除了妥善集成内部硬体资源,解决内部的弹型需求外,当系统面临流量剧增的峰值事件,亦可以将过多的流量引导至外部公有云,减轻内部系统的压力。

王关胜分析了采用混合云作法的好处,他表示,内部私有云具备安全性高、掌握度高的特性,也可以因应内部需求,对硬体配置进行优化,适合处理固定的工作负载。而公有云的设备则具有标準化、自动化的特性,可以快速因应临时需求,在爆增流量的状况下,让企业具备水平扩充工作负载的能力。企业也可以利用公有云按照使用流量的付费机制,减低固定的营运成本,而采用混合云架构,可以兼具私有云以及公有云的优点,「可以同时拥有安全性与弹性扩充能力」,使系统工作负载可以在丛集间进行迁移,让低负载的丛集配置较少的设备,反之,负载高的丛集则必须準备足够的设备。而将Docker导入混合云的架构,也使微博服务稳定度高上许多。

透过三大关键,实现Docker混合云

微博混合云系统不单只是一般的混合云,而是导入了Docker,透过Docker Container快速部署的特性,解决爆量事件对微博系统带来的压力。过去企业在面对爆量事件,一般采取的作法是,首先评估需要多少额外设备,并向外部公有云申请机器分摊流量。然而,除了可能低估应付爆量所需的设备外,即使事先準备了足够的VM,其部署时间成本也远高于Docker,无法即时帮助企业分摊过多外部请求。

而王关胜表示,微博Docker Container平台的混合云核心设计思想,主要是借镜银行的运作机制。他表示,民众可以把钱存在银行,而需要使用金钱的时候,只需要提领一部分,剩余的存款银行可以拿去进行投资。而微博则借镜银行的这一套运作模式,在内部设立一个硬体资源共享池外,还导入了外部公有云。

而要微博实现高弹性调度资源的混合云架构,其中实现的关键则是Docker。王关胜表示,刚开始他们思考该要使用裸机还是VM架构,作为Docker Container的基础设施。后来,考量如果要采用VM,内部机房架构要进行许多改造。所以,目前微博的内部私有云使用裸机部署,而外部公有云则采用阿里云弹性计算服务(ECS)的VM架构。

王关胜也揭露微博构成Docker Container平台基础架构的3大关键,包含Docker在裸机上的部署架构、自主开发的Docker Registry以及网页伺服器Nginx Upsync模块。

第一是Docker Container的裸机部署方案,透过IP位址以及Port定义一个唯一的Container服务,而每台伺服器上则可以开启多个Container,各个具有不同的功能。

例如,每一个Container服务所产生的行为日志,会经由一个名为Scribe的Container集中收集。而集中后的数据则可进行用户行为分析。

此外,如果要进行Container的运作监控,则是透过建立Cadvisor Container,将Container运行产生的资料,传送至Elasticsearch、Logstash及Kibana这3种开源监控软体,进行分析。或是,搭配开源测量工具Graphite,监控系统的运作状况。

第二则是Docker Registry,王关胜表示,微博使用Docker官方提供的Docker Registry,构建了私有的映像档储存库Registry Hub,并且透过这个映像档储存库调度Docker Container需要的映像档。

在今年,微博开发出了第2版本的Registry Hub,将储存引擎改为使用分散式开源储存平台Ceph,并且在Docker Registry前端结合Nginx,实作负载平衡功能。王关胜表示,在升级过程中必须让系统能够兼容新旧版本的Registry Hub,而前端Nginx可以分析系统需求,辨別要从新版本或是旧版本映像档储存库下载映像档。

而外部公有云,微博则是透过映像档快取,不必像私有云一样,部署完整的映像档储存库。微博位于阿里云映像档快取架构,总共包含3层架构。包含最底层作業系统、中间层的运作环境如Java、Tomcat,及最上层的Container。而在调度Container时,透过使用dockerignore指令,减少不必要的文件、目录,借此减低映像档的容量。在映像档标签命名上,微博则禁止使用「Latest」做为映像档标签。王关胜表示,由于不同使用者对于标签的理解不一,可能会误以为是代表映像档最新的版本。

而第三则是微博开发的Nginx Upsync模块,王关胜表示,去年微博开始使用Container时,必须透过Container将Nginx掛载至前端,执行负载平衡的任务。而Nginx部署完成后,必须透过重启reload指令重启Nginx。王关胜发现,Nginx对于特別大的流量会发生运作不稳定的情形。所以微博也直接开发了Nginx Upsync模块,不需要透过reload指令重启,也可以保持系统稳定运作。而微博也针对两种模块进行比较,发现流量大时,未修改的Nginx模块会比Nginx Upsync模块多上10%的请求。

目前微博开发的Docker Container平台系统,主要包含4层架构:主机层、调度层及排程层,最上层则是包含应用程式的业务层。底层的混合云基础架构则架设了专线,打通微博内部资料中心以及阿里云。

当业务A多馀的运算资源导入溷合云共享池时,此时爆量的业务C,可从共享池调度业务A的运算资源,而度过峰值事件后,便可以把多馀的运算资源归还至共享池。

王关胜表示,目前微博的溷合云系统在今年10月完成,目前开启的Container数量约是3,000个。不过,王关胜表示,在今年的双11,微博也用此系统进行实地演练,也达成微博所设定每次水平扩充时间低于5分钟的目标。

本文转自d1net(转载)

时间: 2024-10-26 09:16:02

微博 Docker 化混合云平台大剖析的相关文章

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

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

分析:混合云平台才是未来发展的必然趋势

如今IT组织面前充斥着大量令人眼花缭乱的选项私有云.公共云.混合云,当然也少不了内部部署的设施.根据德勤咨询公司的Mark White与Bill Briggs的说法,大多数机构所采用的已经不限于一套云平台.而是同时应对多套云平台. 由于云产品能够切实为IT服务能力带来相当强大的垂直业务能力,因此以往的"是否"部署这一问题已经变成如今的"何时"着手部署而大多数机构给出的答案往往是"马上",德勤咨询公司负责人兼CTO White与主管兼副CTO Br

高能预警:2017混合云趋势大预测

经过过去几年的发展,混合云在企业中的作用已经越来越重要:越来越多的企业发现,市场上并没有全面的通用解决方案,可以解决企业所有问题,他们必须选择使用不同的技术,才能满足需求.下面,就来看看,在企业的推动下,混合云在2017年都有哪些走势? 混合云将为企业应用的迁徙之地 我们必须承认,企业所追求的一直都是一致的应用体验,而承载着工作负载的底层架构来自哪里,他们并不关心.这就导致了企业越来越倾向于使用混合云作为他们的管理平台,以获得更好的应用体验.随着云计算采用率的提高,企业已经不再满足于使用简单的自

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

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

容器化混合云解决方案实践

摘要:本文的整理自2017云栖大会-成都峰会上成都龙渊网络科技有限公司运维总监王颖的分享讲义,讲义主要介绍了2017龙渊docker应用实践的相关内容,虽然运维熟悉docker技术原理和实用,但是开发人员不熟悉docker.通过阿里云容器服务解决开发人员使用问题. 在2017云栖大会-成都峰会上,成都龙渊网络科技有限公司运维总监王颖做了题为<容器化混合云解决方案实践>的分享.Docker的应用简化了业务部署,提升了运维工作效率.使用阿里云容器服务,使我们有精力专注于docker的应用本身,加快

D1net阅闻:惠普企业收购SimpliVity:扩大混合云平台

惠普企业收购SimpliVity:扩大混合云平台 惠普企业宣布将以6.5亿美元的现金收购软件定义基础设施的领先供应商SimpliVity,此次交易预计会在今年第二季度完成. 阿里云领投 ZStack获数千万元A轮融资 开源云计算IaaS产品ZStack在京召开发布会,正式对外宣布已完成数千万人民币A轮融资.本轮融资由阿里云领投. Oracle公布云计算平台更新 Oracle公布了其云计算平台Oracle Cloud Platform的重要更新,其中包括裸金属上的Oracle数据库云服务.云主机.

混合云平台为何更适合现代应用开发

混合云平台,即云和本地系统的混合,能够为大型企业和遗留环境中的开发团队提供一些他们一直想要的东西:那就是与整个开发领域以相同的节奏一起进步的能力.这其中最难的部分是找到基础架构,整合系统和公有云供应商的正确组合. 企业比工具厂商做得好的地方是,找到适合于工作的工具.虽然企业常常被旧习惯和固执所拖累,但大部分来说,他们的行动是以结果为导向的,而不只是因为某个东西很酷所以才想要创建它.然而,企业也常常对可能会有益的功能视而不见,从而抹杀了实现更高目标的可能性. 企业必须要了解,混合云平台是一个对业务

使用存储即服务优化混合云平台

通过采用云爆发的能力,混合云平台能够提供强大的计算灵活性.但是如何科学适当地部署混合云数据,以及实现对公共云和私有云的跨平台快速访问成为了摆在IT团队面前的两个难题.幸运的是,存储即服务能够帮助解决这两个问题. 云爆发的困境 云爆发的根本问题是数据往往都被部署在错误的云环境中.对于很多应用程序(例如网络服务和媒体传送等)来说,最好的做法是将数据复制至公共云和私有云中.无论是哪种应用程序,只要其数据集大部分都是静态的,那么就适用于这种模式,此外还有相关软件可实现复制过程的自动化. 但是,当应用程序

云平台大数据助推昆明市“互联网+农业”行动实施

昆明市"互联网+农业"行动战略合作框架现场签约 昆明市"互联网+现代农业"示范园揭牌 9月6日上午,<昆明市"互联网+农业"行动战略合作框架>协议签约仪式在昆明市经济技术开发区银河科技园举行.昆明市农业局党委书记.局长郭增敏,云南银河之星科技有限公司董事长蔡俊丰分别代表双方签约,并为昆明市"互联网+现代农业"示范园揭牌. 郭增敏在致辞中表示,三农和互联网一直是关乎国家发展的重点课题.在大量调研的基础上,结合昆明实际