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

1 天前
 michael2016

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

  1. 在大厂 MySQL 是不能用 Docker 的,为什么?
  2. 今天业务被 DDoS 了,你如何在 10 分钟内解决问题?
  3. 如果被爬虫爬了,你应该如何解决?
  4. RAG 和 Agent RAG 有什么区别?
16091 次点击
所在节点    程序员
158 条回复
Richared
1 天前
@EastLord #5 主要是 mysql 这玩意用不到容器化的那些优势,反而会有拖累。而且有专门的集群的人去部署这玩意,又不需要其他人管,我们都是有专门的 mysql 机房,需要用去申请就完了。写代码的,管人组件怎么部署的,用就完了,有问题找集群的人被,他们就是干这个的。
fengpan567
1 天前
只有生产不能用 docker 部署,docker 存在额外的网络和磁盘开销,还有容器重启导致数据丢失的风险
capric
1 天前
@moefishtang volume 映射不影响文件 io 性能,cpu 就是本地进程不影响性能,唯一有影响的就是非 host 模式下网络 io 会有 5%-15%的性能降低
dssxzuxc
1 天前
1. docker 部署数据库服务有 I/O 和网络的额外开销,虽然绝大部分场景完全可以忽略,并且可以通过某些手段缓解。能问出这种问题,说明他曾听说早期 docker 实践的一些问题,现在还问可能是被 the world 暂停了五年。
2. 花钱
3. 国外上 cf ,可以防住大部分脚本小子;接口加解密给脚本小子增加难度;接口被爬了就爬了,互联网环境本来就是不可信环境,如果担心爬虫问题就别放到公网,先问问自己是不是接口太过弱智了。
4. 新一代的八股文,RAG 依赖知识库,Agent 依赖工作流
kuxuan
1 天前
我的小骗 2C2G 肯定不用 Docker 吧,直接的话,少占内存。
Meteora626
1 天前
像 k8s 集群部署 mysql 底层不也是容器化技术?
maichael
1 天前
“在大厂 MySQL 是不能用 Docker 的,为什么?”

关于这种已经带了立场且缺乏上下文的面试题,首先是不要带上你自己的立场去评判它正确与否,你应该做的是合理到位的去阐述你的观点。

无论是面试官还是被面试者也好,都应该知道这不是一道判断题,没有标准答案可言,在不同的环境、需求下会有不同的答案。

所以对于被面试者而言,你应该做的是结合你的经验、理解去阐述清楚,什么时候能,什么时候不能,为什么能,已经为什么不能等。

而对于合格的面试官而言,不应该去纠结被面试者回答的是能或者不能,而应该通过被面试者的回答来评估被面试者的逻辑思维、技术理解深度等方面的能力。

另外,对于被面试者而言,一定不要在面试中全程跟着面试官的节奏走,要大胆的打破节奏,表现出你的能力,面试是个动态的互动过程,不是应试做题,不要限于条条框框。
dlmy
1 天前
@newaccount 典型的老白兔式回答,跟:“这个需求做不了、我以前都是这么做的、这个不归我负责” 有着异曲同工之妙 :)
wanmyome
1 天前
在大厂 MySQL 是不能用 Docker 的,为什么?

有没有可能是法律问题,毕竟镜像和源全挂了
Sendya
1 天前
我们这除了大型集群提供了公司级独立的 MySQL 实例可用,部门内部的偏小项目一般都是容器直接拉一个,在当下这个追求效率的年代,哪有那么多规矩

MySQL 放 docker 里也没网上传的那么玄乎的问题,甚至需要的话放 docker 里的 MySQL 照样做主从,双主
wxxxcxx
1 天前
Mysql 出现问题--->找 Mysql 专家
Dokcer 出现问题--->找 Docker 专家
Docker 中的 Mysql 出现问题--->找 Docker ,Mysql 双料专家

当然也可以找两个不同领域的专家协作解决问题,但同时也会带来沟通成本的上升。
Docker 对于有状态的服务并没带来什么实质性的好处,反而会增加解决问题的成本。
deplives
1 天前
能问出这种问题的,我一般会拍拍屁股走人
michael2016
1 天前
@dssxzuxc 看了你的回答说明你还是了解实践过,有点料,但不多。这很明显是一个掉坑问题,如果实践过,你会发现不同的场景关注目标点和 ROI 完全不一样,分两个场景讨论:生产环境、测试或预发环境。
生产环境:
在生产环境中,稳定性和数据安全是第一位的,关注点放在架构尽可能简单化、资源使用率最大化、可管理监控成本,精细化的运维工作需要解决数据持久化、高可用、性能优化、备份和监控、安全漏洞、供应链风险等所有复杂问题,我们需要降低了运维成本,把人从这些不必要的工作中解放出来。
测试环境:
这个环境关注高效、快速交付,它能快速、一致地搭建数据库环境,避免了版本差异带来的问题,即开即用,资源周期短。

2.DDoS 本质是一个资源问题,这是技术问题,不是问你也能用钱成本的问题,你需要解释 DDoS 攻击类型,不同的攻击类型如何应对,攻击场景不一样,处理方式不一样,成本代价也不一样。

3.如果把你的客户数据、商品信息都爬走了,我相信你可能不是这样讲了,这里面要看数据价值、资源运行负载等稳定性相关的问题,这些问题看起来简单,实际处理面对非常复杂,攻击方式从简单到高阶的拟人方式,应对成本会从小到巨大,严重情况下会让业务停摆,公司关门。

4.最后一个问题讲了大概,具体原理要分步骤讲清楚实现方式、技术原理、利弊。

看了大家回答的问题,也就你从技术上回答的稍微沾边,但是对待技术态度不够深刻。其它的人就不说了,没有去深度思考,随意情绪化表达。年轻有时间还是要多深度学习。
lvlongxiang199
1 天前
你是哪家公司的 ? 我避避雷

"在大厂 MySQL 是不能用 Docker 的,为什么?" 抛开事实, 只谈论这个问题的问法, 答主似乎假设大厂做的都是对的, 也没考虑大厂是否因为非技术的历史原因选择这条路. 不如换个问题, 生产环境上, MySQL 跑在 docker 里, 有什么优缺点

另外, 大厂的 MySQL 真不跑在 docker 里吗 ? 那为啥会有 https://dev.mysql.com/doc/mysql-operator/en/ https://kubeblocks.io/ 这些项目 ? 起码有些公司在用
lvlongxiang199
1 天前
@michael2016 "在生产环境中,稳定性和数据安全是第一位的,关注点放在架构尽可能简单化、资源使用率最大化、可管理监控成本,精细化的运维工作需要解决数据持久化、高可用、性能优化、备份和监控、安全漏洞、供应链风险等所有复杂问题,我们需要降低了运维成本,把人从这些不必要的工作中解放出来。
"

说了一段没用的废话

如果按照这些标准, k8s operator 都比裸金属部署更合适呢 ?
michael2016
1 天前
@Richared 你讲到了现实矛盾,挺好,说明你经历过体验过,这里面很多技术和管理问题混杂,没那么容易,很多问题。
lvlongxiang199
1 天前
"JD.com: MySQL Containerization and Elastic Scheduling in E-commerce Scenarios"

https://kubeblocks.io/blog/run-databases-on-k8s-insights-
from-leading-chinese-internet-companies

看来在 OP 眼里, jd.com 不算大厂
lvlongxiang199
1 天前
michael2016
1 天前
@lvlongxiang199 这个问题应该这么问:在生产环境中不推荐使用 docker 运行 MySQL ,简单简述一下。你要根据你的工作经验详细原理或踩过的具体的坑?
michael2016
1 天前
@lvlongxiang199 PR 跟实际情况可能相差很远,你如果只看这个没有实践过我们就不讨论了,你是对的。
如果你管理过几万台机器,我们可以深度交流一下。

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

https://www.v2ex.com/t/1160112

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

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

© 2021 V2EX