- 《架构师》2016年12月
- InfoQ中文站
- 119字
- 2020-06-26 06:05:38
特别专栏 | Column
腾讯云11.11:十分钟内完成弹性伸缩,流量清洗化解DDoS攻击
一年一度的双十一狂欢节已经来临,这个特殊的节日因为电商们的集体疯狂促销而被赋予了特殊的含义。从往年的数据来看,双十一当天各家平台的成交额和成交量都是在创造着各种数字奇迹,并且每年都保持高速增长。惊人的数据背后也有着不可想象的挑战,特别是在零点之后的几分钟内,数千万的用户在同一时间进行着同样的购物流程,搜索、查看详情、下单、支付等等的每一个环节都需要保证高并发下的高可用性,扩容、冗余、多活、降级、防DDos等等的技术都需要渗入到相关的平台架构中。
而对于双十一这样的高并发访问场景,很多中小型电商并不具备相对应的运维能力,所以他们开始借助专业的云服务商来解决这些棘手的问题。这其中,腾讯云就为用户提供了11.11电商解决方案,核心能力包括弹性扩容、抵御刷单等,蘑菇街、聚美优品、当当、有货、唯品会、小红书、楚楚街等知名电商平台都基于他们的云服务构建了自己的业务架构。为了了解腾讯云电商解决方案的技术细节,InfoQ记者采访了其资深架构师罗志。
电商架构
每家电商都有自己各自的业务特色和技术栈,具体落实的架构不尽相同;但是在我看来,有一些规律可以遵循,这里对不同的电商架构情况进行下分类介绍。各电商业务的架构一般比较类似,都是4层架构,即接入层、逻辑层、cache层和数据库层。
近年来,随着抢购、秒杀的兴起,要求电商后台需要能够有集中时间内应对大请求量的处理能力,因此,在对接入层、逻辑层的按需、实时、快速平行扩展能力就提出了较高的要求。同时由于国内日渐猖獗的羊毛党黑产的泛滥,因此电商业务对腾讯云的基于大数据的恶意用户识别——天御系统,也有了越来越多的需求。
在考虑电商业务架构的时候,以接入层为例,在以往非云架构时,业务往往只会选择一个接入中心,虽然有BGP的接入,但毕竟受限于物理距离,故对距离接入中心较远的地区的覆盖,依然是存在不足的,这个问题在移动端APP访问时,变得尤为突出。因此在这里,建议更多的考虑如何复用公有云在全国各可用区间强大的内网专线能力,通过反向代理等技术,实现全国多接入中心的接入能力。
但若按业务架构的物理部署而言,又可以大致分为传统和新兴电商两类。其中传统电商,在初创时即使用自有IDC,故仅在公有云上部署其接入、逻辑、cache层,充分复用公有云的BGP接入及弹性的能力,同时又以专线将腾讯云与其私有IDC数据中心连接成为混合云。
而以小红书为代表的新兴电商,由于其是完全在腾讯云上成长起来的业务架构,故会将全部业务架构部署在云端,充分享受云带给其的低运维成本和低架构成本,而将全部重心投入在业务发展上。
如果某家电商客户同时采用了其他家的云服务或者自由IDC,那么我认为混合云是一个比较好的发展方向,无论是双云混合还是自有IDC+云。如果是双云架构,建议以双云容灾,一个为主一个为备作为主要的考虑方向。而如果是构建混合云,则以充分利用云的弹性及BGP+多地接入节点作为主要的考虑方向。
怎样做到弹性伸缩
弹性伸缩(Auto Scaling)根据业务需求和策略,自动调整计算资源。可根据定时、周期或监控策略,恰到好处地增加或减少CVM实例,并完成配置,保证业务平稳健康运行。
腾讯云目前的弹性伸缩请求响应时间是5-10分钟,扩容时间视客户镜像大小而定,一般10分钟以内。同时并发扩容数,无限制。我们的实现是基于业务无状态层的,可自定义策略的弹性伸缩能力。
整体架构如下图:
这里可以举一个我们的客户案例进行分享,江苏盛瑞面临的挑战有三点:
1.动辄需要数千台规模的扩容,需要稳定、海量资源的后台
2.过去需要2个以上运维人员晚上加班手工扩容,耗时大半天,费事费力
3.机器数量巨大,希望找到计费更精确的云平台,节省费用
经过我们的努力最终实现了2.5小时完成两次自动扩容,共扩充接近3000台高配服务器,此后又完成自动缩容;全程零故障,零人工参与,顺利度过高峰。
尽可能地周全监控服务
对于监控,我们会考虑到云服务器CPU利用率、内存利用率、磁盘利用率以及云数据库、Memcached高速存储等各项云服务负载和性能指标,通过直观图表展示出来。
在设计和实现监控时,我们考虑到了需要支持配置多种指标的告警触发阈值,每个策略可关联不同云产品。设为默认告警策略后,自动关联该策略,然后还支持自定义告警接收人和发送渠道。关于自定义告警通道服务,我们预留了告警上报接口,客户可以自己通过监控脚本产生自定义的告警,通过告警上报接口,即可将告警内容上报给云监控,平台会及时推送给客户。
同时,不单是监控,云API几乎覆盖所有可以以API方式对外提供服务的云产品并持续迭代。新产品上线时均同步推出对应API。所有接口均以https方式对外提供,并通过签名机制对调用者身份进行鉴权,充分保证API请求的安全性和合法性。在调试上,腾讯云提供了云API的调试工具,方便开发者快速调试API接口,并提供了丰富的代码示例共开发和参考。
电商业务离不开图片处理
作为电商,图片支持需求是绕不过去的;对应到技术上,需要对商品图片进行存储和识别。这里重点谈谈我们的图片内容识别技术:DeepEye内容识别引擎。
DeepEye是由SNG优图实验室、TEG信息安全部联合研发的图像识别引擎,基于海量数据与深度学习技术研发,旨在打造百亿处理级别的高可用、高准确图片内容检测识别系统,对行业内各大产品UGC图片/视频类数据进行主动色情检测,改变了信息安全领域依赖人工发现恶意内容的模式,升级为机器自动发现+人工辅助的AI模式;DeepEye技术在鉴黄上的精度达到99.95%,在多次业务评测中保持业界领先;在腾讯公司内部已接入包括Qzone、头像、Q群、朋友圈等绝大部分图片与视频业务,极大降低了业务监管风险;并联合腾讯云搭建了万象鉴黄、天御等品牌向公司外部客户提供多媒体内容检测服务,迄今接入了包括快手、大众点评、京东、大智慧、斗鱼等数十家领域内标杆公司,极大程度上解决了人力审核上的痛点并获得了好评。
这里不得不重点提一下DeepEye技术的创始团队:SNG优图实验室,这支人工智能团队是腾讯公司布局前沿技术的一张王牌。从2012年成立至今,优图团队从寥寥数人已成长为具备近百人规模的算法研发团队,并于今年从原有社交平台部架构中独立出来,成立了优图实验室,专门从事机器学习、计算机视觉、音频分析等人工智能领域前沿科技的研发与产品落地。其实除了图像内容识别方面的能力,该团队的人脸识别、声纹识别等能力在国际比赛中创造了世界纪录。
越来越受到重视的安全技术
电商常见的三种困扰:恶意刷单、DDos攻击、域名劫持,这里和大家分享其中两个。
处理恶意刷单需要积累恶意用户库、有效判定、处理执行。恶意用户的积累需要长久作战,收集IMEI、QQ、微信、手机号码、身份证号、IP等全方位的信息;需要基于大数据做到一处作恶、多处识别。
关于DDoS攻击的处理,我想谈谈锤子科技的这个案例。2015年锤子坚果手机发布会,遭到攻击导致直播暂时,高达数十G的量攻击,锤子商城一度面临全面瘫痪风险。
此时腾讯云介入,在锤子官网域名的DNS配置里面加一条CNAME,将相应域名解析到大禹,CNAME功能会把用户流量的请求先路由到大禹的加速点,然后由大禹的加速点清洗、过滤,再吐回到原站,顺利化解了攻击。从启动预案,接入客户网站,到启动清洗,13分钟内一气呵成,数十G的攻击流量均被大禹系统成功清洗,让锤子科技官网恢复正常,保证了现场发布会召开后274万在线用户的顺畅观看。
未来展望
又是一年电商狂欢时,能做的还有更多,更多的腾讯能力不断的跟广大云计算用户的需求相适应,结合电商我们可以做的更多,电商正在面临的转型问题和最新行业发展趋势,腾讯云电商解决方案还提供多样化的产品与服务。例如,许多电商正在尝试的“直播”模式,腾讯云的视频解决方案能够提供全方位、立体化的技术支持,支持直播应用在24小时内完成快速对接,拥有完整的直播能力,实现稳定的用户体验,这将为更多电商平台尝试“直播+电商”模式提供更多可能性。
而在人工智能层面,腾讯云基于腾讯18年的社交大数据经验提供准确的图片识别能力,可对不良内容进行准确甄别,识别精确度达99.95%,节省用户95%的人力;同时,腾讯云提供智能语音服务,日核查语音时长提升31倍,服务满意度提升23%,从资源设备到人力成本全面实现优化。使用腾讯云智能语音服务后,珍爱网语音质检业务的覆盖率从3%提升到了100%,质检效率提升31倍。与传统人工方式相比,同样数量的通话录音,质检成本仅为原来的10%。
嘉宾介绍
罗志,腾讯云资深架构师。2005年加入腾讯,先后在腾讯集团内负责过系统运维、DBA、游戏运维、游戏运营规划、腾讯云售前架构师团队。目前主要致力于帮助合作伙伴评估、规划、重构系统架构,建立满足其业务未来至少2-3年发展需要的云端架构整体解决方案。