云通讯行业背景下云片高可用架构演进之道

一、云通讯部署架构面临的挑战宕机、黑天鹅事件

数据统计显示:2016年Google Cloud的宕机时间总计为47分钟,微软Azure服务宕机时间为270分钟,亚马逊AWS宕机时间为108分钟。

作为构建在IaaS之上的PaaS服务,云片为了防止云服务厂商的故障造成影响,设计了多可用区的同城双活架构,最大限度保证部署架构层面的高可用。

二、云通讯系统架构面临三大挑战

在系统架构上,云通讯系统主要面临三大挑战:

1、不同类型短信间的相互影响

不同类型的短信特点不一样,比如验证码短信实时性要求非常高,能多快就多快、营销短信虽然实时性要求没那么高,但数量巨大,峰值QPS可能会过万。

2、运营商情况复杂,稳定性问题突出

△运营商情况复杂,带来诸多问题

运营商的情况比较复杂,这其中会遇到各种各样的问题。首先是突发事件,比如在杭州G20期间有些通道就无法正常运转。其次有些代理商服务稳定性不高,RT会需要2-3s。另外也有些代理商会限制短信类型,比如只能发带验证码的短信。最后还有速率限制,有些通道最高2000/s,有些200/s通道间容量不一致。

3、产品频繁迭代的过程中如何保障系统稳定性

△产品快速迭代功能不一

云片的产品一直在进行快速迭代,像报表、统计等功能,基本每周要发两个版本,在快速迭代过程中如何保证产品核心流程的稳定也是系统架构设计中的挑战。

基于以上挑战,云片设计了“异步解耦”的分布式系统架构。

△云片系统架构

上图是演化后的云片系统架构,异步解耦是核心,异步带来的好处是每个模块可以独立演进。首先,写记录的模块,因为它不是影响短信能否到用户手机上的核心流程,所以云片把它异步化了。另外是产品相关的模块,也通过异步日志的形式,尽量保证主流程比较稳定,并且是尽量少依赖的状态。


△云片系统管理模块

上图是云片系统管控模块,它很好的解决了前面所提到的问题。比如有些通道只能发包含某个关键字的短信,云片系统加了一个模块以后,通过不同的队列,不同的通道,对不同的地域发送不同的短信。另外有些通道可能卡住了,可通过监控模块监测到然后进行实时的切换。还有资源的隔离,前面提到有些通道的数据容量不一样,不同的速率对不同的资源,通过这种模式也达到了一个隔离。包括不同的业务类型进来以后,也会进入不同的通道。


△云片系统架构

云片系统架构消息中间件采用的是RocketMQ,它的所有角色节点都是无状态的,可以非常方便地实现横向扩容,另外也能够与云片系统多可用区部署的方案结合。

4、高可用系统架构设计经验分享

云片系统架构演进中有几点经验可以分享给大家。

首先关于消息队列的使用,需要有堆积的监控告警,比如出现问题时消息很容易堆积,监控报警就要做好。

其次Procedure预路由,在Procedure端,不知道发的是哪个topic,比如云片启动时,突然进来了比较高的请求,会在获取topic路由这里有个锁,整个过程就很慢,于是云片就做了预路由,实现提前去获取topic的路由。

最后云片也做了topic均衡,因为默认自动创建的topic只会在一台broker,不然在broker重启的时候就会变得不可用。

三、智能监控:保障系统稳定性的关键因素


△云片智能监控系统

上图是云片智能监控系统架构。完善的监控系统是稳定性的关键,云片有一个监控中心,它跟普通的用户请求是一样的,这些短信会到云片的监控机上面,然后云片开发了一个Android的App,在上面获取到短信,把这个信息汇报给监控对象。如果一段时间没收到汇报,基本可以判断某条短信的通道存在问题。此外,管控模块提供通道切换的功能,发现某个通道有问题就可以切掉,通过这种方式云片实现了智能化的通道监管和切换。

由于Android系统不够稳定,如果短信只发到一台机器上出现问题,就觉得它有bug,并且切掉的话,很可能这是一个误报。此外云片还考虑到,假如整个杭州地区出现问题,而且监控机器也全部在杭州,是否也会出现问题,如果出现问题是否都要切掉,这样会导致整个服务都不可用。基于这两方面的因素,云片监控机器是多区域分布的,通过这种方式一方面可以达到系统的智能性,另一方面可以尽可能地保障高可用性。

总的来说,云片系统架构的演进:基于系统面临的诸多挑战进行系统架构的部署,并有智能监控系统确保流程的稳定性。在系统架构设计过程中,云片网资深架构师陈涛分享了一条重要的经验,把“简单的事情”做到极致,不断进行产品迭代。

以上内容来自2017年4月16日,云片网资深架构师陈涛在QCon的主题分享:《云通讯行业背景下的稳定性架构演进》。


演讲者|陈涛Qcon2017技术专场分享
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • 从各个角度总结了电商平台中的架构实践,由于时间仓促,定了个初稿,待补充完善,欢迎大家一起交流。 转载请声明出处:h...
    Maggie编程去阅读 1,540评论 0 9
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,419评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • 我们的现实生活在没有情欲的驱动时会变得无聊和乏味,一旦受到情欲的驱动,很快就会变得痛苦不堪。——廖一梅。 (摄于大...
    unclebaby_萧烨阅读 406评论 0 1
  • 表弟从H高中的普通班转到素质班,姑父请新班主任,老班主任,段长,段主任,还有乱七八糟的一起吃饭。姑父的心情很...
    南极姑娘阅读 209评论 0 1