十年磨一剑|沃趣数据库云产品战略首发
范式变迁,数据库服务化时代的到来
我是 DBA 出身,DBA 在前一二十年都是稀缺的岗位。
就在前几年,我还偶尔会帮助我爱人的团队安装配置数据库。这一两年她们上了云,就没找过我了。
还有个事我记得比较清楚,前些年企业面试,只要你懂安装 Oracle RAC,那你就已经是一名中级 DBA 了,这里说的仅仅是安装。当时坊间曾传言,如果有企业找你安装 RAC,那么你可以要 1-2 万的服务费。
上面的场景我相信这几年很少会发生了。
数据库行业在变得服务化。
就像文字刚开始只有贵族可以使用,现在人人都可以阅读。 就像以前只有极少数的智者可以写书立言,而现在到处都是书,「但却不知道要读哪一本」。
回到数据库的场景里,现在任何一位对数据库「0 经验」的用户可以通过亚马逊云的 RDS 服务、企业的私有云平台,方便快捷地获得数据库。这些云服务、云平台面向的用户已经大众化,并不一定是训练有素的 DBA。
用户通过 web 界面,就像使用 windows 一样,简单快捷几分钟就可以满足需求,这个界面隐藏了所有底层的复杂度,它构建在数据库基础设施层之上。
这正是我们所做的事:「打造数据库的基础设施,让数据库基础设施更简单」。
借助于服务化、借助于数据库基础设施的完善和赋能,在某种程度上人人都可以是一位资深 DBA 了。
金刚经说,“若见诸相非相,即见如来”,变化的背后是用户不变的需求,只有透过各种光怪陆离的表象看到本质,才能看得见用户真正的需求。以前企业雇佣专业 DBA、运维人员,购买专业设备,在本地化以资源占有的方式满足需求。
而现在,用户只要轻点鼠标,就可以自助式的满足需求,客户需求其实从未变化,客户要的是「如何快速完成任务,而不是资源占有或其他」。
沃趣数据库云产品战略
我们熟知的公有云 RDS 服务、各种(私有的、公有的)云平台的 IaaS & PaaS & SaaS,还有更细分的像 FaaS、STaaS 等单词中的 S 都是 Service,是「服务化价值主张」下的原型理念或开发出的具象化的产品。
「沃趣的整个产品战略已经全面拥抱云」,这是这次发布会我们最想告诉大家的。
云从大的层面,粗略分为私有云、公有云。接下来我的讲述也会按照这个结构,花开两朵,各表一枝。
|私有云产品
我们的私有云产品包含了 QFusion 数据库私有云平台和国产化替代两条线。
在真正开始介绍产品前,我想先问一个问题:数据库云的本质是要做什么?或者说,数据库云到底是要解决什么问题?
如果对这个问题做一个简短回答的话,那么是「打造数据库的基础设施」。
显然,对于这个回答,需要一个解释:什么是数据库的基础设施?数据库基础设施跟数据库之间的区别是什么?「两者的核心能力定位完全不同」。
数据库的主要作用是提供数据的存取服务,为了能更好、更准确、更安全的对数据进行存取,就需要一个强大的数据库内核,去提供例如事务的 ACID、锁机制、latch 机制、缓存机制、刷脏机制、故障后的可恢复机制、查询优化器等等的能力,这些能力的高低直接决定了一款数据库的好坏。
数据库基础设施层的核心能力是围绕数据库提供全生命周期的服务,是「为数据库打造分布式的操作系统」。
想一想,我们熟悉的操作系统是做什么的?操作系统最为核心的能力就是为「进程提供全生命周期服务」。
例如进程的创建、资源分配、多个进程之间对于资源优先级的编排调度、进程的销毁等等,另外操作系统屏蔽了底层硬件资源的复杂度,将其抽象为文件设备供上层使用。
数据库基础设施的管理对象换成了分布在各个节点上的数据库,数据库的创建、资源调度和分配、数据库的异常监控、高可用切换等都需要基础设施层来处理。
同样的数据库基础设施层对底层的计算、存储、网络的差异性进行屏蔽,标准化为直接可用的资源。
数据库基础设施层还要解决很多复杂问题,例如数据库的 RTO、RPO、SLA 的保证,CDP 能力、容灾备份设计等,以将数据库的不可用时间最大程度的降低、将数据的丢失最大程度的避免、将数据库的运维效率最大程度的提高等等。
这都是数据库基础设施层要做的事,是我们「All in 了 10 年」在做的事。
基础设施层提供的能力大部分原厂并不提供或者达不到企业级要求,因为对于他们,有着自己的核心问题要处理。
为什么数据库基础设施越来越重要?
随着数据库多元化成为趋势和既成事实,大部分企业已经不能够对这么多的数据库进行管理了。
学习 dbengine 上的数据,全球已经有接近 400 种较为流行的数据库了,one size fits all 的时代已经过去。数据库按照类别去看,商业的、开源的各占一半;关系型、非关系型比例差不多 3:1,关系型依然是王者。
数据库多元化是表象和结果,真正催生这个变化的还是业务和时代。有人说我们今天的世界既不是唯物的,也不是唯心的,而是唯数据的。PC、手机、汽车、物联网、工业互联网、智能设备、新零售等等都是时代下的新场景。不同的场景,数据的结构不一样,需要不同类型的数据库引擎来处理才更高效。
在中国的特殊环境下,国产化是一个最大的变量和趋势,前有硬件上的芯片断供,后有软件上的 Oracle 断供俄罗斯的警醒,国内的数据库市场现在正处在万物生长的阶段。貌似是一块肥沃的土壤,各种厂商纷纷宣布开始进入数据库赛道,投资人相信这个赛道肥沃到“插根扁担也能开花”。
但是数据库赛道是一个明显的技术密集型、资金密集型的产业,而且赛道的路径非常长,相信这种情况一定会逐渐开始收敛,从数百诸侯纷争的阶段,走到春秋五霸和战国七雄。
随着数据库类型越来越多,企业已经没有能力去管理这么多种类的数据库了,这些多元化的数据库背后,「经验 &标准并不统一,横看成岭侧成峰,远近高低各不同」。
一位有着丰富 Oracle 经验的 DBA 想要快速成为 MySQL 专家并不容易发生。这也给我们的产品研发带来了很大的麻烦,当然也是我们价值所在。
我们几乎要为每一个数据库设计高可用机制;为了保证 RPO 为零,不同的数据库实现方式也不尽相同,甚至相同的数据库实现的方式也不一样。
例如 MySQL 中可以选择半同步方式、可以选择 MGR 架构等;不同数据库的备份、恢复上差异性很大;不同数据库的容灾、两地三中心的实现上各不相同;其余像数据库的参数配置、数据库的升级、报警项、报警阈值等都需要仔细为每一个数据库做好测试和验证。
基础设施的重要性也在于此,希望可以通过我们的努力,屏蔽这些差异性和复杂度,提供给用户“整齐划一”的统一服务。一个没有在数据库领域深耕过的企业想要做到这一点非常困难。
另外更为重要的,好的数据库基础设施必须要有大量的实战环境的锤炼。回头看我们的产品,也正是经过了数百个客户的真实场景的锤炼才一点点进化出来的,并非完全是靠顶层设计出来的。
所谓专家,是在一个极小的领域内,犯过了所有可能能犯的错误的人。产品也是这样,一个个真实的问题和故障,甚至一个个来自客户的”刁难“,是让产品保持进化的秘方。
一定程度上说,「产品也是演化出来的,而不是规划出来的」。
|QFusion 数据库私有云平台
QFusion 是我们做的一款数据库私有云产品,专注于 PaaS,不带云底座,这让产品具有了最大的开放性,客户的裸金属可以成为我们的底座、各种私有云平台可以成为我们的底座、各种容器云可以成为我们的底座。
「开放性」是 QFusion 这款产品最重要的气质,我们希望通过打造最为开放的产品,发展上下游生态,使 QFusion 成为真正的数据库基础设施。
目前,QFusion 已经和超过 20 家的私有云平台完成了产品集成,支持了所有主流的数据库,可以在 x86、arm 上运行。QFusion 的开放性还体现在它可以跟用户的租户、权限体系进行对接、可以跟用户的云平台进行对接。
QFusion 之上的每一个数据库,对,是每一个,我们都提供全生命周期管理能力。全生命周期是一个被高频使用的词汇,这里要特别强调一下,「QFusion 是真正的全生命周期」。
国外有一家公司叫 bitnami,它的产品挺有意思,它的网站上提供了数百种应用的快速部署,但是部署之后的事,它并不提供服务,当时我第一次体验这个产品时,很是惊讶,因为我们一直以来的思路就是每增加一个对数据库的支持,就要配套一堆的产品功能,这往往需要比较长的研发和测试周期,直到遇到了 bitnami 我才知道原来还可以这样玩(* ̄︶ ̄),目前它已被 vmware 收购。
我们这样的认知,跟我们一直服务客户的画像有关系,都是大 B 企业,这些企业对于数据库基础设施层的能力要求都是企业级的,部署仅仅只是第一步,后续的 RTO、RPO、SLA 的保障等等能力都至关重要。
管理类产品的缺陷是什么?
目前的 QFusion 采用的是沃趣自研的第二代技术架构,第一代(产品叫 QMonitor)整个技术架构层比较落后,算是一个管控类的产品,后来因为遭遇了各种各样的大的、小的问题,我们终止了迭代。
总结第一代产品的失败,这里说二点最为重要的原因:
「过于发散,不标准化」一次我们去深圳跟客户交流,他们使用 MySQL 不到两年的时间,数据库的架构有主从、双主、Galera、MGR,各种架构的数据库版本也不统一;高可用的切换有自己写的脚本,有开源的;操作系统的类型和版本也是参差不齐;各个数据库的配置标准化、参数标准化、是不是都备份等就更不用说了,他们希望我们的产品可以纳管他们的环境。
这是管控类产品经常遭遇的典型场景,产品为了兼容用户千差万别的环境,导致产品稳定性堪忧。
A 用户用的很好的高可用脚本,在 B 用户为什么就不工作了?
A 用户的故障解决后,B 用户无法复用这一红利,因为 B 用户没有这个场景。
产品经常就陷入在这些问题中,深一脚、浅一脚的往前走,随着版本的迭代,产生了越来越多的版本分支、patch。
做大而全很容易,做少而精很难,全面的东西是平庸的。对于管控平台来说,如果不能克制自己做多的欲望,产品都是被“加法”作死的。
QFusion 是「不破不立」的,即需要把用户的老系统迁移至新平台,QFusion 并不对老平台进行纳管。我们做商业决策,选定一种战略,其实都是 trade-off,都是取舍。我们相信做出这个取舍带来的好处是长远的、值得的,这代表着数据库整体环境将是标准的,经过极大收敛的。标准意味着更少的运维,更少的故障,更少的投入。
用户可以通过循序渐进的方式,一点点的把老系统下线、迁移至 QFusion,这个也是我们现有客户普遍采用的方式。另外,我们通过发展生态(跟用户现有的各种私有云平台可以原生集成)、提供便捷的迁移工具,将“破”的代价降到最低。
而传统的纳管类平台不是这样,他们虽然可以对现有环境进行纳管,但是会出现“一千人眼里有一千个哈姆雷特”的惨状,由于环境不标准带来的稳定性差、运维成本高、成本投入高等问题,会像个幽灵一样不断反复出现,就像是你买房使用了按揭的方式,需要忍受漫长的分期之“痛”。
往往买了管控产品的企业,也「无法在公司内部推行标准化战略」,因为既然给大家开了一个非标准化的“口”,这个口就会长期存在并合理化。
「没有资源池化的能力」云最重要技术特性,如果只说一个,那应该是资源的池化。在我们第一代的产品里,用户如果需要申请数据库,还需要去选主机,因为我们当时的技术并没有对后端的资源进行池化,还是管控的思路,但是到了云场景,用户可能是业务人员,并不知道把数据库放置在哪个主机比较合理,这个能力应该下沉到平台层,由平台层进行资源编排和调度。这是大部分管控类产品的缺陷,面向管理员而非普通用户。
引入云原生技术栈到数据库场景
总结第一代管控类产品的本质,可以说是面向 DBA,做到了运维经验的代码化,将数据库的经验不断地沉淀到平台层,消除掉人员服务的差异性带来的各种问题,通过平台层来处理遇到的各种问题。
第二代产品我们「从 0 重写了整个技术栈」,命名为 QFusion,这一代产品除了运维经验代码化之外,真正解决了上一代产品的最核心的两个问题:「资源的池化」以及「产品标准化」。
基于池化的设计,用户只需要提交需求的规格,例如多少 CPU、多少内存、多大容量,不需要关心后端资源的情况,平台通过调度算法来决定将新的数据库放置在哪台机器之上,如果发生了故障,调度算法也会自动把服务切换到资源空闲的机器上。
运行在 QFusion 之上的数据库将都是标准的,在以前用户的环境中,可能 100 套库,存在着 50 个配置、10 几种架构、n 种实例规格,通过 QFusion 可以极大收敛这种情况,真正做到标准化。
最重要的,在技术上我们引入了全新的云原生技术栈到数据库场景中,借着「K8S & 容器」技术的赋能,让我们可以聚焦于业务本身的开发。任务的编排调度等都可以交给 K8S 来完成,而之前这些工作不但我们要做,而且稳定性差 Bug 百出。
此外容器作为轻量级的虚拟化技术,为数据库这种性能敏感型的场景也带来了红利,这个红利一句话总结就是:性能好、整合密度高、迁移性好(跨平台、混合云、多云场景下)。
QFusion 的商业化策略
QFusion 的商业化策略目前主要有三种方式。
一是传统的通过沃趣自有销售团队进行直销,这是沃趣十年来驾轻就熟的方式。
二是 PaaS+的集成策略,QFusion 的形态为 PaaS,并不自带云底座,通过发展生态,跟私有云、容器云、服务器等厂家进行产品集成,由他们来提供底座。
我们专门成立了产品战略部以积极的发展生态,在私有云的场景里,很多用户都需要产品能与他现有的产品或流程可以集成。这也是我们的优势所在,我们除了提供标准化产品,我们还可以跟用户的流程、权限、现有平台之间进行对接。经过我们一年多的实践,已经具备了丰富的集成经验。
相较于公有云场景中这种标准化的服务,在私有云场景中存在大量场景需要跟用户本地化环境进行对接和适配,如何将集成的工作进行归纳和抽象,最后提供标准化的服务,将会成为私有云产品的竞争优势。
在跟私有云生态上的集成方面,我们目前已经完成了跟华为、ZStack、浪潮云、华云等数十家生态的产品集成。
集成战略也是以「用户第一」为考量而做出的选择。因为大部分的用户或多或少都已经购买了私有云平台,如果 QFusion 能原生的跟这些平台进行集成或兼容,那么将大大降低用户的使用成本和迁移成本,再结合沃趣的数据迁移工具,将最大程度的降低用户使用新产品的成本。
同时对生态合作伙伴来说,QFusion 也能帮助他们完善其云能力。数据库基础设施是一个非常复杂、专业的领域,沃趣投入了「数百人、十年、All In」,这个成本对于大部分云厂商来说,还是太大了,不如选择跟专业的数据库私有云厂商进行集成,做能力整合。
中国移动公有云是 QFusion 目前服务的最大规模的客户,它就是通过集成的方式,目前运行实例数超过 50000,移动云 RDS 背后的 MySQL、SQL Server、TiDB、MariaDB 的 PaaS 能力由 QFusion 提供。这个场景让 QFusion 经历了大规模场景的考验。
三是互联网化的方式。我们已经发布了 irds.cn 网站,推出 QFusion 的社区版,目的是拥抱运维和开发人员,希望我们打造的基础设施,可以以最短的路径让运维和开发人员收益,成为他们日常开发工具的一部分。
这种产品推广方式对我们来说是一个很大的转变,因为不管是直销和集成,面向都是企业高管或者关键决策人而非最终用户。而网站的用户画像直接切换到了运维、DBA 和开发,他们代表着一线和上游,是产品的最终用户,这对我们是一个新的尝试。
这里做一个畅想,那就是「希望每一个运维和开发人员可以把 QFusion 作为日常的工具去使用,那就是我们最骄傲的事情」。
另外,QFusion 已经开始支持订阅模式,跟传统的软件买断+维保的模式不同,订阅模式前期投入少,越来越多的用户开始接受这种模式。
|国产化替代产品
在数据库私有云产品系列中,国产化替代产品是我们在创立之初就开始投入的,已经有 10 年的时间,十年的时间里,有两件事我们做了最大程度的努力,一个是性能,一个是稳定性。
QData 系列作为国产化替代产品中的拳头产品,复购率达 70%以上,有一句话是形容最好的朋友的:“既有乍见之欢,还无久处之厌”。最好的产品也是这样,复购率最能代表用户使用产品后的满意度。
十年的时间里 QData 在市场获得了一个标签:性能怪兽,代表了它在性能这个场景里可以神挡杀神,佛挡杀佛。不过关于性能我今天在这里并不想再说什么,我想谈谈稳定可靠方面我们做的一些重要工作。
「面向失败的架构设计」 在设计之初,就认为每一个组件都可能失败,基于这个设计,需要去配套完善的自动切换和接管机制以及冗余机制。
「工单数据的挖掘」 在产品迭代上,我们非常重视对于售后工单数据的挖掘,对于每一次的产品问题处理,这些数据都会被记录到工单平台中,产品会对每一个工单进行分析和挖掘,最终对产品进行迭代和完善。产品的进化在这个维度上变得非常有意思,经常不是你有一个蓝图然后一步步设计出来的,而是不断的根据问题和反馈迭代出来的。
「稳定性测试体系的建立」 在分析工单数据过程中,我们发现了很多问题是因为产品测试出了问题,为了从产品上游解决问题,我们开始建立产品的稳定性测试体系。
「新技术应用上的保守和克制」 对于新技术的学习和研发我们始终在行业里走在了最前面,例如我们最早支持 NVMeoF 协议,我们最早支持 RoCE、透明压缩,我们最早推出了专门针对数据库的 CDP 备份一体机,但是对于新技术的应用我们始终坚持保守和克制,不会轻易在生产环境使用,会通过多个客户的 POC 以及经历了疲劳性测试后才会有选择性的在边缘类场景用起来,成熟后再进行推广和复制。
「软硬协同」 软硬协同给大部分人的印象是性能的飞跃,但是还有一个重要的作用是可靠性,只有软硬一体经过长时间验证的产品才能确保最佳的可靠性,大量的故障都是由于两者不能适配产生的。
「原厂交付」 为了将产品的稳定性达到最优,我们在产品的交付方面也始终坚持原厂交付而非外包,这块对于我们是一个比较大的成本,但是从长远来看,会成为产品竞争力的一个保障和来源。企业级客户除了产品,其实非常看重优质的服务。我曾经跟我们公司的 top sales 聊天,我问他,你觉得你能把产品卖的好,除了产品本身外,最重要的销售素质是什么?他说:「销售素质不重要,最重要的是我们的优质服务,随叫随到」。他所言非虚,有一次一个上海的客户有问题,他在疫情的情况下顶风作案,拉着一车人过去给客户处理问题。因为这次的事件,坏事变好事,充分赢得了客户的信任。
QCP 云管平台
为了能给用户提供统一的数据库私有云服务,我们将国产化系列产品和 QFusion 私有云管控端进行了整合,给用户提供一个统一的服务入口-QCP 云管平台。
|公有云产品 Squids
接下来说一说我们在公有云上的新产品 Squids,这是我们在公有云上提供的数据库服务,专为公有云打造的数据库基础设施。目前它能提供阿里、腾讯、华为、亚马逊、微软、谷歌 6 朵云上的 MySQL、Redis、ES、MongoDB、ClickHouse 5 种数据库服务。
云在刚出现时,各个云供应商以 IaaS 的资源供应为主。但是随着云的发展,它们在一步步地突破边界、攻城略地,PaaS、SaaS 业务也就理所当然的做起来了。
伐冰之家,不蓄牛羊,我们对未来的判断,云厂家还是会回归于 IaaS 基础设施,之上的部分逐渐归属到各个生态。当然这里面不是黑白、0&1 的关系,云厂商一定还是会去做部分的 PaaS、SaaS。
站在当下的时点往回看,有些以往发生的事现在可以看的清晰一些了。我说几个标杆性的事件来回顾一下。
「MongoDB」
最开始是作为一家文档型数据库供应商,从 2016 年开始,已经发布了云端的 Database as a service 的多云服务-atlas,这真的是一家响应时代需要、勇猛精进的公司,相对于 MongoDB,Oracle 就显得过于刻舟求剑了。atlas 目前的营收占到了 mongodb 收入的一半左右。各个云对于 atlas 来说,都是资源,是无限的、可弹性伸缩的、按需使用的资源。
「Snowflake」
一家提供 data warehouse as a service 的公司,创业不到十年,提供的是数据仓库的多云服务,目前估值 700 亿美金左右,一度比 IBM 这个百年老店的估值都高。传统上,我们的认知是企业更愿意为在线交易系统付费而不是数仓,因为 TP 型业务在为企业真正在创造营收,但随着大数据、智能化时代的到来,数据的分析变得越来越重要,数据已经成为这个时代的第五生产要素,这个重要性从 snowflake 700 亿美金的估值上也可见一斑,这个市值是 mongodb 的接近 3 倍。
「Aiven」
一家提供 data as a service 的数据服务的初创公司,目前估值 20 亿美金。同样的,它基于公有云的 IaaS 资源,搭建企业级的数据服务。它做的业务跟我们更为相像。
各个云厂商目前基本都提供了 marketplace,这个作为开放的云市场的入口,引入生态,这些生态所提供的云服务,很多云厂商自己也有,一方面云厂商不得引入更多的生态以增加平台竞争力赢取客户,另一方面,他们可能更在意的是:客户的消费!消费!消费!让他们的客户愿意在它的云上消费,才是真正的大战略。
当下,公有云上的基础设施已然完善,我们也必须躬身入局,基于新的基础设施,考虑做一些事。
在今年的 3 月份我们发布了 Squids,基于公有云基础设施提供数据库 RDS 服务,或者叫 DBaaS 服务更准确。
我们在研发 Squids 之前已经习惯了用本地数据中心资源来打造产品,我们对于 SSD、服务器、IB 等等如数家珍,但是到了公有云,以后的程序员去编码和开发的时候,已经不会像我们以前,看到的是 CPU、硬盘、网络,他们面对的是云上的 EC2、S3 等的 api 接口,编码的底层发生了巨大的变化。
我们需要认真学习云端的产品,好在云端基础设施、文档都非常完善,虽然产品类目阡陌纵横,但是非常的服务化,学习成本并不高,我们要做的是把我们对于数据库的经验重新用公有云的方式再做一遍。
独木成林的产品体系
产品总是在特定时间、特定技术下推出的,都具有明显和不明显的缺陷与原罪,好在我们并没有刻舟求剑待在原地,我们一直在跟随大环境做产品的优化,通过连接新的基础设施、新技术、新理念来积极适应时代需要。
我把沃趣的产品体系总结为:独木成林,虽然我们有着看似丰富的产品,但是他们有着一以贯之的逻辑,都是围绕数据库来打造最适合时代的基础设施,就像内蒙秋天的白桦林,一眼看上去蔚为壮观,但是其本质是简单的。
相信未来的很长时间,我们都会保持聚焦,弱水三千只取一瓢。
文章整理自《行业首发——沃趣中立企业级数据库云产品版图》 —— 沃趣科技 CTO 魏兴华
评论