阿里无线技术架构演进之家

手机淘宝作为阿里集团移动端的“航空母舰”,近两年发展非常迅猛,用户量增长接近10倍。在2015双十一这天,我们的无线端成交占比高达68% 。在高峰期,更有超过4500万人同时在线,每秒14万笔下单;今天我们拥有超过3亿的月活跃用户,是全球最大的消费类移动APP。而这些,都对我们的系统能力提出巨大挑战。

阿里巴巴打造的不是一个软件系统平台,而是一个电子商务操作系统。这样的电商操作系统,支撑了过去10年的快速发展。同样,我们在移动端也在重新思考如何继续升级,如何在手机APP中完成生态建设。

移动互联网不仅仅是传统互联网的延伸。这个共识一方面来自于手机终端的强大特性对产品和商业模式产生的“破坏式”影响,另一方面来自于技术的变化趋势。

在Web的时代,我们说B/S架构,通常也可以理解为是C/S架构的一种变体。只不过在Client端,我们运行在Browser这样一个容器环境中,通过稳定的宽带网络接入,通过HTML这样简单、透明的协议与服务端进行通讯。由于浏览器只提供了非常简单的能力接口。所以,客户端上只有非常薄的一层,只做渲染的工作。而在这里工程师的主要工作是在集中解决兼容性的问题。 而所有的逻辑计算和我们所有要解决的核心问题,扩展性、伸缩性、稳定性、性能等等,其实都集中在后端。

随着个人计算机计算能力的发展,前端技术像Ajax、Angular这样的技术如雨后春笋般冒出,我们进入Web2.0时代。但这个时候云和端之间的边界并没有发生本质变化。

在移动时代,移动设备的计算能力发展的越来越迅猛。更重要的是,移动操作系统将移动设备上百个sensor的能力暴露了给上层的应用,使得我们能获得比在Broswer里更强的能力。这样app侧就能够做到更多的以前在Browser无法做到的事情。所以,互联网发展到今天,到了移动互联网的时代,我们真正意义进入到了一个富客户端时代,之前简单清晰的云端界限被彻底的模糊。

在这个阶段,我们原来谈论的很多架构问题,扩展性、隔离性、稳定性、性能等很多问题就不在仅仅只是服务端的问题,客户端也需要开始从架构的维度来思考这些问题。同时云端之间通讯的简单的协议,稳定的通道,也在发生了很多的变化。移动网络随时随地需要接入的特点,也对我们的基础架构提出了更高的要求。接下来我们就展开看一下这里的区别。

Rethinking Mobile Architecture-夹心面包的尴尬

但这个问题的解决之道并不像服务端。在这个过程中我们全面反思,大家看到这张图里面我们用了一个形象的比喻来体现传统的服务端软件。最下层是操作系统,通常是linux,最上层是我们的业务功能和服务。在服务端架构,我们很习惯用增加一个架构层次的方式来解决问题。例如缓存层、数据访问层等。我们在架构上按照自己的意愿去搭建不同层次的衔接环节,使架构具有足够的灵活性和扩展性。即使堆成这个样子,它依旧是非常合理的。

而移动app架构则是一个完全不同的场景。我们必须回到远古的CS架构时代,一个丧失web灵活性的时代,因为所有功能都必须集成到一个APP里面。

我称之为“看上去简单,但实际上却非常尴尬的夹心层“ 。

所以,我们需要有一个优雅的客户端架构设计,让我们能够重拾以前web互联时代的能力。在这种背景下,我们构建了手机淘宝这样一个能够支撑电商生态系统的客户端架构。概要来说,设计理念可以为总结如下几点:

第一,设计时的隔离性。这个架构必须具备设计时的隔离性,这样我们在开发、打包时才能够最大化并发能力;

第二,运行时的隔离性。这个隔离性作用在客户端,主旨在于提高端侧可靠性。我们必须确保单个模块的故障影响范围内敛到自己内部,不会引发整体crash。

第三,动态渲染能力和部署能力。这个架构必须具备一定程度上的运行期调整和动态部署能力。在这个过程中,我们构建了一个速度更快的类HTML5渲染引擎;同时,我们也实现了一个私有的容器,支持模块的动态加载和更新。坐拥这两大利器,线上问题的修复和新模块的自动更新都脱离了版本发布的依赖。不幸的是,由于AppStore和GooglePlay尤其是前者较封闭和严苛的审核制度,我们的动态部署能力常常无法施展,尽管在中国的安卓应用市场上已得到充分的使用。

第四,最大力度的兼容性保证,以确保我们在系统版本升级过程中不出现整体的阵痛。

整体的架构反思过程中,我们重新定义了客户端和服务端(云端)的边界。一旦确立这样一个合理的架构,就能保证我们的移动APP在相当时间内,持续高效的支撑业务发展。

Challenge in mobile architecture -移动架构的挑战

另一个挑战来自于不稳定的移动网络环境。PC时代,我们访问网站的接入条件是相对恒定的,所以在开发时很少考虑网络对于用户体验的影响。

但是移动APP则不然,尤其是在中国,基础的移动网络环境并不好,而且我们有很多用户的访问是发生在地铁、公交车这样的环境下,移动基站的频繁切换进一步增加了网络的不稳定。从手机淘宝的数据可以看出,我们每天活跃用户中有15%来自于类似2G这样的弱网环境。如果端到云的连接不稳定,有高延时,那么所有的用户体验都无从谈起。

基础网络的效率就像一辆列车,时延是火车的速度(启动时间),而带宽就像火车的车厢装载量,整个传输的物理链路就像火车的铁轨。我们面对的移动网络条件非常复杂,既有高铁这样先进的传输渠道,也有不少老旧缓慢的绿皮车还在服务很多用户。我们的目标很简单,就是想让所有用户都能在手机淘宝获得流畅的体验,不论你坐的是“高铁”还是“绿皮车”。

下面这张图,能够让大家更加直观的了解中国的移动网络环境。它描述了从用户到IDC的端到端的路由情况,不仅数据传输耗时长,而且丢包率高,同时安全性也相当糟糕,DNS劫持、内容劫持在中国就是家常便饭。

因此,我们在改善网络通道上做了很多的事情,探索突破运营商基础网络的局限性,力争为用户创造极致的购物体验:

减少网络交互:使用更高效的通讯传输技术,提高了连接复用,减少roundtrip次数;

降低流量:通过更高效的压缩技术和同步技术减少了网络的流量;

更安全:在不降低体验的基础上通过对tls1.3的优化提高数据的安全性;

以上整体介绍了阿里对移动时代架构重新思考的过程。基于这些思考,我们对架构演进的方向提出了以下几个核心要求:

隔离性:传统的移动App的开发和集成方式并不适合企业级开发。一个具备很好隔离性的模块化架构是大规模并行开发的基础。

动态性:互联网追求唯快不破,从架构上将我们希望能够在富客户端时代同样也能保留web的轻盈和灵活。动态性是很重要的前提。

极致的网络体验:全双工的接入平台保障了接入层的伸缩性和稳定体验,不管用户在何种网络环境下都能拥有顺畅的体验。

相比PC时代,移动开发非常复杂。用户既想要一个惊艳的体验,又期望安装包尽可能小。那么开发者们就既要具备如web时代的轻量级开发部署能力,又要能获取到native的能力、性能和扩展性。

平台级产品的并行开发和独立部署架构

一个好的架构需要支持并行的开发、独立的部署,这样才能够满足灵活多变的业务增长。同时,发挥航母级的平台优势,支撑更多元的客户端应用,产生规模效应,拓展商业边界。所以,我们的解决方案是在native平台(准确来说是Android)上构建一个隔离性的架构,在此之上,功能尽可能的切割的越小越简单越好;同时,在不损失native性能和能力的前提下,我们也引入了更多的web特性到移动开发中来。

我们的客户端容器架构设计的原则是“everything is a component”,在Android平台上,基于我们的隔离化容器架构设计,我们既可以提高在集成期的多团队协作效率,又收获了在运行时的灵活部署。通过把庞大的工程拆分成一系列的独立服务,以及我们具备的容器自升级能力,就不需要同时编译和集成所有的功能模块。一旦一个模块完成了测试,我们就可以按需对他进行升级。另外,我们的APP还具备线上可热修复的能力。

跨平台的思考引发了敏捷性(WEEX)

另一个残酷的事实是,我们所有的功能需要在Android、iOS和H5上重复实现。当我们面对客户端包大小,方法数的限制的同时又需要支持200+的功能升级、多平台持续交付、覆盖度、容错、热修复等等庞杂的事情 。所以在设备和OS的限制下做伸缩,我们需要一个超轻量灵活的解决方案,能够基于某个高度重用的东西上进行低成本的并行开发、快速发布。

这套方案跟业界相似方案的效果对比如何呢? 首先我们选择了一个标准场景:渲染一个定制化的图片列表,展示200+的页面。

下图是我们实际测量的数据情况,包含渲染时间、内存消耗、CPU消耗和帧率。我们并不是想通过这个图来强调我们比所有其他方案都好,因为场景不同所有效果也会有所不同,我们想说的是能通过这么一个方案取得性能和动态性的双丰收。

灵活高效、安全稳定的网络调度服务(ACCS)

接下来,我们需要解决的是端到端的伸缩性。随着手机淘宝业务的扩张,我们的活跃用户也在不断的增长,为了提供更好的端到端的能力,我们必须提高连接服务的质量。这得益于在以下四个方面的努力:

作为服务消费方,我们不能决定网络的延迟和带宽,但是我们可以努力减少round-trips。

阿里的后端系统采用多数据中心多活的架构部署方式,所以无线网关需要具备正确的、灵活可变的用户调度能力。

我们把网络能力整体封装成了标准的SDK,一方面以确保我们的APP群能够一起享受整个优化的收益,另一方面也确保了H5页面能够使用到Native通道的能力。

在阐述完客户端架构和网络架构之后,我们再次把目光聚焦到后端服务上。2010年左右,我们开始考虑多数据中心的事。一方面,我们做到了服务和数据的水平扩展。随着业务规模的不停增长,我们的应用伸缩规模也越来越庞大,单点不稳定性带来的风险也成倍放大。另一方面,部署的应用越来越多,覆盖电商、物流、大数据等等,而一个城市能够提供给我们的空间毕竟是有限的。更加致命的是,如果单机房发生故障,这对于电商来说基本上不可接受的,所以我们在2011年开始进入双活乃至多活的改造。

架构是非常值得分享和讨论的,好的技术架构能够持续支持伟大的商业梦想。所以今天阿里具备的无线能力,很多都将会通过开源或云服务和外界共享,希望回馈整个社区。同时也希望我们的技术思考能够给大家带来启发。大家如果感兴趣,欢迎持续关注我们的Github地址。

技术发展将从面向生产效率的IT时代进入面向智能的DT时代,数据最终将成为水电煤一样的基础设施 。在这样一个背景下,我认为移动时代只是一个过渡阶段,这个阶段我们的所有工作其实都专注在三件事上:

首先,各种设备最终都会具备联网的能力 ,我们的基础设施要做好准备。这就是为什么我们会做ACCS这样的亿级无线云平台,打造强大的无线基础设施,迎接万物互联时代的到来。其次,云和端的界限势必会经历一个越来越模糊再到重新清晰的过程。过去w3c和浏览器厂商付出了大量的努力,传统互联网是一个开放分享透明的生态。现有的移动终端平台其实并没有为超级App做过任何准备,反而很多时候限制了超级App的发展。这个过程我们也很愿意参与进来,让移动互联网也能够更加开放分享和透明。

最后,终端不应该仅仅是被动的数据消费,而更重要的是成为更多维度的数据生产者。

THE END
0.DT时代的政府数字化转型(咨询执业笔记)单从“数字化”或“数字化转型”的名称来看,IT时代便有了这样的提法,但IT时代与DT时代的数字化转型有着本质区别。IT时代的数字化主要以数字产品或设备的使用,以及信息化产品的应用为特征,例如生产数字化、办公数字化等;DT时代的数字化转型的最大特征是数据化,通过云计算等数字技术挖掘大数据背后的新知识、新价值,jvzquC41yy}/lrfpuj{/exr1r181eAjc;f;e2o
1.DT观察DT时代的核心价值是什么?听听马云和彭蕾怎么说DT时代的模式升级与范式转移之文化篇 宋斐 潘永花 田丰 技术创新带来商业变革,商业变革呼唤制度创新,同时也将带来新的生活方式、新的文化惯习、新的商业文明。 关于DT时代的新商业文明、生活方式、文化取向,存在着各种不同的识见。然而,当越来越多的人们,逐渐习惯于在互联网上展开他们的生意与生活,逐渐习惯于把全球jvzquC41o0gmk‚zp0eun1‚zpsk5bt}nengy06;53;
2.女性创业大会召开马云:DT时代女性拥有更大机会时政原标题:女性创业大会召开 马云:DT时代女性拥有更大机会 5月20日,首届全球女性创业者大会上,阿里巴巴集团董事局主席接连不断地把赞美抛给现场的上千名女嘉宾。在他看来,世界正在发生天翻地覆的变化,女性已经兵不血刃地从厨房、卧室抢占客厅,抢占政界、经济界等各个领域的主要舞台。 jvzq<84rqnouklx0rguqnn3eqo4dp8s1427619:431i82@83/4=15=:530nuou
3.[新闻全方位]IT时代和DT时代的区别是什么?换一批央视榜单 1 面对面 郑立:还原隐蔽战线的珍贵细节 2 每周质量报告 医疗美容“渠道佣金”乱象调查 3 首位外籍人士当选“绍兴好人” 中国缘 4 北约正准备与俄罗斯发动战争? 防务新观察 5 美国称“国际部队”不久进加沙 今日关注 查看更多 换一换听jvzquC41vx4de}{0eqs0x8{41XOEG:9549863;97299727mvon
4.《智慧之巅:DT时代的商业革命》(阿里研究院)简介书评解读DT时代商业生态的全民读本。 阿里商业评论精编版,阿里内刊首席公开! 车品觉 曾鸣 汪向东 段永朝 吴甘沙联合执笔 马云、曾鸣、汪向东等大咖联袂推荐! 《互联网 :从IT到DT》姐妹篇 作者:阿里研究院出版社:机械工业出版社出版时间:2015年12月 手机专享价 jvzq<84rtqjve}3fcpmecwl0eqs04<=55;=50qyon
5.还记得马云说过的DT时代吗?阿里正构建物联网生态加速它的到来“人类正从IT时代走向DT时代。”两年前,在一场大数据产品的推介会上,阿里巴巴集团创始人马云判断。 “物联网将是互联网的下一个风口。” 2月29日,在阿里巴巴物联网生态峰会上,阿里巴巴集团CEO张勇表示。 据内部人士透露,早年间阿里巴巴推出云计算、大数据战略时,并没有考虑到其在物联网领域的布局。无心插柳,如今jvzquC41yy}/frfpmgpj0lto1pkxu87755
6.在高dI/dt时代设计开关模式电源电源/新能源如果您从代工厂制造设备,您会从他们那里获得 PDK(工艺设计套件)。 结论 在高dI/dt 时代,协同仿真是必须的。电磁仿真可以优化开关损耗,并且可以通过寄生控制降低 EMI。电热模拟允许优化布局以实现更好的热量分布,并有助于识别潜在问题或改进。结果的准确性非常重要,它严格依赖于用于模拟的模型。jvzquC41yy}/gujehctt0lto1cxuklqg1:904974146349<4:3>79B6;0jznn
7.齐向东:DT时代需警惕加密攻击这只“灰犀牛”“ DT时代,加密是数据传输的重要保护手段,但也成为黑客攻击的最佳隐藏手段,是我们必须警惕的‘灰犀牛’。”在9月13日奇安信集团举办的流量解密编排器新品发布会上,奇安信集团董事长齐向东表示,在加密流量这只“灰犀牛”面前,解密编排成为DT时代的安全基石,能够帮助政企客户解决加密流量攻击带来的巨大威胁。 jvzquC41yy}/eww0ep5uglm1vgiirq442481;:81v46349>35a;38959;;7/uqyon
8.DT时代,为大数据安全提供永不缺席的保护存储管理newDT时代,为大数据安全提供永不缺席的保护 大数据之所以拥有如此大的魅力与诱惑力,是因为它已经从搜索引擎、电子商务,延伸到与我们息息相关的生活与工作,例如你在银行开户填写的个人信息,或是医院就诊所留下的医疗档案等私密且深度关联我们的数据。 大数据之所以拥有如此大的魅力与诱惑力,是因为它已经从搜索引擎、电子jvzq<84uvqx.cpj0|joekwl0ep5tvxw/cik049671363:8828882:7xjvor
9.DT时代,大力推动交互式人才培养模式落地见效新华日报DT时代,大力推动交互式人才培养模式落地见效 有人说,当前人类社会进入一个新的能源时代,这个时代的核心资源已经不是石油,而是数据。如果IT(Information Technology)时代诞生的是制造,则DT(Data Technology)时代诞生的是创造;IT时代诞生的是知识,则DT时代人类将迈入智慧时代,而数据已经成为互联网时代的核心资源。jvzquC41zj4yjk~0pgz0rl4eqp532;9231661ltpvgtua:7:55=40qyon
10.挖掘DT时代“新原油”成都加快布局“大数据”挖掘DT时代“新原油” 成都加快布局“大数据” 日前出炉的成都“产业新政50条”明确提出,要强化数据资源支撑,推进数据资源的开发利用。搭建全市统一数据交换共享平台,提升政务数据共享应用水平。企业和社会机构面向行业应用构建专业大数据服务平台,主动采集、加工并开放数据,形成以数据平台为核心的产业加速器,可按平台投资jvzq<84yyy4djrscpg}t0lto1o5dl872395196831:8:3A730unuou
11.专访中兴力维副总裁曾涛:DT时代——力维云数据驱动高效运营摘要:马云说,“我们现在正从IT(信息科技Information Technology)时代走向DT(数据科技Data Technology)时代。”数据将影响我们生活的方方面面,企业的IT运维也不例外。“过去传统运维的模式没有太多的检测手段、工具和平台。仅依靠管理者、领导的责任心,工程师技术和技能来做运维,但已远不能应对当前绿色环保、安全高效节能jvzquC41yy}/ertvkokt0lto1t}gv86:75660qyon
12.双11前统一企业携手阿里零售通共建智能分销网络拥抱DT时代双11前夕,阿里巴巴零售通和统一企业(中国)投资有限公司于杭州正式签署全国战略合作协议。双方未来将在智能分销体系、品牌建设、精准营销等方面展开多领域深化合作,双方的牵手,标志着统一企业新零售和数字化战略进入新的发展阶段。 统一企业自创办人高清愿先生以来一直秉持“三好一公道”的经营理念,致力于给消费者提供优质的jvzq<84yyy4dg7hp1z}{z8lpu|5hf|142783:4261z32:<332:`4?<79;=40|mvon
13.看阿里人从IT时代走向DT时代的经验之谈!最近一直在看《大数据之路:阿里巴巴大数据实践》一书,读完之后感觉受益良多。第一,对于整个大数据的体系有了更多且清晰的认知;第二,对于不同系统的逻辑处理方式给予了引导;第三,毕竟是阿里多年技术的累计产出,而且都是阿里技术大牛写的,干货相当多;最后,如果对于大数据方向想有更深入的了解,推荐大家阅读! jvzquC41dnuh0lxfp0tfv87623e96:;22:=0c{ykenk0fnyckny03<=554;16
14.从数据来源、数据生态、数据技术、数加平台等方面,漫谈阿里大数据目前人人都在谈大数据,谈DT时代,但是,大数据是什么,每个人都有自己的一个看法,好比盲人摸象,每个都认为自己摸到是真正的大象。我也担心我所看到的,只是大数据的冰山一角,毕竟,将引领整个人类下一次变革的大数据,不是几篇文章就能说清楚的。 目前人人都在谈大数据,谈DT时代,但是,大数据是什么,每个人都有自己的一个jvzquC41yy}/7:hvq0ipo8ftvkimg8:386670qyon
15.微计算微计算_DT时代物联网技术应用项目平台,DT时代微计算主要应用于物联网,物联网技术,物联网应用,物联网项目,物联网平台,利用大数据、云计算、DT技术、微信小程序等提供智慧校园、智慧景区、新零售、智慧医疗等行业解决方案jvzquC41xlyvcw3eqo5
16.数字经济时代企业制胜的命脉不在管理,在于战略(1.6万字重磅长文在DT时代,像国内的BAT、TMD等互联网以及平台型企业,短短几年乃至不到20年就成为千亿级或巨无霸企业,像国外的谷歌、脸书、亚马逊等都是在短短20年左右的时间一跃成为世界级企业,并有了深厚的技术积淀,以谷歌为例,它由几个斯坦福大学的学生创建,到2018年刚满20周年,却在人工智能方面处于全球遥遥领先的行业地位。 jvzquC41qrookxs0jg~vp7hqo1813B224/671:>829;9:<3jvor