王宝强离婚事件的洪荒之力,新浪微博怎样靠技术支撑?(2)
首先,微博平台的业务已经完全Docker化,基于Docker的特性,解决了环境差异性问题,使得标准化变得容易.其次,基于公有云,使得我们的服务的弹性能力大大加强,再也不用提前购买服务器,进行漫长的部署过程了. 王关胜:微博混合云平台DCP的核心设计思想,主要是借鉴银行的运作机制,在内部设立一个计算资源共享池外,既然内部私有云的需求,又引入了外部公有云,使其在设备资源的弹性能力大大提升. 而要微博实现高弹性调度资源的混合云架构,其中实现的关键则是Docker.刚开始我们思考该使用裸机还是VM架构,发现如果要采用VM,内部机房架构要进行许多改造,这样成本会更高. 所以,目前微博的内部私有云使用裸机部署,而外部公有云则采用阿里云弹性计算服务(ECS)的VM架构.等平台建设成熟后,还可以应用其他家的公有云,如AWS,在主机之上均采用Docker来持续部署. 目前我们开发的DCP平台,主要包含4层架构:主机层、调度层及业务编排层,最上层则是各业务方系统.底层的混合云基础架构则架Dispatch设了专线,打通微博内部私有云以及阿里云. 主要思想:三驾马车(Machine + Swarm + Compose) DCP混合云系统的设计理念,总共包含4个核心概念:弹性伸缩、自动化、业务导向以及专门为微博订制.混合云系统必须有弹性调度的运算能力.而DCP混合云系统并不是对外公开的产品化服务,必须以业务需求出发,因此会有包含许多微博定制的功能. DCP系统最核心的3层架构:主机层、调度适配层及编排层: 1) 主机层主机层的核心是要调度运算资源.目前设计了资源共享池、Buffer资源池,配额管理,及多租户管理机制,借此实现弹性调度资源. 2)调度层:而调度层则通过API,把调度工具用API进行包装,而微博4种常用的调度工具组合包含:原生Docker、Swarm、Mesos及微博自主开发的Dispatch. 最上层的则是负责业务编排及服务发现.目前,微博的后端服务95%是Java环境,而PC端则是使用PHP编写,移动端则是通过调用API服务.这些业务方都将会接入DCP.编排层也包括了大数据工具Hadoop,进行大数据分析的业务场景. 我们知道,对于调度来说,最重要的就是资源管理,Mesos处理这个是最合适不过了,很多公司就专用其做资源管理,比如Netflix写了一个Titan的调度服务,其底层资源管理则是通过Mesos.当然我们的调度组件中,使用最多的还是Swarm、Dispatch. 我们可以看下面这个场景:这也是私有云内部资源流转的最佳实践: 当业务A多余的运算资源导入混合云共享池时,此时流量暴涨的业务C,可从共享池调度业务A的运算资源;峰值事件后,便可以把多余的运算资源归还至共享池. 3)业务编排层这层主要根据业务场景模型,通过主机层、调度层的API,创建可编排的任务模型,如集群管理、服务管理、服务池管理、镜像管理、构建管理、负载均衡管理、扩缩容管理等. 从使用角度出发,我们主要划分了集群、服务池、设备Buffer等层次,以IP+Port唯一标识服务.如下图: 其中:在DCP下可以创建多个集群,每个集群为独立平台或产品线,如微博平台、红包飞、手机微博等.集群间相互独立,集群内各自的服务可自由调度,集群外的调度则设置了配额机制.在集群下,可以创建服务池,一般为同一业务的同构服务.主机只有进了集群的Buffer中,才可能被用来部署服务. DCP对于物理主机的流转,基于资源共享池、Buffer资源池、配额管理,还是非常复杂的,这里我们可以看一下一台物理主机的生命周期(状态流转图) 王关胜:DCP系统最核心的是弹性伸缩,能根据容量情况进行自动的弹性伸缩,以此来解决明显的早晚高峰及热点事件的峰值问题. DCP第一版时,我们做到了扩缩容的自动化,但未能自动伸缩,需要人的参与,而且也会有几个操作步骤,人本身是懒惰的且是易犯错的,且还会存在人力成本,这还没达到我们的目标,离无人值守还差一段距离,于是,我们又开发了两个模块:
整个自动伸缩框架如下: 其核心的特性:如支持各种调度策略,根据业务流量及服务冗余情况,提供基于时间的调度方式,类似crontab触发机制,Chronos、 Quartz提供可借鉴的任务调度实现机制;支持服务的依赖,A服务依赖B,B在自动弹性扩容时,需扩容好服务B. 这样,整个服务就可以弹性伸缩了. 王关胜:目前微博混合云DCP平台包含很多核心功能,如服务管理、多云对接、镜像市场、弹性调度、弹性扩缩容、服务发现、监控、容量决策等,这些已经可以全部联动,自动的去弹性来做.而应对峰值事件时,对于准备的预案,如降级,切流量这些,还需要人工的参与. 一般而言,面对瞬间高压,系统会采用“降级非核心及周边业务”.那么微博有没有对哪些业务进行降级呢?在突发热点事件的这种情况下,“核心应用”和“周边业务”分别是哪些?微博是否准备的降级策略? (编辑:ASP站长网) |