4. 电商全球化架构
开发一款互联网产品, 服务于全球的国家或区域。其数据中心怎么布局和架构, 核心应用如何部署和维护, 在实践中会有哪些考虑的关键因素?
1. 架构背景
首先分别看两种极端化方案:
1.1 中心化部署
服务的数据中心全部部署在一个国家或区域(例如中国), 服务于全球。此方案优点明显: 机房和数据中心建设简单, 部署和维护成本低;但缺点也非常明显:
a. 用户体验问题: 其它区域国家的用户访问网络耗时较高, 体验差;
b. 数据合规问题: 其它区域国家的产生数据是否容许跨境存储在国内,存在当地数据法规合约性风险;
1.2 区域化部署
在全球化服务的每个国家或区域, 分别各自建设一套数据中心, 各自独立相互解耦。此方案确保符合各国家区域的数据法规,每个国家站具有自己独立的数据中心, 独立的站点配置和独立的运营。但同时缺点明显:
a. 部署成本: 每个站点独立建站和数据中心, 由于站点太多, 部署和维护成本高;
总之,全球数据中心搭建必须从数据底层考虑数据合规性, 从应用顶层考虑用户体验可用性, 同时使建造成本最小化。数据合规是本地建站的架构红线; 用户体验是全球建站的架构底线。
下面分别介绍"数据合规"和"用户体验"两个关键因素:
2. 架构因素
2.1 数据合规
举个国际电商购物场景, 方便对数据合规有个体感认识,例如上图:
a. 用户支付数据: "必须本地化", 买家交易敏感数据遵守中东当地数据法规, 存储在中东数据机房;
b. 商品相关数据: "容许备份出境", 中国商家发布的商品数据, 其主存储在中国, 由于其不敏感性同时可以境外备份至中东数据机房;
c. 商家相关数据: "必须本地化", 商家详细信息, 例如:中国商家注册时的备案住址、联系方式等不容许出境, 数据停留在国内中国数据机房;
数据合规: 主要涉及到以下几个方面,"数据必须本地化"、"数据容许备份出境"、是否需要用户签署合同 、是否需要用户显式同意和是否需要在当地机构备案。
遵守当地数据法规是在当地开站业务的前提;而对于知识产权、隐私保护和数据安全等, 不同国家或区域会有不同的法规或约定。例如有些欠发达国家还是一片空白, 但欧盟成员国家在逐步趋严;如下是当前部分国家的数据合规要求:
显然数据合规是全球数据中心架构的关键约束之一。
2.2 用户体验
在符合数据法规的架构前提下, 同时如何节省部署成本呢?参考上面电商购物的场景, 可以把访问的数据分为 3 类:
a. 独享数据: 此类数据具有较高级别的数据隐私约束, 例如买家的交易支付数据,必须本地化存储;同时也可以更好满足买家的就近区域化访问用户体验;
b. 只读数据: 此类数据数据隐私不敏感性, 例如商品数据,卖家可以一键发布到数据主中心,同时系统自动分发到其它数据中心。 当地买家访问时,可以在就近数据中心访问;商品卖家修改数据时,在主中心进行修改(One Master 原则), 自动同步至其它数据中心;
c. 共享数据: 此类数据具有较高的一致性要求, 避免复杂的数据同步一致性设计, 例如商品库存数据, 可以采用全球中心化存储和读写,防止商品超卖。
3. 3-3-3 架构方法
3.1 三架构原则
a. 单元读写原则:用户的一个业务动作的所有数据读写, 尽量在同一个中心(单元化)完成;
b. OneMaster 法则:同一条数据尽量只在单点发生变更, 否则引发数据不一致或多中心同步问题。当进行多中心部署时存在同一数据多区域修改冲突时, 通过路由到同一中心进行写操作来规避这类问题;
c. CAP 原则: 全球化部署时优先保障可用性和分区容忍度, 通过单中心写和多中心异步同步读的最终一致性解决方案, 来保证数据读写一致性。
3.2 三数据分类
按数据生产和消费的维度, 划分为以下几类:
a. 自产自消(独享数据): 此类数据通常涉及用户隐私或数据安全, 例如个人笔记、用户商家 profile 数据等;
b. 自产多消(只读数据): 此类数据一个人可以编辑, 多人或所有人可以消费,例如博客数据、商品数据、平台规则和字典元数据等;
c. 多产多消(共享数据): 此类数据所有用户都可以进行编辑写操作, 同时所有用户也是用户的消费者, 例如: wiki、评论数据等。
3.3 三路由规则
针对不同类型数据的划分, 在用户访问的上层应用层与数据层间进行不同路由路径规则。 通常全球部署会设置中心化区域, 其主要存在两个作用: a. 当用户无法路由访问区域时,作为数据兜底和访问区域;b. 多中心数据同步时,数据由区域先同步至中心化区域, 然后分发同步到其它多区域。多区域读写路由划分下面 3 大类, 根据数据产消维度划分:
a. 区域读写:自产自消的数据, 则进行区域化部署, 用户读写时进行本地区域读写;
b. 区域只读: 自产多消的数据, 则进行数据多区域分发, 用户访问时进行本地区域只读;
c. 一致性读写: ①. 一致性读写:对于多产多消数据 &成本不容许的条件下, 则进行集中部署, 和全局一致性读写操作; ②. 非一致性读写:对于多产多消数据 &成本容许的条件下, 则用户进行数据就近变更, 通过全局事务保证数据一致性。
另外,全球的数据中心架构方案没有银弹,实践中通常根据实际需求采用下面几种模式混合部署使用。例如: Amazon、Lazada 等采用区域化模式为主; AliExpress 采用中心化模式为主。底层数据的物理架构布局决定了上层应用的部署分布。
版权声明: 本文为 InfoQ 作者【Joy】的原创文章。
原文链接:【http://xie.infoq.cn/article/6b1eb9ee29f31dd5b6223150c】。文章转载请联系作者。
评论