当前位置:网站首页>6年技术迭代,阿里全球化出海&合规的挑战和探索
6年技术迭代,阿里全球化出海&合规的挑战和探索
2022-07-01 13:19:00 【InfoQ】
一、业务发展历程
1.1 业务背景

- 上图展示了当前阿里全球化业务重点覆盖的国家/地区,可以看到业务重点国家/地区横跨亚、欧、美三大洲,业务诉求差异导致技术方案差异明显,一套端到端的技术方案不可能完美支持所有的国家/地区,但是差异化的层次组合/定制被实践证明可行,这对我们【系统的标准化】提出了要求;
- 粗放收割的时代已经过去,在精细化运营时代,应对用户体验/合规监管,更靠近用户的技术方案部署,是本地体验构筑的基础,这又对我们【系统的轻量化】提出了要求;
- 随着数字化时代的日益深入,数字化/智能化正越来越深刻地影响和改变着人类社会的方方面面。作为全球化业务,不论我们的用户来自发达国家还是发展中国家,让数字/智能助力用户生活更美好,永远是我们坚持的目标,而这也对我们【系统的智能化】提出了要求。
1.2 技术体系迭代过程

- 阶段一,基于国内淘宝、天猫、搜推等团队的系统,在6个月的时间搭建了全套支持Lazada的新电商内核系统。
- 阶段二,在这套电商内核系统上进行相应定制,搭建了全套支持Daraz的新电商系统。
- 阶段三,将这套电商内核和AE系统进行了深度融合,同时引入了淘宝、天猫等团队的优秀系统解决方案,形成了可同时支持本地+跨境交易模式的国际化中台的雏形。
- 阶段四,以上述融合版本为基础,合并Lazada、Daraz、天猫淘宝海外,完成国际化中台技术分支的4合1动作,最终形成了现在1个中台支撑N个站点的全球化新架构。
- 阶段五,国际化中台开源策略开始落地,历时1年多到2021年11月完成中台全链路开源,全球化业务和中台各自闭环迭代局面形成。
- 阶段六,未来已来,敬请期待。
二、全球化基础设施层面面临的挑战
- 全球部署:无论是考量用户体验,还是考量监管合规,将基础设施进行全球化部署都是全球化业务必须要建设的基础能力,全球部署的基础设施也直接决定了全球化技术体系的很多具体架构形态,同时全球部署的基础设施本身的建设维护也是巨大的挑战。
- 性能:这里说的性能指用户请求处理的时延,用户从发起请求到接收到响应的延时越短,代表性能越好。而全球互联网服务在延时上有天然的挑战,即物理距离更长,机房可能在美国,而用户可能在澳大利亚。我们测试数据显示美国用户请求美国互联网服务一般的网络RTT是10ms以内,而俄罗斯用户请求美国西部机房的RTT在150ms到300ms之间不等,这直接导致用户的全屏加载时间会多出1秒钟,而1秒钟会造成转化率下降,甚至是用户流失。
- 可用性:服务全球用户还有成本上的挑战,这个挑战会同时带来系统可用性上的挑战。如果仅从本地视角保障可用性,则我们需要在每个本地都建设双机房保障高可用,但这样就无法利用其它区域机房的闲置资源,整体成本也会非常高昂。而我们7*24小时的可用性要求建立在全球视角上,因此,如果能做到全球范围的异地容灾,就可以在成本可接受的范围内,较好地兼顾用户的可用性。
- 数据一致性:数据一致性挑战是指当有数据被全球多地用户共享且多地用户都会进行读写时,如何确保数据一致?举例:全球买全球卖的场景,买家在本地数据中心创建订单,卖家在其本地数据中心维护订单,如果是同一笔订单且买家与卖家在不同的数据中心,如何保证多地读写一致?当全球数据中心之间相互灾备时,也会存在多地读写的情况,如何保证数据一致。
三、基于云的出海落地实践
3.1 海外部署和容灾实战
3.1.1 阿里云基础设施
- IAAS层:依托于阿里云全球一致的基础设施,我们搭建了涉及全球6大区域、13个物理机房、17个逻辑机房(AZ)的海外数字商业的基础设施,在享受弹性资源能力的同时却无需在多个国家/地区部署和维护数据中心。
- PAAS层:依托于阿里云各类中间件/云产品进行全球部署,从而自上而下地解决全球化的一系列技术挑战。

3.1.2 全球化部署架构

- 网络层:用户根据DNS就近解析到最近的机房IDC,到达该机房的统一接入层。
- 接入层:需要桥接一个统一路由层来对用户归属进行强一致性纠偏,即在接入层调用路由服务,查询用户的归属并实现跨机房调度,来达到用户跨机房跳转的目的。
- 服务层:对于强一致性数据,例如支付、交易等,需要对统一路由层的用户归属进行保障性兜底,即如果统一路由层路由错误,那么MSE层也需要将服务跨机房调用回用户正确归属的机房进行消费;同时针对共享型数据的一致性问题,需要拓展出中心读写的跨机房服务调用功能;简而言之,在MSE层需要实现根据用户归属或者中心机房消费的跨机房调用功能。
- 数据库层:我们通过扩展其插件,实现了禁写功能,同样是对于用户归属错误和数据强一致性保障的兜底,即用户归属区域如果和实际调用区域不一致,我们将会对其禁写保护,来避免不同区域之间的数据脏写。
- 数据同步层:中心机房和区域机房之间数据进行双向同步,保障异地容灾的数据一致性,避免用户区域更改后的数据缺失情况。

- 【流量染色】端上请求识别,确定是什么租户的流量,并对流量进行染色
- 【精确选址】基于流量染色,以及接入网关层的服务路由能力,精确选址到租户所在物理集群
- 【链路透传】集群单个服务实例内部,需要解决租户标的透传问题,以及跟上下游同步、异步交互过程中租户信息的透传
- 【资源隔离】在内部业务逻辑执行过程中,对任何资源的操作,都需要考虑隔离性问题,比如配置,数据,流量等
3.1.3 全球容灾解决方案
- Region级和网络不可用:机房级不可用,外网入口无法抵达物理机房或者各个物理机房之间无法互通。
- 服务级不可用:外网/内网连通性正常,服务不可用。
- 数据层不可用:DB/缓存不可用。

- 网络容灾:用户的第一跳网络路由之外(如小区网络异常我们基本没有什么操作空间),在接下来的第2->N跳,我们分别可以建设网络运营商切换能力(多CDN厂商互切),机房链路切换能力(Region级别互切),机房入口运营商切换能力(IDC网络团队互切)等各种手段来尝试进行灾难恢复。
- 接入层容灾:在流量抵达阿里云机房,进入内部网关路由层后,按照用户粒度级别、Api粒度级别等多维度进行实时流量纠偏,秒级生效。在网络以及网关产品无异常的情况下,接入层容灾是日常态被应用、演练次数最多的容灾方案。
- 服务层容灾:对于某些强中心服务,例如库存、营销等单区域扣减服务,也需要建设其灾备能力。
- 数据层容灾:对于多活架构,在确保数据单一Master的基础上,确保容灾过程中数据不会脏写。对于合规场景,考虑某些Region不具备敏感数据,实现有限定场景下的合规容灾能力。
3.2 全球数据合规实战
3.2.1 全球合规领域介绍

3.2.2 数据合规要求与部署架构

3.2.3 本地存储解决方案

3.3 应用架构云原生化
3.1 传统应用架构面临的挑战

- 应用架构不可持续:富应用交付模式下,在软件生产过程中,始终存在一个单点——应用,当应用所支撑的内容逐渐庞大和复杂的时候,那么它将是影响研发效率的关键点,也是影响整个国际化平台架构的可持续性的最大挑战。
- 研发交付不确定性:全球化平台和业务分层的研发模式在目的和变更节奏是不一致的。为解决这两者的差异,会导致应用自身逐渐臃肿和腐蚀,于是给日常研发迭代带来很大的不确定性和不可预见性。
- 运维能力缺乏标准:随着应用自身的复杂度增加,与之匹配的运维能力也会随之增加,而当前提倡的DevOps理念,也衍生出很多相关的产品和工具,但这些产品和工具的标准不统一,进而造成零散繁杂、无统一产品入口的现象,导致运维效率和理解成本不断增加。

- 容器编排技术:通过云原生的容器编排技术将传统的软件交付过程演进为各个容器编排组合式交付,将单个应用交付拆分成多个模块灵活编排交付,从而推动全球化应用交付体系的演进。
- 交付物镜像化:应用不再是研发的唯一对象,而是打造镜像研发体系,基于镜像的不变性来确保交付内容的确定性,并实现平台能力镜像化,具有独立稳定的研发体系。
- 统一运维标准:借助云原生IaC/OAM等GitOps理念,通过统一的模式去收敛并定义云原生下的应用运维标准。并重新定义业务组织的SRE,通过统一视角去查询、分析、度量应用的运维能力现状和资源使用情况。
3.2 全球化云原生架构实践
3.2.1 基于云原生的应用架构
- IaC:提供统一研发基础设施声明范式。为了将平台对业务依赖进行更好的解耦,降低平台认知成本,我们对站点应用的IaC进行了分层抽象标准定义,围绕全球化场景定义基础设施标准,从规格、日志采集、探针、hook、发布策略等进行统一收敛,降低业务接入IaC成本。
- OAM:提供统一应用模型的定义。依托于OAM开发和运维关注点分离、平台无关与高可扩展、模块化应用部署和运维等特点,我们对业务和平台面向应用的标准进行规范定义,从而更好地链接应用开发者、运维人员、应用基础设施,让云原生应用交付和管理流程更加连贯一致。
- GitOps:提供业务研发持续交付能力。基于云原生GitOps声明式理念,可以将外部依赖组件从能力集成到运维管控统一声明在工程之中,进而只需要基于统一的GitOps标准进行依赖能力的声明和定义,从而将组件能力的交付和管控交给底层的GitOps引擎,提升整个软件系统的完整性和可持续性。
- ACK:提供资源统一调度引擎。我们基于阿里云的ACK容器服务,使用其提供的强大的容器编排、资源调度、和自动化运维等能力,实现对不同环境交付不同的业务模块功能,并且基于上层的流量调度,实现业务按需部署,按需调度。
- 容器编排:通过ACK容器灵活编排技术成功的将全球化应用架构再升级,将业务逻辑和基础设施、平台能力、公共富客户端在研发态进行完全隔离,在运行态业务进程和运维进程通过轻量化容器做到相对彻底的隔离,提升整体应用研发交付效率和业务形态的稳定性。

- 基础设施容器(Base Container),其中就包含运维容器、网关容器等应用所依赖的基础设施的能力;
- 临时容器(Temporary Container),该容器不具备任何生命周期,其作用就是为了将自身的研发产物通过Pod下的共享目录集成到主应用容器和业务容器内,完成整个能力的集成和被使用,主要由平台容器构成;
- 业务容器(Business Container),该容器和主应用容器一样,具备完整的生命周期,且通过gRPC完成和主应用的通信,主要由类目、多语等富客户端容器构成。
3.2.2 基于云原生的运维体系

- 应用发布: 智能发布决策、原地升级、滚动升级、分批发布
- 弹性容量: 自动弹性、定时弹性、CPUShare
- 批量运维:应用容器的原地重启、容器置换、日志清理、JavaDump
- 轻量化容器: 运维容器独立、Sidecar编排
- 多容器交付部署: 端口冲突、进程冲突、文件目录共享
- 可观测与稳定性: 应用生命周期、启动异常诊断、白屏化、容器视角监控


四、总结与展望
边栏推荐
- Wave animation color five pointed star loader loading JS special effects
- Analysis report on the development prospect and investment strategic planning of China's wafer manufacturing Ⓔ 2022 ~ 2028
- Analysis report on production and marketing demand and investment forecast of global and Chinese diamond powder industry Ⓤ 2022 ~ 2027
- Application of 5g industrial gateway in scientific and technological overload control; off-site joint law enforcement for over limit, overweight and overspeed
- 04 redis source code data structure dictionary
- 基于mysql乐观锁实现秒杀的示例代码
- 啟動solr報錯The stack size specified is too small,Specify at least 328k
- [development of large e-commerce projects] performance pressure test - basic concept of pressure test & jmeter-38
- Build a vc2010 development environment and create a tutorial of "realizing Tetris game in C language"
- What is the future development direction of people with ordinary education, appearance and family background? The career planning after 00 has been made clear
猜你喜欢

Professor Li Zexiang, Hong Kong University of science and technology: I'm wrong. Why is engineering consciousness more important than the best university?

Explain IO multiplexing, select, poll, epoll in detail

Simple two ball loading

Nexus builds NPM dependent private database

启动solr报错The stack size specified is too small,Specify at least 328k

French Data Protection Agency: using Google Analytics or violating gdpr

JS discolored Lego building blocks

1553B环境搭建

Flow management technology

Colorful five pointed star SVG dynamic web page background JS special effect
随机推荐
C language learning
3.4 《数据库系统概论》之数据查询—SELECT(单表查询、连接查询、嵌套查询、集合查询、多表查询)
受益互联网出海 汇量科技业绩重回高增长
What is the future development direction of people with ordinary education, appearance and family background? The career planning after 00 has been made clear
China NdYAG crystal market research conclusion and development strategy proposal report Ⓥ 2022 ~ 2028
leetcode 322. Coin change (medium)
Nexus builds NPM dependent private database
ArrayList扩容机制以及线程安全性
Declare an abstract class vehicle, which contains the private variable numofwheel and the public functions vehicle (int), horn (), setnumofwheel (int) and getnumofwheel (). Subclass mot
MySQL报错1040Too many connections的原因以及解决方案
[Niu Ke's questions -sql big factory interview real questions] no2 User growth scenario (a certain degree of information flow)
The 14th five year plan of China's environmental protection industry and the report on the long-term goals for 2035 Ⓖ 2022 ~ 2028
Sharing with the best paper winner of CV Summit: how is a good paper refined?
MySQL gap lock
spark源码阅读总纲
终端识别技术和管理技术
Analysis report on the development pattern of China's smart emergency industry and the 14th five year plan Ⓠ 2022 ~ 2028
[development of large e-commerce projects] performance pressure test - basic concept of pressure test & jmeter-38
Introduction to reverse debugging PE structure input table output table 05/07
minimum spanning tree