云数据库 UDB 的三重境界(一)

阅读数:120 2019 年 11 月 13 日 18:52

云数据库UDB的三重境界(一)

前言

公有云服务本质上是用户和传统 IT 基础设施的连接器,通过将传统 IT 繁重的流程、低效的工作方式、不透明的价格以及糟糕的用户体验打碎,重构出诸如云主机、云对象存储 /CDN 、云数据库等产品,让用户方便地获取计算和存储能力,同时保持使用习惯不变。

经过近十年的发展,一个越来越明显的趋势是公有云服务正逐渐从基于传统 IT 基础设施的包装和组合式创新,演进为围绕公有云场景、计算和存储能力的重新进化和升级。诸如容器云和 Serverless 架构、AWS Aurora 云数据库、UCloud 安全屋等,便是这一趋势的典型代表。

由此,我们可以对公有云的发展进程做一个两阶段的概括。云计算 1.0 的关键词是连接,通过互联网和公有云来连接用户和计算存储能力;而云计算 2.0 的关键词是进化,围绕公有云场景,重新看待全社会使用计算和存储资源的问题,对现有 IT 基础设施、模式做进一步的升级和进化。

站在云计算 1.0 向 2.0 进化和升级的档口, UCloud 云数据库团队将用一系列文章来梳理过去、剖析当下、想象未来, 以此来全面展现 UCloud 云数据库服务( UCloud DataBase Service,简称 UDB )能力,分享我们过去的经验和对未来的思考。

基因

考察一个云计算服务的发展犹如观察一颗种子落地后的生长。传统 IT 设施向云端变迁的趋势是云服务生长所需的阳光和雨露,但一颗种子能否长成参天大树,除了足够的阳光雨露, 还要考察这颗种子的基因和成色。

在 UCloud 公司的四大价值观里,“客户为先”是放在首位的价值观。 这体现了 UClouders 一以贯之的理念:只有为客户创造出真正的价值,企业才能够生存和发展。创造真正的用户价值是 UCloud 所有产品的基因,也是 UDB 产品和云数据库团队的基因。

对于 UDB 产品而言,创造真正的用户价值体现在两个方面:

1. 需求驱动的产品研发和运营

需求驱动产品设计,技术评估实现可行性,必要时非标快速定制,定制逐渐沉淀为标准产品,整个过程循序渐进。小步快走,是互联网研发和运营的要领,也是公有云服务的要领。

以 UDB 跨地域跨可用区容灾为例,从单机版 UDB 开始,不断有用户因跨可用区容灾场景提出建跨机房从库的需求,中大型互联网客户尤为强烈。起初,以一种非标形式来提供能力的支持。后期因 VPC 2.0 上线,技术也愈加成熟,现已将这种非标能力转化为标准能力,即多可用区高可用 UDB 产品,同时也将 UDB 由可用区级提升为地域级,产品形态得到一次质的提升,传统模式下需要付出极高成本才能构建的异地容灾方案,通过 UDB 产品可以轻松获得,用户价值进一步被创造。

2. 一切以客户价值为归依,舍小我成就大我

云计算产品是 IT 基础设施类产品,技术人员在云服务的研发中起主导作用。但技术并不直接等同于用户价值。即使再先进的技术,离真正的用户价值还是会有一段距离。这段距离则需要用做产品的匠心来来弥补。

所谓的产品匠心,非常重要的两点是对需求的洞察和对技术的取舍。技术人员常见的一个毛病是先入为主,将自己觉得酷的牛的技术点等同于用户价值。但事实往往证明不一定。真正的用户价值创造,要打破技术人员思维的藩篱,洞察到用户需求的本质,从需求角度出发做技术选型,必要时敢于放下自己的喜好甚至利益,成就真正的用户价值。

UDB 产品在硬件架构上选择了物理机 + Docker 的方案,而不是业务普遍的云主机方案,是这方面的经典案例。

云数据库是云主机之后出现的产品。如果基于云主机来构建云数据库产品,能够充分复用云主机成熟的能力,云数据库团队只需要关心硬件层面之上的问题。另外,选择云主机来构建,能够降低研发成本,快速推出云数据库产品。

但细究下来,云主机的方案存在不少问题。最大的问题是 IO 性能。云主机基于虚拟化技术,拥有完整的 OS 内核,这就导致 IO 协议栈太长, IO 有额外开销;而 Docker 利用 Linux 的机制做隔离,本身处于用户态, Docker 内进程的 IO 操作,由物理机 OS 内核统一管理,性能接近于原生物理机,远胜于云主机方案。在 IO 的稳定性上,云主机的 IO 管理涉及三个层次( Guest OS 、 Hypervisor 、宿主机 OS ),而 Docker 的 IO 由物理机内核直接管理,因此在 IO 稳定性上的表现,云主机亦不如物理机 + Docker 的架构。

因此,为了更好的 IO 性能和稳定性, UDB 从一开始就选择了物理机 + Docker (前期是 CGroup ,2014 年全面转向 Docker )的架构。事实证明,这是一个明智的选择。横向对比各大公有云厂商的云数据库产品,在性能上 UDB 每次都是完胜。

三重境界

王国维在《人间词话》二六节写到:古今之成大事业、大学问者,必经过三种之境界。“昨夜西风凋碧树,独上高楼,望尽天涯路”,此第一境也。“衣带渐宽终不悔,为伊消得人憔悴”,此第二境也。“众里寻他千百度,回头蓦见,那人正在灯火阑珊处”,此第三境也。此等语皆非大词人不能道。然遽以此意解释诸词,恐晏、欧诸公所不许也。

如同任何伟大的事业, UDB 的成长之路,也经历三个阶段,细分为三重境界。这三个阶段互相独立,又存在一个内在的逻辑,将它们牢靠地连接在一起。 这个内在逻辑,就是 UDB 的基因:创造真正用户价值。 UDB 在每一个阶段的萌芽、发展、跃迁,无一不是这个基因和理念在发挥作用。

1. 做透一个点:取代自建数据库

UDB 产品第一阶段要比拼的是能否比用户自建数据库(基于云主机或者自建 IDC ),具备更大的用户价值。只有创造出更大价值,形成更高的价值势能,才能吸引用户将业务迁移到云数据库。所以 UDB 的第一个目标就是把“取代自建数据库”这一个点给做透。

2. 构建功能网:全方位覆盖用户需求

做透“取代自建数据库”这个点,本质上是公有来运营 DBMS 软件,创造出快速交付、运维托管等全新价值点。但仅仅有这一点还不够。事实上,过去几十年来,围绕 DBMS 出现了从容灾、迁移、安全到读写分离、数据拆分等解决方案和软件,对应用户业务的各种需求。这些解决方案和软件同样需要云化,并且需要利用公有云的优势产生比自建更大的价值。如此,才能不断强化云数据库的价值势能,服务好已有用户并吸引更多用户向公有云转化。

因此, UDB 产品第二阶段要做的是构建一张云数据库功能网。在第一阶段的基础上,继续将用户需要的各个功能点做透。众多功能点以及功能点的组合,最终构成一张大网,全方位地覆盖用户的各种需求。

3. 三位一体融合平台:云计算 2.0 下的内生进化

不管是第一阶段的做透一个点,还是第二阶段的构建功能网,对新价值的创造都是基于成熟的软件或解决方案,利用公有云来实现功能的随手可得、快速部署和弹性扩展。这种模式清晰明确,但并不意味着云数据库价值创造的终点。

云计算 2.0 时代,公有云开始摆脱传统 IT 基础设施和软件的藩篱。在产品和技术上,围绕自身业务场景开启独立进化。其中,如何解决全社会大规模用云时的成本、效率和智能问题,是这场进化的核心。而 UCloud 云数据库团队也需要进一步去思考,是否能提供更加廉价优质、高效智能的云数据库产品。

带着问题和思考, UCloud 云数据库团队内部做了多次探讨,最终达成这样一个认知:云计算 2.0 下的云数据库服务,必然会是对内架构同一化,对外需求支持多样化以及数据库运维智能化这样三位一体的组合。

在接下来的内容中,将就做透一个点、构建功能网、架构统一的多样化数据处理体系展开详细介绍,用具体的例子来勾勒 UDB 发展的三个层次,三层境界。

评论

发布