写在OceanBase开源三周年
我收获的深刻感触get
感触1:解决问题才有生存价值 [产品力]
感触2:永无止境的“易用性” [易用性]
感触3:立下“双赢”的flag
感触4:社区建设离不开用户和开发者参与
感触5:从易用到用户自助 [自助能力]
当时想法很简单,OceanBase 作为一款在蚂蚁集团应用了十多年,支撑每年“双 11”所有核心业务场景的产品,它的稳定性、性能非常好、还有很高的性价比,开源出来一定会得到用户和开发者的喜爱。我们也一直在强调 OceanBase 是真开源,当然,这要交给用户和开发者评判。
今天在 OceanBase 开源三周年之际,想跟大家说说心里话,聊聊这三年来的感触。
感触1:解决问题才有生存价值
产品力
快手是 OceanBase 社区版第一位上线用户,至今我还清楚地记得第一次拜访快手时的场景。
除了这些携手并进的伙伴外,还有一批不断为我们出谋划策的朋友。携程是一直陪伴 OceanBase 社区版成长的用户,给我们提出了很多重要建议。携程在 OceanBase 社区沉淀的技术博客《干货 | 携程 MySQL 迁移 OceanBase 最佳实践》至今都在被其他用户仔细阅读。
在上述过程中,虽然 OceanBase 社区版是为解决用户问题而来,但是正因为有诸多用户的信任,才有齐心协力解决问题的过程,带来超出预期的结果。
感触2:永无止境的“易用性”
易用性
使用数据库,就像相亲一样,易用性就像相亲对象的外貌,若易用性不足,很难获得和对方进一步了解的机会。 对此,OceanBase 专门成立开源管控团队解决易用性问题。但易用性就像攀登高峰,一山更比一山高,永无止境。 (《与用户同行:OceanBase开源3周年易用性回顾》)
面对易用性挑战,我们将蚂蚁内部和 OceanBase 企业版沉淀多年的商业软件 OCP(OceanBase Cloud Platform)开放出来,供社区用户使用,一整套白屏运维系统为用户带来很大的便利性。
同时,我们对文档组织结构做了重大调整,将很多分散的文档进行梳理合并,并把文档优化的优先级按照用户习惯进行排序,还开放了技术支持同学沉淀的问题排查知识库,便于用户自助排查。
正如我刚才所说,易用性永无止境,没有最好,只有更好。 如果大家在使用过程中感到不妥或不舒服,欢迎在我们的社区或 GitHub 给提建议。
我们做业务系统,都会有一些业务运营类的后台管控系统。开发好后,结果业务产品或运营觉得不好用。
为何?因为开发很多时候是从自己的实现视角做系统,用户的易用性较差,使用门槛和学习成本较高。
怎么做?我们需要从用户使用和业务视角做界面功能设计,使用产品运营能理解的业务领域通用语言和业务场景设计界面与功能,这样她们才能快速上手,使用顺手。
感触3:立下“双赢”的flag
开放合作共赢
在产品易用性之外,生态工具的丰富度也关系着用户的使用体验。对外提出 OceanBase 社区的 slogan:开源开放,生态共赢。 这源于我过去十几年在阿里、蚂蚁的工作习惯,我的团队从无到有、从小到大,经常和上下游部门合作,所以养成了 “双赢”的做事习惯。
我时常在想,当我们面对用户时,使用 OceanBase 能不能解决用户痛点,
如果用户今年的目标是降本增效,那么 OceanBase 可以在哪些场景起到作用;
如果用户的需求是支撑业务的快速发展,我们该怎么利用好 OceanBase 的高扩展性和稳定性;
我们该如何联合上下游伙伴为用户创造价值,并使双方都能在用户的数据链路中发挥作用。
在我们的生态 landscape 中,目前包括应用集成、数据治理、数据迁移及运维管控等,帮助用户更流畅地完成数据生命周期中的每一个阶段。
- 应用集成,让数据更轻松地生产出来。 目前已对接的伙伴涵盖业务系统、基础软件、连接池、中间件、ORM、数据驱动、BI 报表、大数据平台,比如 Flink、Spark、MyCat 等。
- 数据治理,帮助用户更安全地管理数据。 包括基础客户端、数据加工、智能诊断、线上运维、安全管控等。比如 DBeaver、OceanBase 开发者中心(OceanBase Developer Center,ODC)。
- 数据迁移,让数据自由地流动起来。 已对接的系统中能够让 MySQL、Oracle、DB2、Elasticsearch、PostgreSQL、Hive、XDB 的数据流入 OceanBase,也能从 OceanBase 将数据同步到其他数据库中。比如 Flink CDC、Canal、ChunJun 、Data Pipeline 等。
- 运维管控,让用户更轻松地运维 OceanBase。 我们对接的系统有 Kubernetes、Grafana、Data Foundatian 等。
每年的 OceanBase DevCon,我都会跟大家汇报生态进展,从 2023 年的 400+ 到 2024 年 4 月的 700+,再到今天 800+ 生态工具,这样的增速只希望为用户提供更便捷的使用体验。
感触4:社区建设离不开用户和开发者参与
OceanBase 社区版在用户和开发者的建议与目睹中不断成长,除产品侧不断反馈建议外,用户和开发者也积极地在社区贡献力量,比如主动在社区答疑、在技术博客分享经验、参与文档共建、一起组织活动等。
这样的深刻回忆以后有机会再展开来讲,我想表达的是,正因为有你们对 OceanBase 及团队的信任和对项目、对社区的贡献,才能让 OceanBase 社区版在短短三年内拥有 500+ 客户和 1.4w 装机量, 客观讲这样的增速非常快。在此,我代表 OceanBase 开源团队衷心感谢社区贡献者、代码贡献者、生态伙伴。
感触5:从易用到用户自助
自助能力
过去三年,我们一直在提升 OceanBase 社区版的易用性,未来三年,我们会强化它的自助能力,让用户更加顺畅、自如地操作 OceanBase,这体现在四个方面。
第一,提升诊断能力。 包括强化 obdiag 诊断能力、OCP 监控能力,以及生成更友好的报警日志和提供更详细的视图。
第二,推出系统化培训资料。 我们刚结束了面向 DBA 的《OceanBase DBA 从入门到实战》课程,下半年我们会将课程资料整理成电子书供大家永久参考;同时推出面向开发者的《OceanBase 开发者最佳实践》。
第三,沉淀知识库。 在过往的用户工单中,有许多经典问题和解决方案值得开放给大家参考,我们将在下半年基于开源团队工单系统推出开源知识库。
第四,增强论坛答疑。 过去有许多开发者、用户在社区“问答”板块主动回答问题,未来我们将强化悬赏机制,激励更多社区贡献者。同时会补充论坛值班员工,及时响应大家的问题。
最后还想跟大家透露两件有意思的事情。一是如今主流的操作系统都已经支持 OceanBase 直接安装,在单机版 2C6G 环境中就可以运行,大家可以在自己的电脑上尝试一下。二是 OceanBase 开始打造向量引擎插件,并正在进行研究尝试,期待在不久后给大家新的惊喜。
总的来说,我们会持续提升 OceanBase 的产品力、易用性、自助能力,不忘开源初心,积极响应客户问题,听取大家的建议。 未来,在我们仍然做得不够的地方,也请大家督促、指正。
阅读原文
相关文章:
写在OceanBase开源三周年
我收获的深刻感触get 感触1:解决问题才有生存价值 [产品力] 感触2:永无止境的“易用性” [易用性] 感触3:立下“双赢”的flag 感触4:社区建设离不开用户和开发者参与 感触5:从易用到用户自助 [自助能力] 当时想法很简…...

【笔记】408刷题笔记
文章目录 三对角三叉树求最小带权路径UDP报文首部和TCP报文首部IP报文首部TCP报文首部UDP报文首部 刷新和再生的区别地址译码 为了区分队空队满,可以使用三种处理方式 1)牺牲一个单元 队头指针在队尾指针的下一位置作为队满的标志 队满条件:(…...

GitHub Star 数量前 13 的自托管项目清单
一个多月前,我们撰写并发布了这篇文章《终极自托管解决方案指南》。在那篇文章里我们深入探讨了云端服务与自托管方案的对比、自托管的潜在挑战、如何选择适合自托管解决方案,并深入介绍了五款涵盖不同场景的优秀自托管产品。 关于自托管的优势…...
js实现生成随机数值的数组
生成随机数值的数组 方法一:使用while循环和Set // min 开始数值, max 结束数值, count 数组内填充几个数值 function generateUniqueRandomNumbers(min, max, count) { let result new Set(); while (result.size < count) { let n…...

视频怎么转换成mp3格式?分享5种便捷的转换方法
在日常生活中,我们经常会遇到需要将视频文件中的音频提取出来,转换成MP3格式的情况,以便在手机、MP3播放器或其他设备上播放。今天,我将为大家介绍5种视频转MP3的方法,非常简单便捷,一起来学习下吧。 方法一…...

Reflection 70B如何革新语言模型的准确性与推理能力
在开源人工智能模型领域,HyperWrite 公司开发的 Reflection 70B 模型以其创新的“反射”机制成为新的重量级竞争者。这一模型旨在解决大型语言模型常见的“幻觉”问题,即生成不准确或虚构的信息。Reflection 70B 通过在提供最终响应之前评估和纠正自己的…...
覆盖索引是什么意思?
文章目录 Q1:覆盖索引是什么意思?覆盖索引的工作原理覆盖索引的优势覆盖索引的示例覆盖索引的使用场景覆盖索引的限制总结 Q2:为什么查询所涉及的所有字段都在索引中存在,那么数据库就无需回表?1. **索引本身存储了字段…...

最大间距问题
LeetCode164 最大间距 基数排序 #include <iostream> #include <vector> using namespace std;class Solution { public:int maximumGap(vector<int>& nums) {int nnums.size();if(n<2) return 0;int exp1;int Maxnums[0];vector<int> buf(n)…...
【Hadoop|MapReduce篇】Hadoop序列化概述
1. 什么是序列化 序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。 反序列化就是将收到的字节序列(或其他数据传输协议)或者磁盘的持久化数…...

【Elasticsearch系列】Elasticsearch中的分页
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

NLTK:一个强大的自然语言处理处理Python库
我是东哥,一名热爱技术的自媒体创作者。今天,我将为大家介绍一个非常有趣且强大的Python库——NLTK。无论你是刚刚接触Python的小白,还是对自然语言处理(NLP)有些许了解的朋友,NLTK都是一个值得学习的工具。…...

NUUO网络视频录像机 css_parser.php 任意文件读取漏洞复现
0x01 产品简介 NUUO网络视频录像机(Network Video Recorder,简称NVR)是NUUO Inc.生产的一种专业视频监控设备,它广泛应用于零售、交通、教育、政府和银行等多个领域。能够同时管理多个IP摄像头,实现视频录制、存储、回放及远程监控等功能。它采用先进的视频处理技术,提供…...

【支付】Stripe支付通道Java对接(产品 价格 支付 查询 退款 回调)
Stripe是一家美国科技公司,成立于2010年,由爱尔兰兄弟Patrick Collison和John Collison共同创立。该公司致力于提供高效、简洁的互联网支付收款服务,为开发者或商家提供支付API接口或代码,使商家的网站、移动APP支持信用卡付款。S…...

Unity3D 小案例 像素贪吃蛇 01 蛇的移动
Unity3D 小案例 像素贪吃蛇 第一期 蛇的移动 像素贪吃蛇 今天来简单制作一个小案例,经典的像素贪吃蛇。 准备 首先调整一下相机的设置,这里使用灰色的纯色背景,正交视图。 接着,创建一个正方形,保存为预制体&#…...

【STM32 MCU】stm32MCUs 32-bit Arm Cortex-M
stm32MCUs 32-bit Arm Cortex-M...

html+css网页设计 旅游 雪花旅行社5个页面
htmlcss网页设计 旅游 雪花旅行社5个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1&#…...

vue3中的实例
实例类型 Vue2:每个Vue应用都是new Vue创建的一个新实例,创建的时候将data作为property添加到响应式系统中 vue3:createApp创建一个Application Instance、应用实例用来注册全局内容,大多数方法支持链式调用,返回实例…...
9.测试计划(包含笔试/面试题)
一、软件测试计划介绍 1.测试计划就是一份测试文档,一份描述测试工作计划的文档,对测试计划进行统筹安排。 2.测试计划的编写者就是测试组长,测试主管。 3.测试计划的查阅者:测试人员,测试主管,产品&#x…...
这 7 款AI应用将让你全新的iPhone 16成为电影制作的强大工具
苹果公司在周一的Glowtime发布会上揭晓了新款的iPhone 16 Pro系列。除了新加入的苹果智能功能和令人印象深刻的硬件升级外,它还获得了一套视频制作工具,让用户能够在一个几乎可以放进口袋的设备上制作整部电影。 这些升级中有一个48MP融合相机。它具有2…...

自注意力机制(self-attention)
自注意力机制(self-attention) 之前听过吴恩达老师的课,吴恩达老师CNN那一块讲的特别好,但是后面RNN这一部分我听的不是很明白,今天有看了李宏毅老师attention这部分的课,总结一下笔记。 self-attention …...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...