中国数据库走向国际的门槛: 15分钟准则

在十五分钟之内跑通第一条SQL

笔者曾经负责国内某Top云厂商的数据库的海外业务和产品设计。简单的说包括TP,AP,NoSQL和Utility的所有数据库相关产品,负责除中国大陆以外所有的业务和客户。三年时间撞墙的教训实在不少。

在官方宣传上,经常会有打榜(Benchmark)世界第一,顶级峰会(VLDB, Sigmod, ICDE)文章,发布全球领先的技术内核之类。尤其是从TPC榜单或峰会文章的角度,中国数据库已经是世界第一梯队了,1几十年几代人的努力是有目共睹的。同时真正的扬帆入海的时候,国产大厂的数据库,即使是第三方相对公平的市场(如东南亚)都还是有明显的差距的。虽然常常归于性能(注意:不是性价比)、功能(比如取代Oracle)、还有部分地缘政治问题(美国本土较明显),而在实践中遇到的却常常:试用的门槛太高

今天同大家聊聊产品与用户的距离:15分钟。

一、TTHW: 15 minutes test (全称15分钟10刀测试 - 15 Minutes & 10 Dollars )

TTHW(Time to hello world)是指用给定的编程语言编写一个“Hello, World!”程序所需的时间,这是衡量一个编程语言易用性的标准之一。由于“Hello, World!”程序主要的介绍对象是不熟悉该语言的人,“Hello, World!”程序越复杂可能越表明该编程语言不易使用。 2 TTHW的标准已经被扩展到多个开发者领域,比如API设计体现开发者采用该API的容易程度。

具体到数据库,门槛便是客户在第一次尝试使用该产品过程中需要耗费的成本和资源,包括时间成本。我把它总结为15分钟测试3:从一个技术人员听说过某一个产品,,到可以运行这个产品,完成第1条SQL语句所需要的时间。影响该云数据库产品的“15分钟”门槛是从多方面的:账户生成,产品下载,代用券充值,系统设置,安装部署。然而有几个假设是必须的:

  1. 环境:或者是免费的云环境;或者是单机环境(macbook是最常见的)
  2. 费用:没有费用。千万不要认为1元或0.01元是合理的(掏出信用卡/支付宝的过程,就轻轻松松的把门槛变成了墙)
  3. 技术能力:面向年成本50万RMB的开发。拥有3~7年的工作经验的主力开发,他们也是真正的用户。

二、2小时 vs. 2天,学习中成长

时间倒退到2017年。当时有幸在国产某分布式分析型MPP数据库做研发相关的工作,产品架构和业务都是对标Teradata和Greenplum。当时还以onPrem部署为主。产品在Beta阶段,已经有一些重量级客户在尝试使用,我们感性的认识到机群部署的困难在阻碍业务的成长,团队希望进一步量化和具体化其中的问题。于是设计了“15 minutes test"(准确的说是 3 days)。

刚好团队请到一位在IBM数据库团队工作了5+年的同事,非常符合条件:1)有足够的数据库经验;2)不熟悉待评估的产品。于是入职的第2天,便提供给该同事所有的内外文档和标准的服务器,任务是部署我们的MPP和竞品数据库TeraData。结果是:

* TeraData: 2~3小时(没有竞品TeraData的经验,只采用公开的文档)
* MPP: 2.5天(头一天没有部署成功,第二天请设计部署脚本的同事支持帮助)

这是在6年前,云数据库还不成熟。线下安装一个复杂的分布式数据库,用个半天时间是可以被接受的。即使如此,差距是明显的,也就是说一位在数据库行业耕耘多年的同事,无法根据已有的文档独立部署安装。可想而知,客户将是束手无策的。客户一般是达不到这位同事的技术能力,更谈不上能够接触内部文档和直接获得工程师的协助。在当时如果要部署该数据库,就必须由公司人员到现场去安装(事实也如此)。无法通过“15分钟法则”就意味高昂的现场服务成本,完全无法在国际推广

可喜的是,该MPP逐步成熟起来,通过开源和云化,已经在国内市场占有举足轻重的地位。

三、面向国际的T & T

分布式HTAP数据库TiDB。从Day One, TiDB就完全拥抱开源,让开发者用起来是成功的关键。2018年的时候,TiDB还没有云化,刚刚做了新结构的改造,号称可以在一个单机环境下运行。我当时把它安装到了我的2017 MacBook Pro上,是一个docker上的虚拟环境,安装过程基本上满足了上面提的15分钟测试(花了不到一个小时时间,安装步骤还是比较清晰的)。不过在我完成了几个简单的SQL之后,TiDB把Mac的资源占满了。还没有机会再进一步尝试功能,就卸载了。

同样一个产品,当2021年我再一次安装的时候,在同一台MacBook Pro,它的提供了针对本地cluster(macOS and Linux)的部署TiUP,轻轻松松的通过了"15分钟测验",这次是真实的15分钟。很容易的让我完成了数据库事务能力与MySQL的对比工作。现在TiDB提供了直接的云化的产品,在K8S上做了部署的提高。中国数据库行业,TiDB是走向国际比较成功的一个团队了。有很多东西,值得我们学习。

在2022年我接触了一个刚刚出海的时序数据库产品TDengine。当时我在咖啡馆约了交流,刚好早到了半个小时,在买咖啡和朋友到达之间,我完成了TDengine的安装部署和使用。还是上面提到了那台2017的Mac。这是另一个生长于国内,并且有能力出海的数据库产品。

四、对云数据库的挑战

相对来说,单机版的数据库比如MySQL或PG,一行安装: $ brew install mysql, 是比较容易在开发者个人环境运行的,满足15分钟测试。

上面两个例子中都是集群数据库。它的挑战在于本身不是为单机版设计的,正常配置会要求多个节点。但我们可以看到这些成功的先行者们都会想方设法让产品可以落到每一个开发者的开发环境,比如一台macbook。

然而云数据库,比如RDS-MySQL,要增加了几道门槛。以华为云为例,其安装部署文档
云数据库 RDS 快速入门中RDS for MySQL 快速入门有46页,步骤一“购买”11页,步骤二“连接”33页。云数据库的自动化了安装部署,同时添加了规格和网络配置的步骤。要公平的讲,这些步骤在正式上产品(product environment)的时候都是必须的也是耗费人力资源的,近五十页的文档也是为了保证全面完整性所必须的。同时,产品设计者忽视了试用者的“15分钟法则”

在这里插入图片描述

华为云数据库RDS首页宣传视频中宣称“部署到访问只需几分钟”(视频第33秒)。如果不是专门操练该流程,而是首次使用该产品的程序猿。根据该教程一步步在浏览器上,点击鼠标,这将是一个小时的操作。而且是在不出错的情况下,并且不包括需要注册账号,付款等。远远超过了上文提到的15分钟准则。

公平的说,阿里,腾讯,火山,都面临类似的问题和挑战。有心的读者们任选一个尝试一下,假设你之前没有被训练过,看看30分钟能够走到哪一步?多长时间可以完成第一个SQL语句?海外成熟的AWS,GCP等等也没有银弹,只是相对来说,海外的云厂商在步骤上更人性化一些,比如说在生成实例时,把说明的文档同生成实例的步骤在浏览器并排安放,便于使用者在同一个屏幕抄作业。同时海外的云数据库采用了下面一节的解决方案。

五、产品与用户之间的距离

虽然没有放之四海而皆准的银蛋,办法总比困难多。

  • TDEngine采用操作系统的Package management,yumapt-getbrew。这是开发人员最熟悉的方式。
  • TiDB的方式更加有趣:
    1. 为本地部署开发了TiUP
    2. 只是玩玩的话,就来TiDB Playground
    3. TiDB Serverless。 类似现在的“预制菜”。 既然安装部署门槛比较高,不如预先开好服务。用户signup TiDB Cloud之后,就直接指派一个Serverless cluster, 完全跳过这个门槛4
  • IaC(infrastructure as code)。成熟的云服务使用者都已经摆脱了浏览器和点鼠标为主的操作,因为围绕浏览器的鼠标操作not programable, not serviceable, no quality control, no version control, not scalable。IaC的理念在国际已经非常成熟。请参考大约两年前阿里数据库团队的设计的一些Terraform为基础范例.

海外数据库类产品,比较流行的上面提到的后三类:Playground(例如Airbyte),预生产(Serverless Instance/Cluster - Bigquery, Snowflake, GCP-RDS), IaC (AWS CloudFormation, HashiCorp’s Terraform) 。相信对于国产数据库产品是有启发的,比如NineData为用户提供了 2 个免费的 MySQL 测试数据源demo_datasource,便是采用“预生产”手段,这样用户在账号建立后,就可以立刻体验SQL 开发,数据复制,备份等功能。

写在最后的话,如果您是初创企业的CTO或大厂的决策者,对于有志打造走向世界的产品,15分钟测试便尤其重要了。因为国内比较常见的驻场和人工支持在国际是昂贵到无法逾越的鸿沟。请不要错过任何一个新员工带来的机会。入职的第一天,请这位或实习生或行业大佬完成hello world。他的TTHW便是您的产品与用户之间的距离,贴近客户从15分钟测试做起

尾巴

在笔者采用15分钟法则尝试的数据库中,Neon(一个Serverless计算和存储分离的Postgres)是最好的:一分钟之内完成的hello world。

本文的部分思路是在西湖边的西泠印社完成的。

在这里插入图片描述


  1. 《阿里云连续3年跻身Gartner全球云数据库管理系统领导者象限》 官网 ↩︎

  2. https://zh.wikipedia.org/wiki/Hello_World ↩︎

  3. 全称为“15分钟10刀测试”:15分钟是现代人在正常环境下可以保持专心的时间段, 10刀是这十五分钟的人力成本。。 ↩︎

  4. GCP等也采用类似的方式。 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/84288.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode2 两数相加

题目 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 示例 输入:l1 [2,4,3], l2 [5,6,4] 输出…

Scala 高阶:Scala中的模式匹配

一、概述 Scala中的模式匹配(case)类似于Java中的switch...case,但是Scala的模式匹配功能更为强大。通过模式匹配,可以匹配更复杂的条件和数据结构,包括常量、类型、集合、元组等。而 Java 的 switch 语句只能用于匹配…

算法分析与设计编程题 贪心算法

活动安排问题 题目描述 解题代码 vector<bool> greedySelector(vector<vector<int>>& intervals) {int n intervals.size();// 将活动区间按结束时间的从小到大排序auto cmp [](vector<int>& interval1, vector<int>& interval2…

YOLOv5,YOLOv8添加ASFF(自适应空间特征融合)

ASFF&#xff1a;Adaptively Spatial Feature Fusion (自适应空间特征融合) 论文来源&#xff1a;Learning Spatial Fusion for Single-Shot Object Detection 代码地址&#xff1a;ASFF 1.背景 不同特征尺度之间的不一致性是基于特征金字塔的单阶段检测器的主要缺陷。 本文…

服务器环境的关键组成部分

服务器环境是指服务器硬件和软件组成的整体环境&#xff0c;包括操作系统、网络配置、数据库、Web服务器软件、应用程序等。它提供了服务器运行和支持所需的基本条件和组件。 以下是服务器环境中的一些关键组成部分&#xff1a; 操作系统&#xff1a;服务器环境通常基于某种操…

QT : 完成绘制时钟

1.头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPainter> #include <QTimer> #include <QTime> #include <QPaintEvent> #include <QDebug> #include <QBrush>QT_BEGIN_NAMESPACE namespace Ui { class…

【VastbaseG100】 FATAL: The account has been locked.

使用VastbaseG100 数据库&#xff0c;查询数据报错。 org.postgresql.util.PSQLException: FATAL: The account has been locked. 帐户已被锁定。 解锁账户呗 ALTER ROLE doc ACCOUNT UNLOCK;ALTER ROLE 用户名 ACCOUNT UNLOCK; 修改密码 ALTER ROLE doc IDENTIFIED BY ZhangS…

css3动画基础详解(@keyframes和animation)

动画是使元素从一种样式逐渐变化为另外一种效果&#xff0c;CSS3动画的生成&#xff0c;主要依赖keyframes定义动画&#xff0c;animation执行动画。 keyframes 通过 keyframes 规则创建动画。 keyframes keyframes-name {keyframes-selector {css-styles;}}keyframes-name 帧…

SpringBoot工程模板

spring脚手架&#xff1a;https://start.spring.io/ <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocati…

Git小乌龟不弹add push commit的方法

1.关于使用Git小乌龟无法弹出Add菜单的问题 第一次使用小乌龟软件&#xff0c;发现可以正常将程序从Gitee仓库中克隆到本地&#xff0c;但是在将本地的程序上传到Gitee仓库中时&#xff0c;TortoiseGit无法弹出Add那一系列菜单&#xff0c;如下图所示&#xff1a; 2.解决方法 …

开源日报 0821:帮你修复老旧照片

这篇文章总结了几个开源项目的特点和优势。其中包括了 Python 资源列表、金融研究工具、动画精灵程序、游戏和旧照片修复项目等。这些项目提供了丰富的功能和技术支持&#xff0c;用户可以根据自己的需求进行定制和改进。总的来说&#xff0c;这些开源项目为开发者和用户提供了…

信息化发展55

数据备份 1 、数据备份是为了防止由于用户操作失误、系统故障等意外原因导致的数据丢失&#xff0c; 而将整个应用系统的数据或一部分关键数据复制到其他存储介质上的过程。这样做的目的是保证当应用系统的数据不可用时&#xff0c; 可以利用备份的数据进行恢复&#xff0c;尽…

安防视频/视频汇聚平台EasyCVR使用onvif探测添加设备通道详细步骤来啦!

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

[论文笔记]Prompt Tuning

引言 今天带来第三篇大模型微调论文笔记The Power of Scale for Parameter-Efficient Prompt Tuning。 作者提出了prompt tuning(提示微调),一种简单高效地微调方法。可以看成是prefix tuning的简化版。 总体介绍 最近的研究表明,提示设计(prompt design)在通过文本提示调…

hw0921

多线程发送方 #include <myhead.h> int main(int argc, const char *argv[]) {//创建流式套接字int cfdsocket(AF_INET,SOCK_STREAM,0);printf("socket success\n");//填充服务器地址struct sockaddr_in sin;sin.sin_familyAF_INET;sin.sin_porthtons(4444);s…

大数据学习1.1-Centos8虚拟机安装

1.创建新的虚拟机 2.选择稍后安装OS 3.选择Linux的CentOS8 4.选择安装路径 5.分配20g存储空间 6.自定义硬件 7.分配2g内存 8.分配2核处理器 9.选择镜像位置 10.开启虚拟机安装 推荐密码设置为root

VMware 三种网络连接模式

VMware虚拟机的三种网络连接模式&#xff1a;桥接&#xff0c;NAT&#xff0c;仅主机。 网卡vmnet0,vmnet1,vmnet8区别。 在VMware中&#xff0c;虚拟机的网络连接主要是由VMware创建的虚拟交换机负责实现的&#xff0c;VMware可以根据需要创建多个虚拟网络。 VMware的虚拟网…

WebGL 用鼠标控制物体旋转

目录 鼠标控制物体旋转 如何实现物体旋转 示例程序&#xff08;RotateObject.js&#xff09; 代码详解 示例效果 鼠标控制物体旋转 有时候&#xff0c;WebGL程序需要让用户通过鼠标操作三维物体。这一节来分析示例程序RotateObject&#xff0c;该程序允许用户通过拖动&…

【计算机网络】信号处理接口 Signal API(1)

收发信号思想是 Linux 程序设计特性之一&#xff0c;一个信号可以认为是一种软中断&#xff0c;通过用来向进程通知异步事件。 本文讲述的 信号处理内容源自 Linux man。本文主要对各 API 进行详细介绍&#xff0c;从而更好的理解信号编程。 signal 遵循 C11&#xff0c;POSIX.…

人类学习 vs. 机器学习

摘要: 机器学习与人类学习的范式有一定的联系. 本文发掘这些联系, 作用是指导人类的学习. 1. 什么是学习? 对于人类而言, 学习是改造大脑皮层的过程. 我们会发现, 不同人学习不同东西的能力也不一样, 如有些人数学厉害, 有些人音乐厉害. 同时, 也有些牛人, 学习到了学习的方…