阿里巴巴的电商数据库上云实践是该公司在数据库领域的一项重大创新,旨在提供更加安全、稳定、经济和智能的数据库服务。该实践由阿里云数据库产品事业部的王涛主导,他从程序员到DBA再到DevOps架构师,深度参与了阿里巴巴数据库体系的演进。
在阿里巴巴的电商数据库应用场景中,RDS高可用版被广泛采用,采取一主多备模式,确保在主实例故障时能够快速切换到备份实例,但无法实现RPO(恢复点目标)为零。为了解决这一问题,RDS三节点企业版应运而生,它基于CAP理论或BASE理论,通过MySQL半同步、Group Replication和RDS自研技术,实现了RPO=0的目标。其中,Paxos协议被选为实现一致性的重要协议,因为其能保证在分区容忍性下的数据一致性,尽管有Propose、Accept和Learn三个角色,但并未采用Raft协议。
此外,为了提升系统的水平扩展能力和异地容灾能力,阿里巴巴实施了业务异地多活策略,允许用户在任意单元进行交易。这种模式下,中心单元与多个单元之间通过星型结构进行数据复制。同时,还有异地只读的Learner节点,它们拥有全量数据,且不影响Paxos协议,每个Learner都有灾备节点,确保了高一致性。
阿里数据库管控平台经历了从手工运维到自动化运维的演变。2003年,DBA职业开始从系统管理员中独立出来,初期依赖Nagios和Cacti等开源工具。2009年,阿里研发了第一代运维系统“北斗”。2010年,随着去IOE工作的推进,第一代MySQL运维系统“天机”诞生。2013年,面对不断扩大的业务规模,第二代系统“DBFree”上线,专注于自动化MySQL管理。2016年,DBPaaS作为第三代运维系统出现,满足了异地多活和混合云的需求。2018年,阿里开始将底层IaaS迁移到云端,2020年,电商数据库全面上云,采用云数据库专属集群(MyBase)模式,构建了上万个节点的RPO=0架构。
在上云方案选择中,数据上云的方式有逻辑迁移和物理迁移。最终,阿里选择了物理迁移,因为它具有较高的数据一致性,且对数据对象平滑性要求较高。网络方案方面,ENI+MyBase成为首选,因为它能在同一网络平面提供高效性能,避免了代理层带来的影响。在硬件层面,裸金属服务器提供了分钟级交付、高性能以及与虚拟机类似的功能,同时兼容VPC、SLB和RDS等云服务。
阿里巴巴的电商数据库上云实践体现了其在数据库服务领域的创新和深入理解,通过不断的技术演进和优化,构建了一个强大、可靠的云数据库管控体系,以适应日益复杂和庞大的业务需求。