云原生数据库可以说是当下最火的产品技术形态之一。火到什么程度?很多为了云而云的数据库产品也号称自己是云原生的。

 

概念大火的同时也让许多门外人打出了一串问号:


云原生数据库到底是怎么一回事儿?

它怎么就云了、怎么就原生了?

什么是云原生?

云原生数据库又有什么用?


所有的疑惑汇成一句:“你说的这个云原生数据库……它厉害么?”


先说小偶的结论:云原生数据库厉害,而且很厉害。那么它究竟厉害在哪儿呢,咱们还得先从云原生说起。


到底什么是云原生?



直到今天,关于云原生的定义仍然没有一个确切和统一的说法。

 

云原生这一概念的提出者 Matt Stine 于2017年将云原生归纳为模块化、可观察、可部署、可测试、可替换、可处理6特质。

 

而云原生领域影响力最大最有话语权的组织CNCF,他们给出的定义则是这样的:

 

云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。 


这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。

 

CNCF,全称为Cloud Native Computing Foundation,中文译为“云原生计算基金会”


概念众说纷纭,而且又都使用了大量的技术名词去描述,难免让人看的一头雾水,不得要领。我们可以试着从字面意思来解读,以此揭开一些云原生的面纱。

 

云原生中的“云”表示存在于云中,而不是传统的部署于本地。比如云盘中的文件就在云中,而不是存储在用户电脑的硬盘中。“原生”则代表着应用从设计环节便考虑到云环境的因素,为云而设计,在云上运行。

 

也就是说云原生是生在云上,长在云上,也应用于云上,这么一个足以称之为“根正苗红”的技术。

 


了解了云原生,接下来让我们看看云原生数据库拥有怎样的神通,它因何而火?


云原生数据库应该长什么样?



云原生技术对于数据库产品的意义之一,便是它有利于构建和运行可弹性扩展的应用。也就是说,云原生数据库具备更好的弹性扩展能力。因为云原生数据库拥有以下这些特征。

 

首先是普遍可访问高可用性。因为云原生数据库是完全存在于云上的,所以它可以随时随地的从多前端访问,提供云服务的计算节点。因其集群部署在云上,所以单点失败对服务的影响特别小。而且当需要升级或更换服务的时候,可以对节点进行不中断服务的逐渐升级。



其次是高扩展性可迁移性。云原生数据库会与底层的云计算基础设施分离,所以能够灵活及时的调动资源进行扩容和缩容,以从容应对流量激增可能带来的压力,以及流量低谷期因资源过剩造成的浪费。也正是因为能够灵活扩缩容,云原生数据库也具备很强的可迁移性,我们甚至可以粗暴的理解为在新的位置扩容100%又在旧的位置缩容全部的50%。

 

此外,基于高扩展性、高可用性以及可迁移性等特征,云原生数据库还具备可监控性安全性的特征。

 

 

一方面黑箱状态下无法保证及时处理扩容、节点故障等需求和问题;另一方面全盘部署在云上且各服务之间相互独立,可以对应用或服务提供更多层的安全防护和实现许多新的容错服务。

 

最后是演进式设计快速迭代。云原生数据库中的各项服务之间是相互独立的,个别服务的更新并不会对其他部分产生不利影响,而不是一旦出了问题就只能全场熄火。此外,云原生的研发测试和运维工具是高度自动化的,这使得应用的更新会更加快速频繁。

 

将网络资源和云更好的融合在一起,处处独立而又自然联系着,才能更充分的发挥数据库上云的优势,得到更高的效率。


怎样才算一个好的云原生数据库?



如果一款数据库产品具备了存储和计算的完全分离以及执行引擎的完全弹性这两点,那么它就能称得上真正发挥了上云的优势,就可以将数据和云更好地融合在一起,就可以说自己做好了云原生。

 


拿小偶家的核心产品OushuDB来说,作为可以原生运行在云平台中的并行数据仓库引擎,它就做到了存储和计算的完全分离

 

存储和计算的完全分离真正实现了不把所有的鸡蛋放在一个篮子里,而不是像一些仅仅声称自己是云原生的数据库产品,实质上是把两个篮子绑在一块或者在篮子中插了一块隔板而已。

 

实现存储和计算的完全分离,不仅能使数据库产品在安全性上有巨大提升,而且还是实现产品执行引擎完全弹性的重要基础之一

 

由于OushuDB的执行引擎具备完全弹性,所以它可以很容易很方便的做动态的缩容和扩容,无论是存储节点还是计算节点需要增加就可以马上增加需要减少就可以马上减少,可以动态的把计算派遣到数据所在的位置。

 

这就让产品的性能和功效真正成为了完美的革命一块砖,哪里需要哪里搬。而且是需要多少就可以搬多少,不需要那么多的时候还可以把多余的砖头收回去,不需要找个地儿堆着。避免了小马拉大车或者高射炮打蚊子这种尴尬情况的发生。

 

也正是因为具备了这两个特点,OushuDB才算得上是原生运行在容器云平台里的一个分布式数据库

 


真正的云原生数据库就应该像城市自来水系统那样,无论你在哪里,只要拧开水龙头,就可以随意取水使用,只需要事后按用量交水费就可以了。


不然的话,如同那些为了上云而上云的产品,本质上是自来水龙头接在了楼旁的水塔上,水用完了要等着水塔下次补水。水不够用,想换个大水箱,还得考虑水塔能不能承受得住?要不要连水塔主体一块盖个新的?这样的自来水又和挑水回家存在缸里又有什么差别呢?

 

云原生在数据库上的应用并不会改变云和数据库本身的状态,但它的应用让云变成了更理想的云,也让数据库上云有了货真价实的意义。


聊了这么多,那升华了数据库的云原生究竟有多厉害呢?用一个套娃行为来说就是:


2011年,Netscape公司的创始人马克·安德森说:“软件正在吞噬事件”;
而后在2016年,OpenStack基金会创始人Jonathan·Bryce 补充说:“世界的一切源于开源”;
近几年来,云计算又用极快的速度扛起了指引未来方向的大旗;
而在云计算概念日趋清晰且细化的今天,只有云原生才是那个能号令天下的宝刀屠龙。