
本书理论与实战相结合,以AliExpress 网站为基础,全面介绍大型系统的总体技术方案、全球区域化部署技术、全球网络调度技术、性能优化,以及SRE 在AliExpress 的具体落地。涉及的内容有:领域建模、调度编排、就近服务、异地多活、全球容灾、数据一致性、用户迁移、性能优化、SRE 治理方案、飞虎队作战手册等。本书既适合软件开发人员、运维人员、架构师阅读,也适合有一定软件开发基础的在校大学生阅读。书中介绍的解决问题的思路和方法具有很高的参考价值。
前言 电子商务平台在全球化拓展中会遇到非常大的技术挑战,我和我的团队作为阿里全球化技术的探索者,将在本书分享我们的挑战以及我们如何应对这些挑战。 虽然我们的解决方案源于电子商务平台,但方案本身具备通用性,因此可以被复用到其他领域。 我们先回到本源问题,即什么是全球化?全球化对技术的要求是什么? 什么是全球化 全球化就是全世界的人、公司等交互及整合的过程。随着交通运输与信息技术的发展,全球化进程也将进一步加快。 全球化对技术的要求 互联网的本质是提高信息传递效率,它极大地促进了全球化的进程。从互联网服务的视角来看,就是全球的人通过互联网进行沟通交流、交易、知识分享等;从技术的视角来看,就是通过搭建网络服务,让全球的用户通过使用这些网络服务来完成信息分享及传递。 网络服务除要满足用户对性能、可用性等的基本要求外,全球化的背景下还新增了合规、数据隔离性等要求。而这方方面面的要求都遇到了全新的挑战。 1.性能 这里说的性能是指在用户请求处理的时延上的表现,用户从发起请求到接收、响应的时延越短,代表性能越好。而全球互联网服务在时延上有天然的问题,即物理距离变得更长,机房可能在美国,而用户可能在澳大利亚。我们的测试数据显示,美国用户请求美国机房的网络RTT(往返时间)在10ms 以内,而俄罗斯用户请求美国西部机房的网络RTT 在150ms 到300ms 之间,这直接导致用户的全屏加载时间会多出1s,而这1s 可能会造成交易达成的“转化率”下降,甚至用户流失。 2.可用性 全球化的业务会跨越时区,这就要求我们的服务要7?24 小时可用,并且无明显的“闲时”。北京的白天,刚好是纽约的夜晚,而我们的主要研发团队都在中国,如何实现7*24 小时服务,不仅是对系统的挑战,也是对人力的挑战。服务全球用户还有成本的挑战,这个挑战又会带来系统可用性的挑战。 7*24 小时服务是站在全球的视角上,而从本地视角来看,如果我们在每个地方都建设双机房保障高可用性,就无法利用其他区域机房的闲置资源。因此,如果能做到全球范围的异地容灾,将极大地节省成本。节省成本这个诱惑实在是太大了,因而我们的选择就是“异地多活、全球容灾”。 3.互联互通 互联互通是指电信网间的物理连接。为了使一个电信运营企业的用户可以和另一个电信运营企业的用户相互通信,根据各国的实践,一般都会存在一个主导运营商。随着电信技术的发展和政府政策的转变,会有新的运营商进入电信市场。对于新的运营商来说,网络互联就是生命之源。如果没有与主导运营商的网络互联,那么业务必将难以得到充分开展,网络投入成本也就无法回收。 这种现象在国内比较容易调配,而全球化的网络服务不仅涉及互联互通,而且是全球不同电信运营企业间的互联互通,因此将面临经济问题、成本问题,以谁是主导运营商问题,等等。即使在今天,全球的互联互通质量仍然不够理想。我们在实践中发现,有时候是存在国家间网络几乎不可达的情况的;也发现两个物理距离非常接近甚至相连接的国家在进行网络互联时,需要绕地球一周。 4.数据一致性 当数据被全球多地用户共享时,多地用户都可进行读、写,如何确保数据一致性?例如,全球买、全球卖的场景,买家在本地数据中心创建订单,卖家在其本地数据中心维护订单,如果是同一笔订单,且买家与卖家在不同的数据中心,那么如何保证多地读、写一致?当全球数据中心之间相互备份、容灾时,也会存在多地读、写的情况,如何保障数据一致性? 5.隐私保护 全球化的业务必须遵守GDPR(General Data Protection Regulation,通用数据保护条例)等。这些内容比较容易理解,因此这里不详细展开。 6.本地化对接 阿里巴巴集团首席执行官张勇曾说:“全球化不是砸钱搞采购,而是培育当地新生态”,从生态的角度阐述了全球化业务与本地化不可分割的关系。 从商业视角来看,本地生态已经形成的生产链条或供应链链条,都是我们需要借力的。例如,温州打火机工厂很难转移,因为所有的零部件都由本地不同的厂商生产,当地已经形成了产业链,除非全部转移。这个例子说明,一个全球化的互联网业务在进入某国时,必须与当地政府和企业进行合作(本地化),否则需要完全克隆当地的商业。而从系统角度来说,本地化意味着需要与本地系统进行对接并集成,这不仅需要稳定、易用的API,还需要足够低的系统调用时延。 7.可伸缩性 可伸缩性的英文是Scalability,维基百科对Scalability 的解释是:当系统、网络或进程在任务量增减时,有能力进行应对。 现在可伸缩性常常被用于描述一个业务,如果一个业务可以通过持续投入,使其规模、收入和付费客户数量得到很大的提升,那么这个业务就被认为在可伸缩扩展方面是成功的。 我们的解决方案解决的所对应业务的可伸缩性问题主要有有两层含义: (1)在面临合规、本地对接、互联互通、可用性、性能等挑战的前提下,我们的系统可以在全球范围内通过不断地增加投入来扩大业务规模,是业务可伸缩的必要条件。 (2)系统本身也是可伸缩的,可以通过增加IDC(数据中心),或者在IDC中增加服务器的方式,让系统支撑更大的产出。 总之,要想在全球化中实现可伸缩性,就必须解决以上问题。 本书提供的解决方案解决了这些问题,使得我们的业务发展不会遇到技术上的阻碍。 本书内容 第1 章为总体技术方案,会对问题进行总体分析,包括解决方案、领域建模、设计原则,以及总体架构等。 第2 章介绍全球区域化部署技术,是本书的核心,详细介绍如何实现机房的调度编排、就近服务、异地多活、全球容灾、数据一致性、用户迁移等核心技术。 第3 章介绍全球网络调度技术,即除区域化部署技术外,如何应用大数据技术、DNS、PUSH 等实现网络层、边缘层的调度编排。 第4 章介绍性能优化,即在此架构基础上,我们有哪些针对用户端体验进行性能优化的实践,包括如何度量性能的业务回报、如何实现多端性能提升等。 第5 章介绍SRE,即在此架构基础上,如何最大化提高整体系统的可用性和稳定性,包括我们的方法论、我们如何平衡取舍,以及如何实现分级治理等。 适合的读者 本书适合有一定工作经验的开发人员、运维人员和架构师阅读,也适合有一定软件开发基础的在校大学生阅读。书中介绍的解决问题的思路和方法具有很高的参考价值。 特别说明 本书的主要内容是大型系统应用架构实战,但它是站在巨人的肩膀上,书中相关的分布式数据库技术、大规模缓存技术、NoSQL 技术和搜索引擎技术等都已经非常成熟,本书不会介绍这些技术的细节,而是重点聚焦我们发明的与之差异的增量技术。 如果书中有任何纰漏,敬请读者不吝赐教,我们将感激不尽。
第1 章 总体技术方案 ......................................................................... 1 1.1 分析建模 ............................................................................................ 1 1.2 系统的总体架构 ................................................................................ 7 1.3 小结 .................................................................................................... 8 第2 章 全球区域化部署技术 ................................................................ 9 2.1 总体架构 ............................................................................................ 9 2.2 路由服务 .......................................................................................... 13 2.2.1 路由表原理 .......................................................................... 16 2.2.2 路由表的更新机制 .............................................................. 23 2.2.3 用户路由更新方案 .............................................................. 30 2.3 多层路由实现 .................................................................................. 37 2.3.1 统一接入层路由技术 .......................................................... 37 2.3.2 服务层路由技术 .................................................................. 43 2.3.3 消息层路由技术 .................................................................. 49 2.3.4 数据层跨区域路由技术 ...................................................... 56 2.3.5 数据层一致性校验技术 ...................................................... 60 2.4 全球实时分流技术和区域化容灾技术 ........................................... 62 2.4.1 全球实时分流技术和按需路由技术 .................................. 63 2.4.2 区域化容灾技术 .................................................................. 66 2.5 其他关键技术 .................................................................................. 70 2.5.1 全局ID 服务 ........................................................................ 70 2.5.2 库存区域写 ......................................................................... 74 2.5.3 全球建站方案 ..................................................................... 77 第3 章 全球网络调度技术 ................................................................. 83 3.1 网络基础设施 .................................................................................. 84 3.2 网络调度实现 .................................................................................. 88 第4 章 性能优化 .............................................................................. 94 4.1 为什么要做性能优化 ...................................................................... 94 4.2 一次请求的漫游 ............................................................................ 100 4.3 寻找性能瓶颈 ................................................................................ 105 4.4 快速跨越互联网大门 .................................................................... 113 4.4.1 DNS 背后的奥秘 .............................................................. 113 4.4.2 加速DNS 解析 ................................................................. 117 4.5 让数据更快地到达用户端 ............................................................ 120 4.5.1 可靠的TCP ....................................................................... 123 4.5.2 应用层协议之HTTP ......................................................... 129 4.5.3 安全协议之HTTPS .......................................................... 131 4.5.4 数据传输可以更快............................................................ 133 4.6 加速浏览器呈现 ............................................................................ 153 4.7 克服无线网络的痛 ........................................................................ 160 第5 章 SRE .................................................................................. 166 5.1 SRE 介绍 ........................................................................................ 166 5.2 SRE 的总体思路 ............................................................................ 169 5.3 基础治理方案 ................................................................................ 174 5.4 监控实践 ........................................................................................ 175 5.5 SRE 规范 ........................................................................................ 181 5.5.1 写作目的 ........................................................................... 181 5.5.2 重要名词解释 ................................................................... 181 目录 IX 5.5.3 总体原则 ............................................................................ 183 5.5.4 KPIGuideline ...................................................................... 185 5.5.5 稳定性规范详细介绍 ........................................................ 185 5.6 飞虎队作战手册 ............................................................................ 197 5.6.1 总体思路 ............................................................................ 197 5.6.2 角色定义 ............................................................................ 198 5.6.3 飞虎队作战流程 ................................................................ 199