云片高可用高并发系统稳定性实践与探索之路 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yunpian2017
V2EX    推广

云片高可用高并发系统稳定性实践与探索之路

  •  
  •   yunpian2017 2017 年 9 月 7 日 2682 次点击
    这是一个创建于 3109 天前的主题,其中的信息可能已经有所发展或是发生改变。

    9 月 4 日,云片 CTO 林佳齐在高端技术人员学习型社交网络 EGO 进行了线上分享,与杰出技术领导者探讨云通讯稳定性实践与探索之路。

    从满足自有业务需求到开放服务

    云片并非一开始就做云通讯,而是先做了一款叫维客 CRM 的软件。这个软件面向淘宝商家提供会员营销服务,有大量短信需求。当时林佳齐负责短信平台的开发,对接行业服务商,发现这个行业虽然存在比较长时间,却没有一家能满足需求。为了提高短信服务稳定性,云片踩过无数坑,经过 1 年多的产品迭代,发现自己平台功能已经比服务商的更强大,所以就想把服务开放出来,让其他公司使用短信时能少踩坑少走弯路,这是云片的由来之一。

    avatar

    △短信发送流程

    avatar

    短信通过三大基础运营商的通道发出去,一般情况下单个通道的发送速度为几到几十不等;通道在运营商体系可分移动、联通、电信三类;大家通常听到的系统通道、营销通道、共享通道和专用通道的分类,是取决于短信服务商对通道的运营策略。

    打造高可用高并发系统踩过的坑

    avatar

    1、发送速度

    发送速度在工程师眼里即并发数,现在依然有很多公司,并没有这样的技术概念,而且服务也无法支持做性能压测,这意味着服务的性能是个黑盒子,你不知道具体的性能指标是多少,什么时候会出现瓶颈,这是一个技术风险。

    2、系统处理速度和短信实际发送速度

    解决并发问题后,开始筛选些至少能把并发参数讲清楚的公司。但他告诉你的速度,可能并不是实际的短信(或者叫通道)发送速度,只是系统处理速度。造成的结果是,很可能短信需求提交出去了,但只是提交到服务商的缓冲队列中,并没有及时的发给客户。这是一个业务延迟风险。

    3、专用通道

    被坑多了我们开始关注通道速度。但是一个服务商要服务多个客户,不可能为每一个客户分配专属通道。这意味着大部分客户是以共享的方式来使用通道的,所以给你分配的通道速度,并不是实际可以获得的发送速度。这是一个至今还隐藏的坑。林佳齐建议解决的方案是找一家足够透明的公司,坦诚沟通。因为通道资源是有限的,有一些公司即使提供共享通道,也能通过技术手段保证发送速度不受影响。

    前三个坑,如果服务商不能很好的解决,每个公司在接入的时候就要投入很多研发的资源,包括接口稳定性监控、短信延迟监控、多服务商接入和互备切换等,会增加研发成本。

    4、短信效果

    广告业有一句名言:我知道在广告上的投入有一半是无用的,但我不知道是哪一半。短信营销也一样,短信的效果没办法直观看到。对此,云片针对短信营销场景,做了精准营销服务。

    精准营销的基本流程是筛选目标人群发送,根据数据报表分析营销效果并做调整优化,它解决的问题是:

    • 精准筛选目标受众,节省短信营销成本;

    • 支持在短信内容里插入短链接,精确统计每个正常手机号码的点击情况;

    • 提供详细的发送效果数据报表:包括短信到达率、未送达原因分布、短链接点击率、点击省份分布等,短信发送效果清晰明了;

    • 可以按点击情况导出数据后,对产生点击行为的用户进行二次营销。

    云片云通讯系统演变过程

    1、为了长远发展,给飞行中的飞机换引擎

    云片早期平台部署在阿里云的早期版本上,随着业务量的增长,底层平台的问题逐渐暴露出来,包括物理机资源隔离不彻底等原因带来的 CPU、IO 及网络抖动。尽管我们对服务做了很多技术优化,但 IaaS 层的不稳定因素依然是个非常头痛的问题。

    随着云片对服务的要求越来越高,我们开始考虑平台的迁移问题,做长期的规划。当时业务量刚好迎来增长高峰,而迁移涉及面非常广,从后端的 DB、中间件服务到前端的应用、域名解析,以及数据、配置和通道等资源迁移,是一个巨大工程。在保证线上业务不受影响,并且业务开发能正常进行的前提下,做平台的迁移是个很有挑战的事情。

    确定迁移之后,云片开始对系统进行全面的、系统化的梳理,原先很多设计不合理的地方、历史遗留缺陷、环境依赖硬编码等问题,被重新审视。整个迁移的过程就是一个偿还技术债务的过程。经历这样一次飞机换引擎的挑战,云片系统架构、稳定性和可运维性都有极大提升,团队能力也得到历练而变得更加自信。

    2、把监控工具做成分布式系统,提高稳定性

    为了对所有通道进行自动化监控,云片开发了 Android 程序,安装在手机上做成监控机。由监控中心自动触发监控短信,监控手机负责上报采集到的信息,比如短信接收时间、短信内容等信息,监控中心再按规则策略判断是否存在异常,并通知路由中心做自动切换,达到及时屏蔽问题通道的目的。

    avatar

    以下是云片为了提高监控系统稳定性,对监控服务做的几个版本迭代:

    avatar

    avatar

    各版本相应解决的问题是:

    • 单机版:解决监控自动化问题,实现 7*24 小时自动监控和切换。

    • 多机版:解决单机性能问题。随着需要监控的通道增加,单个监控机已经有性能瓶颈,需要更多的监控机来分摊压力。

    • 心跳版:减少误报。随着监控手机越来越多,小概率的网络抖动、假死等问题更多的暴露出来,心跳版实现对问题手机做自动剔除的操作,减少监控的误报。

    • 异地分布式版:解决地区性网络故障对监控的影响。包含两方面,一是办公网络不稳定问题,监控机用的是办公网络,网络抖动或断网时有出现,如果监控机都放在一个办公区网络,一旦网络出现问题,会出现监控空白时段;二是解决运营商的地区性网关故障问题,如果监控机都放在一个地区,如果该地区网关故障,就会导致监控误判。

    经过以上版本的迭代,监控的稳定性已经非常高。云片的经验是整体服务的稳定性,是由一个个基础服务共同决定的,当我们对稳定性的要求越来越高时,每一个看似简单的服务都有很多细节需要考虑。

    Q & A

    1、短信供应商做了多久?

    云片短信平台是 2012开始做的,2013 年开始对外提供服务。如果算短信供应商的话,是做了 4 年多。

    2、产品有哪些行业领先的特性?

    • 实时数据分析

    avatar

    比如实时到达率统计、耗时分布、错误码分布等,方便第一时间查看短信质量。

    • 注册验证码的场景深化

    一方面云片提供短信接收失败自动转语音验证码的功能,比如手机号在黑名单里,会收不到短信,但语音验证码可以送达,能够提高短信注册成功率。这个功能只要在后台开启就可以实现,不需要开发。

    另一方面,如果客户在注册成功后,回调云片的统计接口,我们可以帮客户做成功率的统计和监控,如果注册成功率低于设置的值,你会收到短信提醒。

    • 营销场景的深化

    这个在前面精准营销里已介绍过。总的来说可以帮助运营同学更高效的做短信营销,并一目了然的查看营销效果。

    • 防轰炸或者短信防刷功能

    短信验证码被恶意调用的情况,云片叫短信轰炸。我们实现了实时自动识别和防范机制,自动屏蔽恶意的短信,并通知给客户,最大程度帮助客户减少短信费用损失。

    3、短信接口防刷、到达率优化、转换率优化能分享一些案例么?

    接口防刷是云片客户经常碰到的问题,大部分情况是加图片验证码或者其他类似的手段可以解决。同时还需要网站做好自己的安全保护,比如对访问 IP 的限制等。

    到达率有两个影响因素:一是手机号质量,手机号正常的情况下到达率接近 100%,云片提供失败原因分布统计,可以直观看到手机号的质。二是黑名单,包括自己的账户黑名单和供应商黑名单。一般来说,供应商的系统类的短信黑名单库小一点,到达率高;营销短信命中黑名单的概率大一些,到达率会略低。

    转化率方面,前面在讲云片产品特点的时候有提到,我们在提升注册验证码方面提供转语音验证码功能,能帮助提升验证码短信的成功率;营销转化率方面主要是通过精确营销,提供更多数据参考,理论上做精准的筛选有利于转化率的提升。另外,转换率也跟到达率有关系,必须得保证到达率在一定比例之上。

    4 条回复    2017-09-07 11:33:11 +08:00
    ITOutsider
        1
    ITOutsider  
       2017 年 9 月 7 日
    呵呵,贵司给你发加班费了吗?随便开除员工了吗?
    毕竟云骗,还敢在 v2 发帖
    xenme
        2
    xenme  
       2017 年 9 月 7 日
    一进来就在想是否有人翻旧账,果然,哈哈。
    loveCoding
        3
    loveCoding  
       2017 年 9 月 7 日
    就知道有人翻旧账 233
    bellchu
        4
    bellchu  
       2017 年 9 月 7 日
    晕骗
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3532 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 10:31 PVG 18:31 LAX 03:31 JFK 06:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86