面试题:为什么 MySQL 不要使用 Docker 部署。。。。

48 天前
 michael2016

如果你去找工作,遇到我问你以下几个问题如何回答:

  1. 在大厂 MySQL 是不能用 Docker 的,为什么?
  2. 今天业务被 DDoS 了,你如何在 10 分钟内解决问题?
  3. 如果被爬虫爬了,你应该如何解决?
  4. RAG 和 Agent RAG 有什么区别?
18841 次点击
所在节点    程序员
161 条回复
michael2016
48 天前
@xmh51 嗯,我想表达的是对于并发性能、网络延时要求高的业务场景也是各种救火,稳定性挑战很大,当然投入的资源代价也很大。
sky3hao9
48 天前
技术差就别出面试题出来丢人了
michael2016
48 天前
@Ayanokouji RDS 本地盘式物理机,云盘是容器,但是实践下来本地盘比 on ecs 要好多了,尤其是独享环境。
dynastysea
48 天前
@lovedoing 谁告诉你不能用的?云上数据库都是跑在容器内的
michael2016
48 天前
@felixcode 现在依旧是虚拟环境比物理机稳定性差,不行你去各大云厂商买几台机器部署业务试试看,你可能会天天提交工单。
nvksie
48 天前
因为大厂有完善的基础设施,有专业的 dba 团队单独维护,自己搞 docker 就是挖坑埋雷
michael2016
48 天前
@dynastysea 你的业务 QPS 有没有超过 5 万?
JsonNode
48 天前
@dynastysea 我有说不能用吗,我只是说我们不用,ok ?你去看看大厂的交易系统,几个敢用容器的
moen
48 天前
第一个这个所谓的不能用言论源于 https://myopsblog.wordpress.com/2017/02/06/why-databases-is-not-for-containers/ 这篇 2017 年的博文。国内看到的基本就是这篇文章的洗稿复读,把里面所谓 7 个理由排列组合一遍,甚至这两年还能看到洗稿复读的文章出现原文里的版本号。原文里提及的问题又没有列出 issue 进行佐证

一直复读这个的似乎是觉得这么多年就没有任何技术发展。放到 IaaS 刚出来的时候估计会说数据库不要放云服务器里
dynastysea
48 天前
@michael2016 几十万都可以,容器化和 qps 又没啥关系,不过从你前面的回复看,你拿本地盘和云盘比。。你没搞懂两者的差异啊
edisonwong
48 天前
@michael2016 #64 [天天提交工单] ? 6...
前司阿里腾讯都用几千台 ecs cvm ,最容易出问题的大数据带本地盘的,其余的机器问题不大
felixcode
48 天前
@michael2016
已经有这么多生产系统大规模部署在虚拟环境了,还能看到你这样的言论,让我以为现在是十年前或更早。
xuanbg
48 天前
@tpxcer 被 DDoS 了切服务器有个鬼用,无非就是换一台服务器被打满流量罢了。但清洗流量就不是 10 分钟能搞得定的,你得预先准备好流量清洗方案才行。
unco020511
48 天前
谁说 mysql 不能容器化部署了,还不是可以,只是有没有必要而已.而且很多将数据库容器化部署的呀
michael2016
48 天前
@edisonwong 我是这么夸张的说了,大厂的技术团队在后面帮你解决了不少,如果你要自己搞,重新踩一遍坑,遇到高级问题了代价很大。
Kumo31
48 天前
这个问题要问也是「在生产环境是否推荐...」而不是直接预设答案,下面也都指出了 op 的事实错误「在大厂 MySQL 是不能用 Docker 的」,至少我这边见过的大厂,线上百 PB 的集群都是容器化的。反观 op 的回复都是一股说教的语气,给我感觉是被时代淘汰的中年老登
michael2016
48 天前
@dynastysea 有关系,业务 QPS 高,你的并发到后端就得具备很强的弹性收缩能力,如果无法自动化,人工规划就会出现很多成本浪费,你得提前准备 ECS 或 CVM 或服务器资源,然后再去部署交付等工作。这个问题本质上是要综合考虑成本和收益,docker mysql 运维成本高,sla 没有保证,如果你的公司有专门的几个人或数十人来支撑深挖研究,当然可以了,这里除了讨论 IO 、调度、宿主机 hang 、镜像内核各种版本管理、自我诊断修复等问题以外,还要考虑于运维管理、调度、扩容缩容等很多细节。
你一个人能不能搞定所有的问题,你愿意搞定这些问题吗?愿意付出多大的成本解决这些问题?

这个问题虽然问的不好,但是正好是深入了解业务综合性决策判断选择的最好的问题。
先审题再做题。
kiraskyler
48 天前
磁盘 IO 上。容器默认用的 overlayfs 。开销很小吧,仅仅是打开、删除这类时候多一点点逻辑,实际读写没有影响,读写时候统计、节流时候多一点点 cgroup 计算开销,基本可以忽略。
而且也可以单独指定一个文件夹/硬盘挂载不用 overlayfs
aino
48 天前
还有不会用 docker 都 AI 时代了
blackmirror
48 天前
@newaccount 工作这么多年甩锅技术是精进不少

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1160112

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX