testing-04

简单生活

  • 在上周的Google I/O大会上,GCP(Google云平台)正式对外发布了数据库AlloyDB(Preview版本)。这里对AlloyDB的架构也做一个较为深入的分析,看看与当前的云原生数据库PolarDB、Aurora有哪些异同。

    01 AlloyDB 整体架构图

    AlloyDB是GCP上的一个全托管的云数据库服务,当前完全兼容PostgreSQL 14,提供企业级的性能、扩展性与可用性。声称是标准PostgreSQL性能的4倍,AWS同类服务的两倍(应该是指RDS PostgreSQL和Aurora PostgreSQL),如果是分析查询,则可能有100倍的性能加速。另外,在介绍时,还特别提到,价格非常透明,这应该是针对当前AWS数据库大多数都对IOPS独立并按量计费而说的。

    根据当前资料,其整体架构如下:

    高清大图下载地址:

    https://cloud-database-tech.github.io/images/alloydb-arch-with-qr-code.png

    02 AlloyDB与Aurora、PolarDB有什么异同

    • 简单来说,其架构与现有的云原生数据库Aurora、PolarDB都非常相似。使用了存储计算分离,分布式存储提供了多节点挂载能力。分布式存储,会带来海量存储能力,以及非常强的IO吞吐能力;多点挂载,大大增强了数据库的读扩展能力,同时因为底层使用同一个存储,所以也不再有数据拷贝和延迟等问题。
    • 在实现上,体现了”the log is the database”,尽可能只传输日志,避免数据块的传输与复制。例如,计算节点与存储节点的不再传输数据块(当然,就多了一个日志应用的过程)。这一点与Aurora类似,但是PolarDB在日志下推上,做得比较少,而是选择将存储以”较为标准”的文件系统提供给计算节点,数据库本身的各个模块还是比较完整的,这带来的好处是,对数据库的侵入要稍微小一些,对于新版本的支持和不同的数据库的支持会更加简单和一致。Aurora和AlloyDB的这种做法,则是将数据库的解构更加彻底,将数据库的日志模块一定程度下沉到存储层。在AlloyDB在实现时,还将这个部分彻底的做了分布式,通过多个不同的日志处理进程(LPS)进行分布式并发处理。
    • 这种日志处理的下推,也让数据库在进行崩溃恢复的时候,相比传统的一体化架构要快非常多,也就让数据库所提供的SLA可以更高。因为没有checkpoint,也应该就没有什么fuzzy或者sharp一说了,后端的LPS进程会持续的将redo apply到本地存储,分布式存储上的数据块的版本总是非常新的。而不用像传统数据库,数据库crash后,所有的没有刷写到磁盘的脏数据块(内存中该数据库已经更新,但是还没有刷写到磁盘)都需要通过redo应用到最新状态,所以,传统数据库在崩溃恢复时总是需要一定的时间,而且内存越大,这个时间可能会越长。
    • 另外,AlloyDB的日志存储使用了较为独立的存储,也就是文中提到了”log storage”或者”log store”。考虑日志与数据块的读写特性都不相同,使用独立的存储在性能优化上,会更加有效。一般来说,日志写入通常是append-only的,而且是”同步”操作,需要非常低的延迟,另外,在AlloyDB的设计中,日志写入后,需要立刻读取并应用到数据块中。只需要将内存中已经更新过的数据块覆盖写入本地存储就可以了。而数据块的处理,通常来说是一个异步的过程(不阻塞数据库的写入),并且会有大量的随机读,这与日志数据的访问有很大的不同。这里的一个猜测是,日志存储和数据块存储可能使用同一套存储架构,但是可能使用面向不同场景的优化和参数,如果有Google的人,希望求证一下。
    • 计算节点使用了”ultra-fast cache”,猜测一下,可能是使用了与PolarDB类似的optane存储作为加速,虽然使用optane卡的场景不同。这也是另一个希望求证的点。
    • AlloyDB的数据块请求是带有LSN号的,而每个可用区(Zone)内都有完整的数据块,所以,在各个可用区的节点(可能是read replica)总是可以在本地可用区获得最新的数据块。也就是无需像Aurora使用的多数派协议,数据块的读取需要3份(写入四份,4+3>6),当然Aurora也对这里做了很多的优化(例如,通过一个bookkeeping记录写入数据和node的对应关系,尽可能将多数派读取变成一次单节点的读取[参考])。
    • AlloyDB下沉到存储的日志处理服务(LPS),也做了彻底的分布式。日志存储在一个底层的相对独立的日志存储中,日志处理服务则是一个分布式的、相对”无状态”的进程,因为也做了存算分离,所以有非常好的扩展性。另外,在日志处理的分片上,AlloyDB通过将底层的数据块分成一个个独立的分片(Shard,应该类似于PolarDB或其他系统中的chunk),每个分片由一个独立的LPS处理,一个LPS可以根据系统压力情况处理一个或多个分片。这样就通过分布式的方式解决了日志应用的问题。并且,这个日志应用是在各个不同的可用区独立运行。
    • 关于数据副本数量的问题:Aurora是3*2的副本设计,每个可用区两个副本,每次写入应该是3个副本,读取可能需要4个副本,这种性能应该比较差,达到的效果是宣传”AZ+1”的容灾能力,也就是一个可用区失败,再加一个副本失败,依旧可以恢复数据。在实现上,Aurora对于底层副本感知是要更强的,并与上层实现结合起来了。但是AlloyDB使用Google底层统一的存储,这里看到的数据分布在三个zone,有三个副本,但实际上,每个zone的数据是存储在一个分布式存储的,这个分布式存储数据的副本数情况,并没有对数据库暴露。这里可以猜测,可能是两个副本或者更多,对于数据库这里IO敏感型的应用,应该比较难使用EC算法去做去重。所以,实际上,一份数据,可能会有超过6份的副本数。
    • 另外,这里看到,Block storage部分是可以通过一些智能化的方式,对数据块进行分级,降低整体的存储成本的,这应该是底层存储的数据分层能力。

    03 AlloyDB的写操作

    这里通过一个写操作来看看,AlloyDB的整个处理流程。客户端通过TCP连接,连接到主实例,然后将变更SQL发送到主实例。主节点进行SQL解析、并在内容中更新数据和索引页,同时,准备好WAL日志。在事务提交时,则同步地将日志写入低延迟的日志存储,这些日志则会被日志处理进程(LPS)异步的消费并处理。

    存储层被分成了三个部分:日志存储、日志处理服务、数据块存储。日志存储本身是顺序写,并对写入延迟要求很高,会直接影响事务处理的性能。AlloyDB专门针对该模式/场景进行了优化,以提供一个高性能的、低延迟的日志存储服务。

    多个日志处理服务(LPS)则会根据”Shard”(一组数据库的数据块)机制,对不同的日志进行处理。先从存储层读取需要处理的数据块(随机读),然后将redo日志应用到这些数据块,并回写(持久化)数据块到存储中,并最终删除日志存储中的日志记录。

    04 AlloyDB的读操作

    读操作有两种情况,一个是从主节点提供服务,一个是从读节点(read replica)提供服务。如果查询所需要的数据都在内存中,那么就和单机的PostgreSQL实例一样,进行SQL解析、执行计划生成、查询执行,并响应用户。为了加速查询处理,AlloyDB在数据库中额外集成了一个”ultra-fast block cache”。

    如果,需要的数据块在上面的两级缓存中都不存在,则需要到存储中获取。在把请求发送给存储层的时候,需要附带把LSN(log-sequence number)号也作为请求的一部分,而底层存储则返回满足该LSN对应事务能够看到数据块。

    从整体存储层来看,LPS进程也会参与数据块的请求的处理。LPS进程也有自己的缓存,如果请求的数据块在这个缓存中,则会立刻返回给上层节点。如果,这里再次缓存缺失,则再向数据块存储读取数据块并响应请求。

    这里,LPS进程需要存储一个”列表”,用于记录日志已经提交,但是,还没有应用到底层的块记录。对于此类数据块的请求,则需要先完成日志应用再返回。虽然,此类情况不应该经常出现,因为如果是一个最近日志没有应用的块,缓存应该不太会把这样的页面清除。

    05 其他

    • 虽然是Preview,但已经是目前看到的最具诚意的Preview了:任何用户立刻就可以开通使用,并且给予了非常大的免费额度,具体的,计算节点每月免费不超过1.5万美元、存储节点不超过650美元的资源。
    • 另外,注意到,GCP会说这是一个”fully-managed, PostgreSQL-compatible database”,而不会过多的强调这是一个云原生的数据库系统。对于用户来说,这就是一个具备高性能、高可用以及高可靠的PostgreSQL。至于,是不是Cloud-Native的,Google似乎对于这个概念并不那么”感冒”。
    • 通过实现”non-disruptive instance resizing”、Vacuum优化管理、Crash Recovery的速度提升,这个服务推出就是99.99%的SLA。
    • 更底层使用的是Google内部统一的分布式存储层,经过Gmail、Youtube等大型系统的验证,性能/稳定性等经过了验证。这一点上,AlloyDB与PolarDB、Aurora是不一样的。PolarDB和Aurora都选择了实现自己面向数据库的分布式存储系统,而AlloyDB选择了更加通用的存储层,再面向数据库进行优化。这两个路线,客户价值都是直接的,但哪个方案的生命力会更加持久,可能需要几十年的时间去观察。
    • 与AlloyDB一起,GCP还推出一个Oracle到PostgreSQL的迁移服务,只是这个服务看起来推出的也比较仓促,比较困难的结构迁移部分,使用了一个第三方的开源产品来实现。一方面可以看到这个,迁移是非常重要的模块,另一方面也看到,这一块做起来其实比较难。从这里看到,AlloyDB考虑优先推出PostgreSQL版本的一个重要原因,是认为:Oracle数据库的迁移至关重要,且PostgreSQL是Oracle迁移的重要目标数据库。
    • 目前,发布的内容来看,关于数据库内部的并发访问/多版本管理的内容比较少,这部分应该是另一个复杂的点。期待后续的文章。

    06 一些已知的不确定的点

    • ultra-fast cache是什么介质?如何被使用?
    • 对于其他zone(非primary节点所在的zone),他的WAL日志(在log storage上)从哪里获取?WAL一定是具备跨zone的容灾能力的,这里WAL的容灾是在数据层去做的(日志写时写两份或者三份),还是log storage去做的?
    • 与上面的问题相关的另一个重要的问题,LPS进程是全局的还是属于某个Zone的?
    • log storage是针对日志场景专门进行优化的,其模式是,append-only、延迟敏感并直接影响效率,这里的疑问是,做了哪些优化?

    如果有Google的同学,可以一起讨论一下。

    参考

    • AlloyDB for PostgreSQL under the hood: Intelligent, database-aware storage
    • AlloyDB for PostgreSQL
    • Introducing AlloyDB for PostgreSQL: Free yourself from expensive, legacy databases
  • 实测阿里云RDS Serverless

    ·

    在4月底,阿里云RDS Serverless正式公测发布。第一时间申请了公测资格,并进行了测试验证。测试完成后,还是非常期待这个功能的商业化的,当前的公测版本也值得开发者们去了解和小范围(例如开发测试环境)尝试。

    00 什么是RDS Serverless

    RDS Serverless是一种独立于按量付费、包年包月的资源使用与计费模式。提供了一种自动化的弹性扩缩容的规格,用户无需提前选定固定规格,后端会根据系统压力进行自动升降配,并根据实际使用计费,当然,用户需要设置该规格最大和最小规格,限制最大、最小使用资源与费用。

    对于峰谷明显的业务系统,该模式一方面可以在需要时提供很高的资源规格应对压力,另一方面可以在低峰时降低资源使用,降低成本。

    01测试结论概述

    • 整体上,该Serverless版本的升/降配速度非常快,约10秒完成压力检测与变配,升配时性能表现非常平稳,降配时性能比较平稳。
    • 具体的,在系统压力突增时,约10秒内就可以完成检测与变配,完成升配后系统压力立刻得到一定程度的缓解;与之前的Aurora Serverless v2测试中,升配的时间是差不多的,都是10秒以内
    • 在系统压力下降时,降配的速度也非常快,约10秒完成检测与降配操作。另外,需要注意的是,当前的版本,因为降配非常快,也导致降配后,性能出现了一些波动,持续约10秒,波动幅度从约8毫秒的响应时间增长到30~50毫秒,在两次降配之后,都出现这样小波动。相比,Aurora降配更加“保守”,观测了50秒,之后才开始降配。在降配之后,Aurora的性能依旧非常平稳,没有任何波动。也就是说,降配过程中清除出内存池的数据页都是确确实实不再使用的,这里可能需要深入的观测InnoDB的Buffer Pool收缩时的表现,避免将可能使用数据页清理出内存。
    • 目前只支持基础版(单节点实例),应用场景还比较有限,不过对于开发测试环境,种类可用性要求没那么高,且性能峰谷明显的场景,是可以轻松节省超过50%成本的,而且在实际使用时,性能还会非常不错(最高扩展到8*RCU)。
    • 当然,现在阿里云RDS Serverless还是刚刚公测,申请公测资格通过后,可免费创建2个体验实例,最大规格为8*RCU,即约8c16g内存的实例,免费周期3个月,算是不错的羊毛了,具体的,可以通过RDS MySQL购买页找到公测申请链接。

    02 测试方法说明

    整体的测试方法与之前做Aurora Serverless v2类似。首先,启动一个单线程sysbench,作为测试“主进程”,程序运行900秒,在“主进程”运行300秒后,再启动一个“压力进程”(24并发的sysbench进程)向系统施压,该进程运行300秒后退出,在这个过程中,我们观测”主进程”的rt变化,以及整个过程中,实例规格的变化(依旧以buffer pool为指标)。更详细的描述可以参考:实测Aurora Serverless v2

    03 测试结果与分析

    3.1 整体过程

    • 下图黄点代表主进程每秒RT的变化;”蓝点”(连成线)代表秒级别buffer pool的变化。左侧纵坐标为响应时间,单位为毫秒;右边纵坐标为buffer pool大小,单位为GB
    • 在第300秒,“压力进程”给出额外压力之后,系统开始升配,经过三次升配之后,到最大规格
    • 在第600秒,“压力进程”退出,经过了4次降配,降级到最低规格

    3.2 升配过程

    从如下放大的图可以看到,在“压力线程”启动的第300秒,“主线程”的响应时间立刻增长到了300ms。

    • 该实例在之后的7秒内完成升配,实例响应时间也立刻降了下来,降到约75毫秒
    • 之后,再过10秒(约第317秒),完成了第二次升配,实例响应时间再次下降,约到30毫秒
    • 再过约10秒(约第328秒),再次升配,但是此时响应时间不再有什么变化

    3.3 降配过程

    • 第600秒,压力进程退出,约11秒后,完成降配。但是,在第15秒性能出现明显波动,持续10秒
    • 第650秒,完成第二次降配,4秒后性能出现波动,持续约5秒
    • 第670秒,再次降配,性能再次波动,并出现一个异常点,响应时间非常大(约200ms)
    • 之后,系统平稳运行

    04 其他

    • 当前RDS Serverless处于公测阶段,没有SLA保障,且仅支持基础版、区域支持也有限,虽然降配和升配都比较快,也比较稳定,但是还不适合生产环境。
    • 当前,实例规格区间为0.5~8 RCU,最大规格也还比较小。
    • 在这次对比测试中,也发现,相比AWS,阿里云在同一个可用区的网络延迟是更低的,仅5~10ms,而Aurora同可用区响应时间约为15~20ms。
    • 据了解,阿里云今年还是会在这个方向加大投入,还会有一些大的版本和改进发出来,拭目以待吧。

  • 实测Aurora Serverless v2

    ·

    Aurora自2014年发布以来,一直是AWS的最核心数据库产品,而Serverless则是这个产品最重要的功能之一了。在2018年08月,Serverless功能刚刚GA,当时做过一次测试(参考)。在2020年底的re:Invent上,Andy Jassy宣布Aurora发布Serverless v2,时隔一年半,终于GA,一起来看看实际效果怎样吧。

    在最近看到该功能的介绍文章中,使用了”几分之一秒内扩展”、” scales instantly and nondisruptively “等描述,对此,我是保持怀疑的,这也要实测一下的原因,从一个用户感受的角度,看看一次升级(scaling)需要多长时间。

    测试结果概述

    • 在这次实际测试中,新的Serverless v2,可以将scaling up的时间降低到10秒级别。系统压力上来后,首次升级(scaling up)花了13秒,之后的几次升级分别花了7秒、4秒、10秒等。在这几秒内,Aurora需要完成监控采集、分析与决策,变配动作完成等动作。于用户侧,系统压力突增时,10秒内Aurora就会完成升级,这是非常实用和强大的。
    • 相比4年前GA版本数分钟级别的升级(scaling),新的版本提升非常大。不过,与宣传的亚秒级( in a fraction of a second )还有差距的。当然,一种猜测是,”亚秒内”完成的是变配动作本身,不包括监控、决策与命令下发等过程。
    • Scaling down是逐步阶梯式完成的,每次间隔约1分钟,这是符合预期的。
    • 新的版本与旧版本有非常好的兼容性,可以作为旧版本的replica,然后切换为主节点,也就可以完成平滑的升级。新的版本,支持MySQL 8.0和PostgreSQL 13版本。
    • 该功能的客户价值是非常明显的:在更多的业务场景中,可以帮助用户降低成本,同时也可以帮助应对更多的突发流量。另外,云计算的”使命”之一是通过统一的底层资源调度,提升资源利用率,降低资源使用成本,而该功能,在交易数据库的场景,把这个”使命”的粒度降低到了”秒”级别。用好了该功能,在很多场景中,降低50%的数据库成本应该是容易的。
    (more…)
  • 去年11月,Amazon RDS推出的新的形态:Multi-AZ Cluster(三可用区三节点)。相比“原来的多AZ”(两个可用区)架构,新的Cluster模式是三节点架构,提供了更低的事务延迟,同时有更好的读扩展能力。国内的云厂商中,阿里云和腾讯云很早就有了三节点形态,一起看看,他们有哪些异同,在实际的业务场景中,哪些情况可以选择这种形态。

    AWS RDS三节点(Multi-AZ Cluster)是什么?

    这里将其主要特点概括如下:

    • 这是一种3*AZ部署模式,而原来的Multi-AZ是2AZ部署或者单AZ部署。
    • 使用了数据库的逻辑复制,而原来的双AZ使用的是EBS层的复制,这就使得Cluster的副本节点都可以直接提供读能力,有更好的读扩展能力。
    • 使用了类似MySQL半同步的复制技术,事务日志网络到达其中任意一个副本主节点事务就可以提交,所以主节点上的事务延迟会降低,性能会提升(对比基于EBS的两节点)。
    • 支持Graviton 2的规格和NVMe-based SSD存储,可以提供更好的性能。
    • 同时支持MySQL和PostgreSQL两个引擎。

    与阿里云、腾讯云数据库三节点的区别

    阿里云RDS提供的“三节点企业版”,支持MySQL引擎,通过Paxos协议(或其变种)同步。相比Amazon的方案,其中一个节点使用了日志存储,成本可以更低;三个节点,只有一个节点提供服务。腾讯云MySQL也支持三节点版本,使用了半同步复制,可以选择异步、半同步或者强同步三种模式,也只有一个节点可以提供服务。

    相比AWS,阿里云与腾讯云的三节点模式都可以由用户自由选择可用区分布,即可以都在一个可用区,也可以分布在两个或三个可用区,给了客户更强的灵活性。

    (more…)
  • 长路漫漫 踏歌而行

    ·

    Canon EOS R5 RF24-70mm F2.8 ISO-100 ƒ5.6 1/200 By Pingping

  • 注:这是一篇阿里云数据库ACP认证的软文,但是还是非常非常推荐阅读。因为这个认证很可能会成为国内数据库领域最重要的认证,对很多数据库极其相关技术人员都会有很大的影响。

    概述

    TLDR版本:阿里云数据库ACP认证填补了云时代与传统数据架构时代之间数据库专业认证的空白。无论是不是写软文,笔者都是非常推荐云数据库从业者或者与数据库相关度比较高的开发者,都去拿下这个认证的。另外,也提醒一下,这个认证是刚刚推出,无论是试题还是流程都还有一些小的磕盼,也可以考虑等半年之后再去拿证,都时候应该会更加成熟一些。也预警一下:这个证书要花费一些费用,考试难度还是比较大的,所以通过考试并不容易,笔者考试过程整整鏖战两小时,83分,涉险过关(80分通过)。

    什么是阿里云数据库ACP认证

    我从阿里云出来已经几个月了,恍如隔世…,出来之前也曾是阿里云数据库认证体系建设的负责人,在整个事业部的支持下,设计并上线了阿里云数据库的ACA认证(参考)。在上周,阿里云数据库推出ACP认证,是一个更高级别的认证,认证一上线,我就便迫不及待的上线去考下了这个证书。据说,可能是全球第一个获得阿里云数据库ACP认证的人员(烦请内部同学再帮确认一下)。

    数据库ACP认证是整个阿里云面向开发者的认证体系的一部分(参考),与初级的”数据库ACA”认证组成了数据库垂直领域的初步认证体系。ACP全称是专业工程师(Alibaba Cloud Certified Professional),也是*当前*云数据库最高端的认证(也许未来会推出ACE)。主要面向,云数据库相关从业者,包括DBA、云系统管理员、与数据库相关度比较高的开发者等。要求上,需要参与认证的人,对通用数据库基础有非常好的了解,同时,对于云数据库相关技术也非常详细的了解。数据库的ACP认证分了两个方向:关系型数据库、数据仓库,可以根据自己的专业背景选择其中一个方向去挑战。

    数据库领域的”各种认证”

    在计算机发展之初,一个重要的应用就是数据的存储与计算。数据库在过去60年的发展中,一直都是计算机技术最重要的分支技术之一。在现代数字化企业架构中,数据架构的设计、数据技术选型都是重大的挑战,无论是在基于本地IDC的架构,还是基于现代的云计算架构,这一点都没有发生变化。而且,在当前各行各业数字化转型的过程中,数据架构在企业中的地位也越来越重要。

    数据库技术人员也一直是构建企业数据架构的核心人员。在数据库技术发展的过去的半个世纪,各个数据库厂商,为了培养各个不同类型的数据库的专业人才,推出了各个垂直方向的认证,例如,Oracle的OCP、OCM认证,微软早期的MCSA、MCSE、MongoDB Developer/Database Administrator、TiDB的Associate/professional、OceanBase的OBCA/OBCA/OBCE等。

    这些认证中,其中Oracle认证一度最为成功。从认证的设计上,非常完善,OCA/OCP/OCM三级认证,层层递进,很好的帮助学习逐步了解Oracle数据库的各个方面。另外,更重要的,也因为Oracle认证的权威性,企业人员在招聘时有了一个不错的参考,也让想进入这个领域的从业者,有了一个非常好的入门途径(参考)。

    云时代数据库从业者的新要求

    云计算已经改变了企业和开发者使用数据库的方式,现代企业是以数字化为基础的,数据架构也是企业架构的核心部分,企业在数据架构选型上,两个趋势已经是事实了:一个是”云化”,选择以云计算技术为基础的架构,利用云计算的平台与产品优势,提升企业的业务研发效率;一个是”多种数据库”并行,随着数字化在业务场景中不断深化,各类的数据场景都呈现出了不一样的数据存储、查询、分析的要求,一两个数据库就解决所有的企业存储要求,已经不可能了。可以看到,在传统关系型数据库基础上,图数据库、时序数据库、文档数据库等都在快速发展。

    随着云计算的逐渐渗透,各家云厂商争相发布的各个数据库全托管服务(如RDS),使得企业内部已经不再需要单独的人去做很多基础的工作了,例如数据库的安装部署、备份管理、监控配置等;另一方面,随着数据存储场景的增加,数据库种类的增多,如何选择最合适的数据库存储引擎支撑业务快速发展与决策,成为了更重要的命题;另外,随着云厂商的积极投入(“juan”,第三声),如何选择最适合企业的云数据架构,也是企业的基本诉求。

    这对企业数据库架构师、数据库管理员就提出了完全不同的要求,无论是技能上,还是职业发展上,都发生了很大的变化。这也是为什么传统的认证,已经不再适应当前的时代,细心的数据库从业者应该已经注意到了这一点,一方面传统的认证参与人员变少了,另一方面各个数据库厂商自己认证也在变化(例如Oracle将废弃老的OCA,微软也重点推Azure相关的认证)。

    在多个云厂商并驾齐驱的时代,在数据库存储引擎百花齐放的时代,云数据库的认证就成为当前的最佳选择,云数据库认证将在众多的数据库认证中崛起。这也是云时代,对数据库从业者的新要求:熟悉多种数据库引擎、熟悉多个云平台上的数据库特点,基于此构建现代企业的数字化架构,帮助企业提升业务效率与决策支持。

    云厂商数据库认证的优势与缺点

    相比单个数据库认证,云数据库厂商的认证则更加丰富,更加立体,不是简单拘泥于某个数据库的技术细节,更加在意数据库的通用技术,例如阿里云数据库ACP认证就覆盖了MySQL、PostgreSQL、数据复制工具等产品。当然,”私心”也很明显,例如,就包含了大量的PolarDB、AliSQL等相关内容。当然,阿里云作为重要的数据库厂商,PolarDB又是最重要的产品,多去了解一下,也是非常有必要的。

    谁应该考ACP

    数据库的ACP认证难度系数是比较高的,并不适合所有的技术人员都去考。有几类人是建议获取这个认证的:

    • 所有的DBA、数据架构师
    • 构建数据相关应用的开发人员
    • 基于云架构的系统管理员
    • 想深入了解云数据库技术的技术人员

    考试的形式与内容

    这部分,在官网上有比较详细的说明:参考。这里简单说一下感受,目前,学习资料还不是很丰富,有一个200页的ppt,内容大致方向都涵盖了,但是实际考试试题是远超出ppt本身的内容的,ACP考试配套的还有一个视频学习课程,如果想顺利通过考试,认真学习视频是非常有必要的。另外,除了考试之外,还有一系列的动手试验,目前,这部分设计的都还比较简单,也都有step by step的引导,难度还不算高。

    完成动手实验,通过考试,就可以获得正式的ACP证书了。

    最后,也晒一下,据悉是全球第一个阿里云数据库ACP的证书,如下:

    参考文档

    1. Database@Wikiedia https://en.wikipedia.org/wiki/Database#History
    2. 阿里云数据库ACA认证: https://edu.aliyun.com/certification/aca09
    3. 阿里云数据库ACP认证:https://edu.aliyun.com/certification/acp17
    4. 阿里云认证: https://edu.aliyun.com/certification
    5. Oracle数据库认证: https://education.oracle.com/en/oracle-certification-path/pFamily_32
    6. PingCAP认证: https://learn.pingcap.com/learner/certification-center