带你探秘1号店百亿业务背后的移动IT架构

原创
网络
在WOT2016移动互联网技术峰会上,来自1号店的高级架构师施华, 同与会者交流了1号店在性能优化方面的心得体会。

【51CTO.com原创稿件】在WOT2016移动互联网技术峰会上,来自1号店的高级架构师施华, 同与会者交流了1号店在性能优化方面的心得体会。

[[174700]]

  移动互联网的生命力

  移动互联网近两三年处于高速发展期,施华认为促成的原因有三点,一是移动硬件尤其是高性能智能手机的快速发展和普及,二是网络环境的日趋完善,三是移动互联网应用场景的日益丰富,三者共同促进移动互联网呈井喷式发展。

  他表示,与移动互联网相同步的是电商的移动化,三年前、四年前1号店的移动站只有百分之几的占比,通过这两三年的发展现在已经达到70%,促销的时候甚至会更高。这也是受到移动互联网发展的影响,作为一线的移动电商人员对此要有基础认识。同时施华也指出,在流量从PC端慢慢转移到手机端的过程中,以前集中在PC端的问题,也随之转移到APP端,这些问题会驱动着技术人员开始着手整个架构的优化。

  1.0时代问题百出

  施华介绍到,在1号店移动架构1.0时期,由于移动端业务占比较小,获得的投入并不多, APP基本是移动后台提供所有的APP接口服务,技术人员直接读写它的库。核心业务如购物流程、详情页等,技术人员直接基于接口做AS封装,开发资源的瓶颈非常严重。

  到中期时, APP功能基本慢慢与PC端同步,每个模块的业务复杂度也越来越高,核心业务开始享有单独资源,给APP提供接口服务。随之而来的问题是整个服务器端非常分散,业务成长之后导致所有的部门都会给APP提供接口,服务暴露在外网就需要考虑到安全问题,如基本控制、协议监控日志等。而且这种架构导致的问题是重复的冗余实现,从公司整体角度而言是一个资源的浪费。另外一个问题是数据协议不统一,如果后续的协议有升级改动,则很难推动。最终导致架构严重缺失。

  “还有一个比较严重的问题就是无线平台的日志无法统一,由于接口分散,各个业务做自己的日志系统,从总体看线上一旦出现问题无法定位,做问题的分析。”施华谈到,“流量布局中服务端降级也存在无法统一的问题,由于每个接口都可以自己做服务端降级,在多个接口联动的业务场景中,很难实现多个接口同时做业务降级。”

  2.0时代高效支撑业务

  为了高效地支撑业务,2014年,1号店开始着手构建移动端2.0架构。

  施华告诉听众,2.0架构做的最重要的一个动作就是把整个移动端的流量集中到一起,有一个统一接入层。接入层里面统一实现验签、协议、风控、日志、监控、干预等功能。

  他一一解释到,验签实现的是最基本的接口安全,处于整个接入层的最前端。

  协议主要是指APP端约定好的一些接口协议标准。1号店还有一些扩展协议字段,通过这些扩展协议字段做到服务器端组强制干预的流程。施华透露,主动干预比较简单,但非常实用。如果要干预一个规则,开发人在后面配一个干预策略,APP端就实时生效了。

  风控主要是确保业务风控安全的问题。1号店目前风控可以做到后台配置即插即用,技术人员通过一个后台可以对不同的业务做不同的风控规则配置。“为了防止黄牛党、羊毛党抢占公司投放资源,必须加强业务风控。”当然,施华也强调,单纯去做强对抗是达到不了非常好的效果,不可能用强对抗解决所有的问题。还是要靠后端的统一部署。

  监控对任何线上系统是必不可少的,1号店会对所有APP接口做各种业务监控。例如整个接口平均耗时的实时监控、超时率的实时监控,用户正常返回的实时监控。

  在2.0架构流量集中后端业务的接入层,所有的核心业务都会以一个适配器的形式接进来。整个公司的核心业务会按照协议标准接入适配器层。这样他们只要专注于自己的业务,这样就无须各自为战,单打独斗。

  施华表示,目前基本APP端有200多个业务接口,除非有新增接口,否则这一层基本不用改,如此简单的部署也保证了整个系统的稳定性。

  记者了解到,像1.0时期的降级问题在2.0时期也得到了有效解决,“接口降级这一块主要还是依赖于我们大数据对于整个接口界别的业务监控。”施华告诉记者,1号店现在有一套自动的接口降级恢复机制,可以避免烂接口通过长时间消耗拖宕业务。同时也会发送监控预警,提醒负责人快速去干预。“当然,也会有人工强制干预秒级恢复的按纽。”

  提升性能的几处心得

  施华透露,现在1号店的日志非常丰富,所有APP端流量经过后台会全量接入,包括每一层请求的出参、入参,所有相关维度信息都会被一条旁路持久化下来。持久化之后会做一些后期的数据挖掘,也提供给业务方做各种支持。

  “1号店还有一条实时更新的链路用于实时分析,接口的耗时、成功率、波动都能被识别到。所有的接口如果发生波动的话,大概会有10秒到2分钟的时可以识别并快速给接口方做报警。”

  在1.0时代有一个痛点,就是当用户发生问题了,打电话投诉,客服会让技术人员帮助定位问题。而真实的场景是技术人员很难从日志分析根本原因,特别是关于业务场景的问题。在2.0时代的解决办法是全量日志查询,技术人员通过各种维度如用户维度,设备维度去过滤数据,然后按照时间轴顺序,把所有访问日志进行排序。当用户再次遇到问题时,技术人员只要看用户操作的时间点,就可以通过他详细的入参、出参,在几分钟之内定位90%的问题。“日志是整个移动端架构里面非常核心的内容,像降级、风控、干预基本都是基于日志来做的。”

  对于移动端用户而言,整个使用最重要的感受就是快速响应,1号店对此可以做到整个流程只有个位数毫秒的延迟。如何做到呢?这首先后端需要有大量的支持系统,例如风控规则的拦截,先在征信数据部分把基础工作全做好,然后只基于后台配置的拦截规则来做一个匹配就可以了。1号店后端有一系列的支持平台,如密钥配置、系统配置、干预规则等。

  施华从客观角度坦言,早期1号店架构比较混乱,现在2.0架构则能非常高效地支持业务。做架构主要考虑两点,一是如何更好地支撑业务,他认为能够快速实现所有功能,就是对业务***的支撑。二是要从功能上面挖掘数据的价值。

  本文由施华于2016年8月,在WOT2016移动互联网技术峰会性能专场《1号店移动端如何有效支撑百亿业务》主题演讲整理而成。WOT2016大数据峰会将于2016年11月25-26日在北京粤财JW万豪酒店召开,届时,数十位大数据领域一线专家、数据技术先行者将齐聚现场,在围绕机器学习、实时计算、系统架构、NoSQL技术实践等前沿技术话题展开深度交流和沟通探讨的同时,分享大数据领域***实践和最热门的行业应用。了解WOT2016大数据技术峰会更多信息,请登陆大会官网:http://wot.51cto.com/2016bigdata/

【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

责任编辑:周雪 来源: 51CTO
相关推荐

2012-12-17 10:34:22

厂商稿件

2010-10-13 09:37:45

2010-11-12 09:04:03

TwitterAPI

2013-06-24 10:24:59

2016-11-15 07:56:13

双十一云计算科技新闻早报

2015-08-06 11:45:28

电商混合云运维实践

2012-05-24 11:22:58

2015-08-05 09:38:18

1号店混合云运维

2012-05-25 10:16:57

2013-02-18 13:28:19

谷歌Gmail

2013-03-01 10:45:36

Nike大数据

2024-04-01 13:18:15

App架构服务端

2017-03-02 13:23:53

订单系统水平分库

2016-11-10 09:13:17

双111号店

2016-03-14 09:12:43

架构本质发展

2014-12-31 16:14:57

曙光超融合架构

2009-06-10 09:21:45

Google Wave架构

2012-05-04 23:24:10

应用

2013-10-28 15:48:22

2018-07-03 10:32:49

技术
点赞
收藏

51CTO技术栈公众号