Bendi新闻
>
什么话题能让数据库大佬们争吵6年?
什么话题能让数据库大佬们争吵6年?
4月前
第一回合:Mikhail Chinkov VS. 王渊命:数据库容器化合理吗?
数据不安全:Docker 数据存储在主机上仍面临丢失风险,Docker volumes 基于 Union FS 设计,但缺乏数据保护的绝对保障。容器崩溃可能导致数据库损坏,尤其是未正确关闭时。
运行环境不匹配:数据库管理系统(DBMS)与其它服务共用主机时,因硬件需求差异大,可能导致资源浪费。数据库对 I/O 要求高,通常需专用环境。水平扩展优于垂直扩展,但容器化数据库可能需要过多资源调整。
网络挑战:Docker 网络复杂,需深入理解网络虚拟化且常遇未解决的 bug。数据库复制需主从间稳定连接,而 Docker 网络问题可能影响这点,增加管理难度。
状态问题:容器化适合无状态服务,数据库作为有状态服务加入容器环境会增加系统故障范围,应用崩溃可能波及数据库。
与 Docker 核心功能不协调:数据库应用并不直接获益于 Docker 的便捷构建、快速部署、水平扩展和环境一致性等优点,这些特性对数据库管理来说价值有限。
过度隔离的负担:容器化的额外隔离层导致资源开销增加,对数据库而言,这种隔离并未带来显著好处,反而可能不如专用环境高效。
云平台应用局限:在云环境中,容器化数据库并未利用云平台的便捷性,如快速启动实例和环境一致性。数据库容器化可能与云服务的弹性扩展和管理便利性不兼容,限制了云服务的优势。
安全方面,容器实际上增加了隔离层,提升了安全性。 IO 性能方面,容器通常不对 IO 进行限制,与宿主机差异不大。 网络问题,容器网络方案成熟且多样化,用户可根据需要选择。 成本方面,容器技术的接纳成本相对较低,且长期收益显著。
第二回合:王竹锋 VS. 姜承尧:数据库上 k8s 有必要吗?
StatefulSet
控制器来支持有状态服务,并且这一功能自引入后就持续进化,对有状态服务的支持不断成熟,包括对数据持久化、存储卷管理、网络策略等特性的增强,使得数据库已经可以很好地运行在 k8s 上。你想上 k8s,是为了解决什么问题?编排部署安装找资源的问题? MySQL 是一个有状态的大型通用数据库,这么重存储的服务,找资源安装,问题很大吗? 又说是资源隔离的问题,资源隔离的需求很紧迫吗?单机单实例就不说了,即使在单机多实例的情况下,也没几个实例,并且 MySQL 本身内部就是多线程的,均衡问题也比较好,同一台机器上一个实例影响其它实例的案例少之又少,所以这需求有那么紧迫吗? 而且对于使用 MySQL 没有上到一定量级的情况下,非 k8s 的自动化平台就可以很好的解决资源部署安装编排的问题,为了解决这个问题,创造一个上 k8s 的大问题,这样就有点和初衷背道而驰了。 同时 k8s 是一个新的技术栈,支撑它上线,是需要另一个专业团队来做的,投入产出比非常低。 我反过来再问一下, MySQL 本身的问题你解决完了吗?慢查询有没有好的工具去优化?主从切换能不能不影响业务?机器挂了能不能不丢数据?数据库服务能不能做到不同机房的多活?自动化 SQL 审核可以自助服务了吗?如果哪个没做到,那就先放弃 k8s 吧。 再者,我们专业的 MySQL 运维技术人员,非要作茧自缚,给 MySQL 套一个壳,出了问题,是壳的问题?还是 MySQL 本身的问题? 当引入一个变量的时候,可服务率肯定就会有一定程度的下降,因为 99.99%*99.99% 的结果是 99.98%。
冯若航:将数据库放入 k8s 中会导致 “双输”
数据库是 “宠物” 而非 “家畜”,需要细心地照料呵护。将数据库放入 k8s 作为 “牲畜” 对待,本质上是将外部的磁盘 / 文件系统 / 存储服务变为了新的 “数据库宠物”。 使用 EBS / 网络存储 / 云盘运行数据库,在可靠性与性能上有巨大劣势;然而如果使用高性能本地 NVMe 磁盘,与节点绑定无法调度的数据库又失去了放入 k8s 的主要意义。 将数据库放入 k8s 中会导致 “双输” —— k8s 失去了无状态的简单性,不能像纯无状态使用方式那样灵活搬迁调度销毁重建;而数据库也牺牲了一系列重要的属性:可靠性,安全性,性能,以及复杂度成本,却只能换来有限的 “弹性” 与资源利用率 —— 但虚拟机也可以做到这些!对于公有云厂商之外的用户来说,几乎都是弊远大于利的。 以 k8s 为代表的 “云原生” 狂热已经成为了一种畸形的现象:为了 k8s 而上 k8s。 工程师想提高不可替代性堆砌额外复杂度,管理者怕踩空被业界淘汰互相卷着上线。 骑自行车就能搞定的事情非要开坦克来刷经验值 / 证明自己,却不考虑要解决的问题是否真的需要这些屠龙术 —— 这种架构杂耍行为终将招致恶果。
诚邀全球各技术领域开源爱好者共襄盛举!
https://gotc.oschina.net
为什么数据库不适合容器
数据库不适合 Docker 及容器化的 7 大原因
数据库容器化的价值 —— 反驳数据库不适合容器化的错误观点
一个数据库十年老兵的思考与总结
在 Kubernetes 上跑数据库,真的没有意义么?
数据库应该放入 k8s 里吗?
关注「OSC开源社区」微信公众号
(ID:oschina2013)
后续将推送关于 GOTC 2024 的更多动态
微信扫码关注该文公众号作者
来源:OSC开源社区
相关新闻
吵了6年的数据库话题,会在冯若航这里终结吗?硅谷大佬们躲不过中年危机?扎克伯格变成金链子型男,背后有玄机!WST第九届年百分享会精彩瞬间:与投行咨询大佬一对一面基是什么体验?大模型时代,AI 和数据库技术会碰撞出什么新火花?让大佬疯狂的“脑科学”!想要学习脑科学,需要做什么准备?种树赚6亿、一碗粥年入8亿…离开金融圈的大佬,都去疯狂搞钱了?还不试试AI大模型?能让你少加点班!雷军发布会穿衣心机深!合影站C位,衣品碾压车圈大佬凭什么?引入AI技术后,数据库变成了什么样?剑桥提出RLHF平替方案:在SFT以外,我们还能拿SFT数据做什么?热点|“世纪大爆仓”360亿美元诈骗案审理中,韩裔基金大佬会受到什么制裁?欧阳娜娜毕业典礼大翻车?!6年留学读了个diploma“大专”...?SQLite这么小众的数据库,到底是什么人在用?面对三千年未有之大变局,大佬们都是如何度过的?又被打脸!高利率这1年,大温房市凉凉?这些数据告诉你真实的情况5年生存率到底意味着什么?大多数人理解错了!律所年年办产品大赛,有什么用?图灵奖得主回顾与展望:数据库发展 60 年,AI 颠覆在即?毛绒玩具接入大模型,能让孩子放下手机吗?大俄争霸五百年,最终得到什么?日本收复「失落的三十年」,大牛市还能走多久?|智氪日本收复「失落的三十年」,大牛市还能走多久?丨智氪今年还有什么品牌让你觉得值?| 2024金字招牌大调查提前学能让娃一路领先吗?过来人的大实话是……