要做程序员必备数据库产品NineData(数据库微软数据程序员要做)「程序员 数据库」

大家好,我是一名中国程序员,在 IT 领域(云计算+数据库)工作 20 年,17 年程序员和 3 年产品经理。
早已经过了 35 岁,数据库爱好者,为了能一直写代码,我创建了一家公司(玖章算术),发布了首款数据服务 www.ninedata.cloud (对,在云时代我们率先使用了.cloud的域名),以下是我个人介绍。
除了我,还有几位好哥们有同样爱好,于是大家就一起开荒。
这几位都是数据库领域老鸟。

周振兴是产品经理,也是 Oracle ACE(MySQL 方向)、《高性能 MySQL》译者、原淘宝去 IOE 核心 DBA,发量没保住,原因是我们几个程序员更能折腾;Ni Demai 是我们硅谷的数据库专家,清华毕业后一直在海外,说要让我们的产品在美国横着走(很期待啊);谭宇外号七爷,数据库技术老手,飞车党程序员,精通数据库内核开发到企业数字化转型,属于万能程序员;还有几位骨灰级程序员,擅长 go、Java、数据库内核、大数据、容器、网络、操作系统等等,他们比较低调,这里就不露脸了。
小伙伴介绍完了,再说说我看见数据库和云计算的一些问题吧。
从市场调查统计,大型云厂商已经超过 30 家,对外发行的数据库有 397 种。
看这图,百家争鸣啊(太卷了),所以我不想细谈云和数据库,咱先谈谈企业数据库管理的三个常见问题。
企业数据库管理三个问题一、程序员应不应有生产数据库权限方案 1:程序员不能查看线上的数据,所有工作都需要找数据管理员(DBA)处理。
这一看就很安全啊,但效率太低,估计很多程序员就此选择躺平。
方案 2:线上数据库权限开放给程序员。
那数据库稳定性没法控制啊,如果企业与员工出现矛盾,比如裁员,那删库跑路是迟早的事,说不定离职后还入侵一下,整个企业就瞬间崩溃,IT 负责人肯定要背锅,说不定老板要承担刑事责任。
上面这两种做法都比较常见,有些企业选择给程序员只开数据查询权限,但是敏感数据泄露和审计是个大坑。

要做程序员必备数据库产品NineData(数据库微软数据程序员要做)

二、数据备份如履薄冰,数据恢复靠天吃饭
备份一定是数据库管理员的心病,但不好意思说出来,只能向天祈祷,希望不要有数据丢失事件发生,因为大部分企业数据库备份就是开盲盒,甚至没做生产数据备份,还有些数据备份恢复没有演练过,真正遇到灾难要恢复的时候,发现备份无效,悔之晚矣。
传统备份方案的恢复时间比较长,尤其是物理文件或者快照备份方案,要恢复几条数据,结果需要把整个数TB的备份集下载恢复。
2020年,某上市公司删库事件还历历在目,另外各种机房和硬件故障、地震、火灾每个月总是会来几次。
企业要做好备份实在是太折腾,要购买备份设备,开发备份程序,定时做备份归档,备份有效性演练,出问题能按需恢复。
因为传统备份只是用在数据恢复时刻,投入产出比太低了,很多大厂的备份系统都是如履薄冰,小厂就更不用说了。
三、数据上云难,跨云迁移更难云已经势不可挡了,国产数据库、开源数据库、分布式数据库、云原生数据仓库等新技术都在快速演进,数据上云是大趋势,不管是私有云还是公有云,都得上啊。
再抱着老的 IDC 技术架构,别说技术落后,可能出去找工作都难。
要快速更换数据库不容易,数据迁移就是个大难题,数据上云了,要换个新的云那就更坑(云厂商肯定不希望你搬走啊),要把本地私有云的数据和公有云打通更头大,这个其实是很多大型企业面临的跨云问题,那为啥会出现跨云呢?多云时代已经到来云已经成为新一代 IT 基础设施,进入了百家争鸣的时代,国际上 AWS、Azure、Google 是领导者,国内阿里云、腾讯云、华为云先发优势明显,天翼云、移动云、沃云、中国电子云等运营商/国资类云计算平台快速崛起,在政府、国企等市场优势明显。
根据最新 IDC 调查统计数据显示,中国电信天翼云已经进入前三,移动云和联通沃云也是非常好的业绩增长(其他云都在瑟瑟发抖)。
可以预见到云平台会竞争更加激烈,并且多云和混合云是未来的发展趋势。
根据 Flexera 对国际上 573 家中大型企业调查显示,有 89%的企业不只使用了一朵云(多云/混合云),为什么企业要选择多云呢?有以下几个因素。
未来,技术负责人不仅是用好云计算,能用好多云会是更核心的实力。
我们在云计算和数据库领域工作了 20 年,创业推出的第一款产品名字叫 NineData,就是要解决上面三个问题。
NineData 产品简介
这是 NineData 的产品大图,分为四大核心功能。
1. SQL 开发:提供企业级 SQL 开发平台,完全代替 Navicat、DBeaver 等 SQL 客户端工具,免费,并且更安全更方便。
对企业用户可以支持更全面的权限管理,敏感数据保护和 SQL 线上变更发布等高级功能,非常适合超过 20 个开发人员的企业。
2. 数据备份:新一代数据备份解决方案,1 分钟内完成配置,支持全量、增量备份,支持多个云平台和多个地域,可以用来快速搭建异地备份解决方案,满足安全合规要求。
我们在数据备份上做了大量创新,如备份数据可以在线查询,这样不仅可以验证备份的有效性,而且还可以快速查看数据的历史版本,选择需要的数据秒级恢复。
可以完全代替 mydumper 这些落后的工具。
3. 数据复制:提供数据迁移、数据同步等功能,可以更高效地完成数据上云、跨云数据迁移、ETL 等等,支持全量迁移和增量迁移,100000TPS,性能超越市场主流产品,支持各种复杂 DDL 变更同步,也完成了 MySQL8.0,ClickHouseV22 等最新数据库版本适配。
4. 数据对比:用来帮助你检查数据复制的正确性,支持结构对比和数据对比,提供了非常简单易用的可视化展示,算是目前市场上最好的数据对比工具。
简单易用、高性能、支持多云、多数据源是我们在产品设计和研发考虑最多的地方。
接下来介绍我们的产品技术架构。
NineData 技术架构
NineData 是 SaaS 模式的多云数据管理平台,所以多云和多源是我们要解决的重点问题。
我们要支持市面上主流的数据库,既支持 MySQL、PostgreSQL、SQLServer 等关系型数据库,也支持 MongoDB、Redis 等 NoSQL,还⽀持 Aurora、PolarDB、GaussDB 等云厂商专属数据库,当然还包括 TiDB、OceanBase 等分布式数据库。
NineData 会支持主流的云厂商和自建机房,也就是说,无论是云上还是云下的数据库,也不论是云⼚商专属数据库还是自建数据库,NineData 都会⽀持。
NineData 平台可以分为四层,最上层是接入层,包括控制台和 API 两个部分,可以在控制台上直接管理数据,也支持通过 API 的形式将 NineData 集成到内部的系统。
接下来是数据安全层,数据安全是 NineData 从一开始就确立的非常重要的工作。
我们会在这⼀层处理所有涉及到数据安全相关的工作,比如数据加密、鉴权、脱敏以及完整的操作审计。
再往下是核心引擎层,主要用来支撑我们的 SQL 开发、数据复制、备份恢复和数据对比四大核心功能。
最下面是我们的基础能力层,主要包括两个部分,一是公共的核心能力,比如 SQL 解析器、多版本元数据管理中心、中间数据转换框架、数据存储系统、Gateway 等等。
第二部分则是 NineData 多云部署框架和调度引擎。
再介绍 NineData 的多云运行架构,NineData 是 SaaS 模型,但是数据处理是越靠近用户的数据库节点越好,举个例子,如果要服务阿里云北京 Region 的用户,那么 NineData 最好也部署在阿里云的北京 Region,一方面可以获得更好的网络连接,另一方面也可以避免出现网络流量费用。
以此类推,要服务所有的云厂商,就得在每个云的 Region 里部署 NineData 的服务。
但是今天全球主流云厂商的所有 Region 加起来起码有几百个,再算上可用区就更多了,如果在每个云的每个 Region 上都预先部署然后才能提供服务的话,这将是一个巨大的工作量和成本,所以我们将 NineData 的架构拆分为了中心控制节点与分布式单元工作节点,这是我们原创的架构模型。
最后是我们在工程质量上的一些实践。
我们明白数据对客户意味着什么,如果 NineData 自身出现异常这对客户来说就是灾难,所以工程质量和数据安全是我们最重要的两件事情。
只有合理的产品设计才能保证工程质量。
得益于 NineData 团队在数据管理领域的深厚积累,加上对数据管理的敬畏与审慎,我们确立了严格的产品评审流程。
在严格遵循编码规范、代码审查等软件工程实践之外,还引入深度安全检测,确保我们软件的安全稳定。
此外,NineData 要解决的重要问题是大规模集成测试,NineData 要支持这么多云厂商和数据源,每修改或新增一个功能,就需要在所有支持的云、数据源上进行测试,这个成本非常高,所以我们实现了一个自动化测试框架来完成这些工作。
首先能够低成本、无需编码来写用例,团队所有同学都可以不断沉淀,这是保证工程质量的基础,我们很快就积累超过一万个用例。
其次是能自动化的执行用例,框架会自动分析依赖,比如 MySQL 相关的用例会搭建 MySQL 所有版本作为源,然后再根据 NineData 的支持范围选择目标。
新增的数据源都会自动继承庞大的用例库。
最后结合用例执行情况与线上故障等要素,制定优先级与补齐漏测场景。
通过这些工作,NineData 可以快速积累测试场景和发现问题,确保我们提供的服务安全稳定。
我们在技术上还有很多有意思的积累,包括如何做高性能的实时数据同步与对比,如何做备份数据在线查询等等,未来有机会可以再详细分享,我们也计划把一些核心组件贡献给开源社区。
关于玖章算术和 NineData 的名字我们公司名字叫玖章算术,来源于中国春秋战国时期科技著作《九章算术》。
它有 3 个特点:先进性:很早就提出了开方、立方、负数、分数这些概念和算法,在先秦时期是业界非常领先的;实用性:里面有计算三角形,梯形,圆锥体等几何图形的面积和体积等算法,在古代农业、建筑、军事上有非常好的应用价值,比如两国交战,建城墙需要多少石头用料和人力资源投入,都需要扎实的数学基础;历代科学家持续完善:《九章算术》不是一个人独立完成,是群体智慧结晶,后来西汉张苍、魏晋数学家刘辉,唐朝天文学家李淳风,这些名人都做了多次修订完善。
关于 NineData 的来源,Nine 是来自我们公司玖章算术的九字,Data 代表产品聚焦在数据领域。
9 是最大数字的含义,代表着我们要处理海量的数据,我们和多个云平台、数据库无缝集成;9 也代表着持续、久远,我们会保持产品持续研发,保障数据稳定安全;选择 NineData 的这个英文产品名,因为我们要做全球最好的产品,全球统一品牌,要和国际的企业竞争。
NineData 今天刚出生,还有很多不足,我们会持续增强,目标是成为一款中国企业研发的全球领先的多云数据管理产品,能解决企业数据管理的实际问题,我们也会持续引入新的技术和人才,做到业界领先。
希望每个技术人员都喜欢 NineData,也希望大家多多反馈建议,NineData 可以在线使用,地址是:www.ninedata.cloud (建议在 PC 上打开)

联系我们

在线咨询:点击这里给我发消息