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 的更多动态。
⬇️点击“阅读原文”,一键报名 GOTC 2024
微信扫码关注该文公众号作者
来源:OSC开源社区
相关新闻
百年一遇都集中在2024年的4月了吗? |【经纬低调分享】放弃Top1公立来四线城市读国际校,南京学霸妈的不寻常决定,6年后后悔了吗?什么话题能让数据库大佬们争吵6年?在美国,有年费的信用卡,福利会更好吗?宏观市场 | 库存增速上升开启补库了吗?——评2023年12月工业企业利润数据大揭秘!2024年,你的钱会被花在哪?看这里就对了!突发:华盛顿大学支持巴勒斯坦的示威者将解散营地;西雅图国际电影节奖颁了一个大奖给“弟弟”;华州火山会在我们有生之年再次爆发吗?还在为基金/课题选题发愁吗?美国资助的基金和课题大数据分析可能会给你启发!还记得被“禁止整容”的小芈月吗?2岁出道年入百万,却在人气高涨时退圈,如今她怎样了?在加州,年收入近6万美元才算中产阶级,您达标了吗?都2024年了,还有人在用充电又慢、块头又大还重的充电宝吗?!昔日全球最美星二代!阿汤哥的女儿苏瑞18岁了!父女居然10年没见过?40万美元一年的抚养费还会有吗...【直播预告】SQL审核真的能审出数据库的所有问题吗?美国经济衰退风险真的消失了吗?答案在这些数据里深度|大模型真的在吞噬人类的一切数据吗?运动户外市场“饱和”了吗?创业投资的机会在哪里?|2024华丽志论坛系列报道SQLite这么小众的数据库,到底是什么人在用?“烂尾娃”火了,这会成为家长的噩梦吗?裸辞编制、卖房、让娃退学:环游世界12年的中产家庭,现在后悔了吗?2024年数据科学还会继续火吗?在纽约,买了电车的你后悔吗?全美近半电动车主希望换回燃油车AGI会在人类未知的地方欺骗人类吗?揭露超级对齐范式下的“弱至强欺骗”现象想"当官"吗?纽约这些职位的考试申请在6月开放。沉寂了2年的CTA,现在能买吗?