Docker如何助力微博迎接春晚峰值挑战
课程导航
Docker如何助力微博迎接春晚峰值挑战报名
Docker如何助力微博迎接春晚峰值挑战新闻
Docker如何助力微博迎接春晚峰值挑战环境
热门课程:
400-882-5311
  • 学校新闻

Docker如何助力微博迎接春晚峰值挑战

  羊年的春晚与往年的春晚相同,却又不太相同。相同的是效劳器君仍要应对全民“DDOS进犯”,不相同的是本年无法经过简略的扩容抵挡峰值。本年不但主信息流日常用户活跃度现已到达了上一年春晚的峰值,一起渣浪的商品拿出了多个杀手级商品,像红包飞,明星粉丝群,这些商品带来的QPS压力相同惨无人道。所以本年依然按事务峰值扩容布置,信息流、红包飞、通讯、方针库、RPC等多个效劳需求的扩容本钱明显现已到了无法承受程度。
  怎么办?运用各效劳的错峰特色,经过容器化弹性调度,处理抗峰值容量疑问。渠道经过对线上事务进行容器化改造,全体集群完结50%计划的容器化布置,容器节点数到达上千个以上。凭借效劳发现、弹性调度等基础设施,5分钟内可以完结上百计划节点调度,可即刻供给10W QPS的承载能力,应对任一效劳的峰值。
  达成这一方针的应战可以归纳为三个方面:时刻紧,危险大,规划广。要在一个月的时刻内,布置基本归于国内*的容器化集群,而且供给相同乃至非常好的效劳SLA,中心接口成功率到达 99.99%,均匀耗时小于40ms,一起需求掩盖全事务,5分钟内完结效劳间资本调配。下面与大家共享一下渠道的一些实践经历和踩过的坑。
  为何挑选Docker?
  首要共享渠道为何挑选Docker。程序猿都知道在代码运转的国际里,拆东墙补西墙是一件不靠谱的工作,弄不好会塌方的。Docker可以完美处理环境差异化疑问,经过Image界说依靠的环境要素,宿主机仅供给操作体系内核功用,所以任何一个镜像可以布置就任一Docker化的宿主机上。
  当然许多人会有疑问,为何不选用传统VM?这即是第二个要害疑问,即是要快!Docker容器对比传统VM*优势是可以完成秒级发动,更要害的是可以秒级中止。渠道选用“瘦容器”的运用方法,容器与效劳同生命周期。效劳一旦摘除,容器就会马上开释资本,新容器可以马上就地发动,这样可以极大的缩短扩容所需时刻。
  布置一个大计划容器集群,Docker仅供给中心的容器化技术,为了*集群的可控性需求一套完整的处理计划。渠道的处理计划全体上可归纳为:布置架构、效劳监控、研制流程、扩容预案等几个方面。
  布置
  布置架构渠道选用的是简化的构造,有几个主张很大家共享一下,a) 一个容器仅有一个进程;b) 选用host网络形式,除非你知道NAT,Bridge有啥坑;c) *小化镜像大小,计划好层次构造,而且尽量复用;d) 日志选用volumn挂载方法;e) 全部皆容器,例如镜像构建环境也要容器化。
  容器化布置*主要也是*复杂的,即是效劳发现疑问。渠道参阅Kubernates,Mesos,etcd等开源项目的经历,联系自身的事务特色以及现有基础设施,完成了一套根据ConfigService中心和调度体系效劳发现机制。效劳调度粒度从本来仅能对于全部效劳池,细化就任逐个节点,完成了7层nginx,效劳节点,RPC节点三者之间的动态联动。这儿运维的开发工作量是*的,有必要为运维的小伙伴们点个赞。
  Docker 布置被诟病*多即是网络,渠道现在选用的是host形式,为何没有选用NAT或者Bridge呢?因为涉及的技术细节对比繁杂,这儿仅共享一些踩过的坑。例如NAT运用iptables底层流量转发依靠内核netfilter模块,其默许仅坚持65536个连接,在效劳有许多连接的场景下,会呈现许多回绝连接的现象。再如Bridge的MAC地址默许是挑选其子接口中*早的一个,这样就会致使一个宿主机下多个容器启停时呈现网络瞬断。还有许多疑问不逐个列举,渠道将来计划选用vlanif的计划来处理容器网络布置难题,请重视后续微博渠道的共享。
  效劳监控渠道
  效劳监控渠道选用的是cadvisor开源计划,但因为cadvisor自身仅供给功能数据不完整,而且仅支撑influxdb,所以渠道在其基础上进行了二次开发,支撑CPU运用率、存活个数、内存占用、Swap占用、磁盘占用等功能目标,而且供给了对ElasticSearch的支撑,争夺可以回馈给社区。
  研制流程要尽量通明,容器应当融入到现有的流程,而不是改变现有流程。例如不要侵入代码,如请运用XXX环境变量等。不要影响原有的测验、发布、降级等流程,如测验预览环境应当容器化,而不应当添加对于容器环境的测验。
  扩容预案要确定好规则,避免流量增加时乱扩容,渠道经过中心接口QPS,全体QPS,均匀耗时三个目标来界说扩容触发条件;扩容份额按流量增加计算,主张以 10%计划递增;扩容来源于全体QPS低、冗余Buffer大于50%的效劳池。别的有许多细节需求留意,例如机房流量均衡疑问、流量突增疑问。
  当然这才是刚刚起步,希望更多牛人可以加入到渠道大家庭,一起创造容器化渠道。