当前位置: 首页 > 科技观察

手机淘宝移动端接入网关基础设施演进路径

时间:2023-03-21 18:05:15 科技观察

移动网络优化是超级APP永恒的话题,对于无线运营商来说更是如此。网络请求体验与用户购买行为密切相关。手机淘宝已由HTTPAPI网关升级,2014年升级支持SPDY,2015年自研高性能、全双工、安全的ACCS(阿里云通道服务)处理双网主流量-十一战场,无论是基础设施还是网络的演进。在调优、协议优化、异地多活、网络调度等方面有很多宝贵的经验可以分享给大家。ACCS基于无线场景精心设计的双工、安全、低时延、开放的移动统一接入层服务,双十一稳定高效服务近2亿在线用户,支撑4500万在线用户高峰。连接,这背后的故事是什么,我们的想法是什么?1、业务快速发展下的需求回顾一年前,2014年双十一移动电商业务开始兴起,2014年双十一移动端交易额243亿占总额的42.6%57.1亿,业务的快速发展希望更积极的推送触达用户。一些新的玩法和互动形式需要连接买家和买家、买家和卖家、买家和专家,因为没有有效的渠道能力,商家采用不停轮询服务器,给服务器造成不必要的压力,以及也浪费了用户手机的电量。关键在于大促当天的无谓要求。如果太大,甚至会造成后端集群限流,影响用户体验。信息传播形式变化的背后是移动性带来的新技术特征的结果。过去几年,移动电子商务从无到有,而手机淘宝一直是这一领域的先行者。从最初的WEB商业形态的复制,到移动功能、更多交互形式的不断涌现,以及移动电子商务向社交化、娱乐化的不断推进,如今,单纯的商品展示架形式已经不能满足商业需求。.在业务方面,要实时触达用户,充分发挥移动端的特点,利用消费时间的碎片。事实也证明,用户的消费时间随着移动化的进程不断变化,逐渐分散到全天的碎片化时间。同时,货架形态也在向社区化、娱乐化方向发展,这对网络层连接用户提出了更高的要求。更多的媒体形式和展示方式对网络层提出了更多样化的需求。手机淘宝可以关注新闻盒子、微淘、淘友。这些产品都是业务变革的体现,业务变革倒逼技术进步。2、移动网络环境依然严峻。移动网络的速度在过去几年有了很大的提升,但是网络环境的多样性和差异性使得移动网络的环境更加复杂。去年双十一之前,我们经常会遇到一些移动网络。网络劫持的事情。解决网络劫持问题的效率很低。需要寻找用户,再现场景,甚至寻找网络工作者和运营商配合调查。调查需要几天时间。同时,在我们的舆情反馈中,总是看到用户说——“某页面正在加载,页面打不开,请求很慢,某功能打开很慢”。我们过去在面对这些问题的时候都不是很好。唯一的办法就是一只一只地抓老鼠扫地雷,非常被动。许多网络问题偶尔会发生。一旦错过,就无法找到它们。背后的原因有很多:运营商问题机房部署原因ClientSDKBug网络弱和网络抖动DNS劫持和数据篡改PC时代访问网站条件相对恒定,所以网络对用户体验的影响很少在开发过程中考虑。但是手机APP就不是这样了。尤其是在中国,移动网络的基础环境并不好,我们很多用户的访问都发生在地铁、公交等移动环境中。移动基站的频繁切换进一步增加了网络流量。不稳定。从手机淘宝的数据可以看出,我们的日活跃用户中有很多来自2G这样的弱网环境。如果端到云连接不稳定,延迟高,所有用户体验都会丢失。基础网络的效率好比火车,时延好比火车的速度(发车时间),带宽好比火车的载重能力,整个传输的物理链路好比火车的铁轨.当前现实条件下的移动网络情况非常复杂。不仅有高铁等先进的传输通道,还有很多老旧慢行的专线车还在为很多用户服务。我们的目标很简单。我们希望所有用户无论是乘坐“高铁”还是“绿皮车”,都能在手机淘宝上拥有顺畅的体验。下图可以让你更直观地了解中国的移动网络环境。描述了从用户到IDC的端到端路由。不仅数据传输耗时长,丢包率高,而且安全性也很差。DNS劫持和内容劫持在中国很普遍。因此,我们在完善网络渠道方面还有很多工作要做,探索和突破运营商基础网络的局限,努力为用户打造极致的购物体验。3.ACCS总体架构为了满足移动电子商务业务快速发展的需要,我们决定打造世界一流的网络接入服务,建设与“水、电、和煤炭”。这样的基础设施需要实现四个目标:“双工、低延迟、安全、开放”。在这四个目标之上,就是围绕这个接入服务的配套运维体系,帮助终端用户在端上获得良好的体验,帮助开发者快速搭建自己的业务。如图1所示,我们将整个接入服务分为两层,接入网关层和应用网关层。接入网关负责维护连接、分析消息和分发消息。应用网关实现了各种应用层协议:API、SYNC、RPC、PUSH等。应用网关的背后是具体的业务系统。同时,我们建立了统一的调度服务,而不是使用传统的DNS。调度服务是我们的控制中心,通过它我们可以有力地指挥我们的客户端,不会受到DNS污染的影响。服务端分层架构对应的是客户端SDK。最底层的统一网络库SDK集中了我们的网络优化策略,为各种应用网关技术的SDK提供API。图1基于上述开放架构,业务方可以选择直接开放特定的后端服务来连接不同的应用网关,而无需了解网络背后的细节,并通过应用网关等提供的开发工具快速生成客户端代码作为API网关。业务方也可以基于这个接入层设计自己的协议。统一接入层集中管理用户的设备和上网状态,提供信息的双向传输。如下图所示:网关将致力于解决中间网络的通信,为上层业务提供优质的双向通信能力。4.稳定性和容灾稳定性和容灾是服务端中间件永恒的主题。统一接入层等融合网关的优势与风险并存。一旦入口出现故障,影响用户的范围是难以想象的,如何让它更加稳定是一个巨大的挑战。4.1网关架构优化对于一个统一的网关,连接的业务网关的信息传输特性是不同的。全天大部分业务都比较顺畅,但个别营销业务会发布海量的此类信息会议,占用网关大量资源,影响用户的正常访问。例如推送服务需要通过网关推送2亿条消息,这些消息都需要在短时间内推送,而网关是为正常的用户交互提供服务,海量信息的推送和正常的用户交互是相互排斥的。争夺资源最终会导致正常的用户交互失败,这对业务来说是不可接受的。基于以上情况,考虑将整个网关在部署上分为两个集群,一个集群处理正常的在线用户访问,另一个集群处理海量信息的推送。如下图2所示,这样就避免了不同业务形态对统一网关的影响,实现了不同业务形态的隔离。图-24.2远程多活阿里这两年一直在做远程多活的架构。在异地多活的整体解决方案中,统一网关承担着快速引导流量的职责,这也是本方案顺利实施的重要一环。异地多活是多机房的整体解决方案。多个机房同时在多个区域等价。按用户维度划分,多个机房共享所有用户的流量;当单个机房出现故障时,可以降低故障机房的流量。快速迁移到可用机房,减少故障恢复时间。4.2.1无线接入层单元化协商机制下面看一下web端在这种异地多活中的实现方式保存在Internet上的分发规则分发到后续单元机房。无线端也一样吗?客户端能力强大,可以更加灵活;CDN分发节点带来更多机器成本;对于需要双工通信能力的客户端,消息传递更加复杂。这些都是我们和WEB思考不一样的地方,我们能不能做一些不同的选择呢?图-4如图-4所示,我们利用客户端的强大能力,利用协商机制完成用户请求到不同单元的正确分配,包括以下几点:当前用户所属的单位。当请求到达服务器时,服务器判断用户的归属单位是否正确,如果不正确则将用户重定向到正确的单位。当前请求由服务端网关通过跨单元调用保证业务的正确性。当客户端单元更新时,后续请求将被发送到正确的单元房间。4.2.2无线接入层统一旁路调度协商机制貌似很好,这里投下重磅炸弹,机房入口网络坏了!Figure-5图-5,外网不可用,协商故障单元的用户不可能恢复不了,这时候bypassdispatchservice就派上用场了。图6如上图6所示,我们现在设计的调度中心承担了单元化旁路调度的职责。当app访问的单元无法访问时,app会访问不同单元的调度中心,询问用户所属单元,从而获取可用的单元节点,将用户切换到正确的单元。该方案同样适用于单机房接入层网关不可用的场景。4.2.3应用层网关不可用。某单位机房应用层网关不可用。这时候需要等待应用网关排查问题的时间比较长。为了实现最快的故障恢复,我们使用交换机修改接入层转发规则,将流量切到可用单元。如图-7图-75所示。端到端网络优化5.1统一网络库在网络优化之初,我们希望建立一个通用的网络库。该网络库包括策略、httpDNS、SPDY协议和其他系统网络优化需求。到处。上层的api网关请求逻辑、推送逻辑、上传下载逻辑都是针对这样一个通用网络库的业务。需要在分层上将通用网络库与上层应用逻辑分离和完全解耦,这对于网络长期持续优化是必要的。该架构如下面的图8所示。图8中的架构分离使我们能够以更系统的方式更多地关注无线网络优化。统一网络库的几个重要特性:灵活控制客户端网络行为策略(连接建立、超时处理、请求协议、是否加密)包含HTTPDNS,支持远程多活更细粒度的控制和调度(域名级别和域名参数级别)1、2、3均由网络调度中心集群控制。我们希望这个可以独立于业务。去掉阿里的一些业务属性后,大家可以把这个模块理解为HTTPDNS。可以理解为我们在HTTPDNS之外做了。关于网络优化的大量端到端工作。5.2最近最快访问基于网络库,我们实现了一套智能学习网络策略。智能学习客户端建立不同网络环境下的连接策略。当用户回到该网络环境时,会给出快速连接的最优策略,并定期更新或清除本地缓存的历史最优网络策略。为了更快的建立连接,在各自的网络下有更好的穿透力,接入服务器支持多种协议和端口,客户端在建立连接时可以以非常快的速度访问网络。我们的一个重要指标是打开客户端30秒内的网络请求成功率,这就是关注连快给用户体验带来的价值。基于调度中心,我们搭建了智能大数据分析平台,采集客户端网络请求过程中的连接建立时间、首次收包时间、整包收包时间、ssl握手时间等重要指标。基于这些指标,分析网络的异常区域,调整我们最近最快访问的访问规则,甚至改进IDC和CDN的建设。5.3弱网优化和抗抖动在弱网优化中,我们尝试了QUIC,在网络延迟高、丢包严重的情况下,其表现优于TCP。在线手机淘宝灰度版改用QUIC后,平均RT收益接近20%。考虑到QUIC在移动网络中可能存在渗透问题,未来我们将采用基于SPDY和QUIC辅助的方式来完善我们的网络链接策略。同样,在一些较差的网络环境中,我们采用长短链接相结合的方式。当长链接遇到请求超时或者穿透力差的时候,我们使用短链接HTTP和短链接来请求数据(HTTP协议尤其在移动网络环境下,HTTP1.0的穿透力最好),这样可以保证用户体验在某些极端情况下达到最大程度。数据如图9所示。网络切换和网络抖动情况下的技术优化也是很重要的一个方面。我们经常会遇到移动设备网络切换、信号不稳定的情况。这种情况下如何保证用户体验呢?对于这种情况,我们的想法是有一个合理增加重试的策略。我们以是否发送到socketbuffer来划分网络请求,将网络请求的生命周期分为“从请求开始到发送到socketbuffer”和“从发送到socketbuffer”两个阶段到请求的末尾”。如果第一阶段请求失败,将有助于业务请求根据业务需要进行重试。阶段2请求失败仅提供读取操作的重试能力。想象一个场景:用户在进电梯时发起数据刷新请求,进电梯时由于网络抖动导致网络断开。这时候,我们可以制定一个合理的重试策略,使得当用户离开电梯时,网络请求很可能会重试成功,帮助用户获取到想要的数据,提升用户体验和客户端的网络抗抖动能力。5.4加密传输1S时钟法众所周知传统的HTTPS握手过程非常繁重。当网络质量不高时,连接建立速度太慢,用户体验极差,甚至无法完成安全握手;但是,从安全的角度来看,我们需要一个安全的传输通道来保护用户的隐私数据。安全与网络的冲突摆在我们面前,需要在技术上有所突破。因此,我们构建了一套smile-ssl技术,参考tls1.3协议,通过合并请求优化加密算法。通过session-ticket等策略,我们终于在安全和体验之间找到了平衡点。在基本不牺牲用户体验的基础上,我们实现了安全传输的目的,同时大大提升了服务器的性能。通过技术创新,我们实现了无线网络加密传输下的1S时钟定律。6、手机淘宝2015年双十一入网工作关键词总结与感悟:ACCS、网关架构优化、异地多活、弱网优化与抗抖动、加密传输1S时钟规律一些感悟:入网有任重而道远,对于像手机淘宝这样的亿级UV无线电商平台来说,稳定才是根本。接入层架构的调整要么基于业务需求(能够适应业务变化的架构是最合适的),要么可以大大节省成本,提高稳定性。架构的演进必须迭代,不能一蹴而就,注重积累和反思。移动接入层解决方案可以更多地利用客户端能力,这是无线相对于PCWeb的优势。近两年无线网络的网速提高了,但网络环境也变得更加复杂。万物互联,设备随时随地在线,运营商的复杂性将给移动网络优化带来更多挑战。端到端的网络优化与运营商的推进合作任重而道远。