转载自:http://weibo.com/p/1001603839871499289201
最近Docker非常火,以至于和圈里朋友聊天的时候,如果不提Docker,都不好意思打招呼。于是就补习了下Docker的基本知识:《Docker入门与实践》。有了个大致的感觉。
有个云计算的产品经理问我,你对Docker怎么看?我的回答是:很不错,但是现阶段还不成熟,我不看好。总体来说,对开发很友好,对运维是个灾难。我不知道那些鼓吹Docker具有优秀“可运维性”的人,是否真正做过Docker的运维?
这个观点可能来自于很多个理由,其中最大的理由是“碎片化”。我的前一个微博讲运维的本质是可控。那么Docker的碎片化,就是让这个“可控”变得“失控”。为什么这样讲,Docker有个很大的优点,就是灵活,他可以非常灵活的部署,迭代和引用。但这个也是个双刃剑。
举个例子:我们现在做了一个Docker img。这个img可能会被很多业务通过Docker hub 灵活的引用。但若干时间后,这个base img发生了bug或者漏洞,而修复这些东西可能会造成上层引用的img故障,这个时候怎么办?
1:选择重新build img,所有的引用全部重来,这个。。。业务系统稍微复杂一点,这种做法,就是要累死运维了。。。。
2:不做任何强制性约束,哪个业务系统可以改,就改,不能改就算了。反正docker可以灵活的引用,没关系。时间长了,生产环境中就会充斥各个不同的“版本”,运维的同学既不能控制风险,也不能控制稳定性和性能,完全又是要死的节奏。
这个例子很典型,也是Docker对运维影响的其中之一。另外,Docker相对复杂的网络配置,container之间的通信,都是需要攻破的难题。磁盘IO,quota本身也是Docker的弱项,就更不用提了。
所以,Docker的优点,都是针对于开发来讲,而非运维。要说运维的优点,很多人会说Docker非常轻量级,效率高,实际上Docker带来的效率提升,远不及业务系统逻辑和代码优化那么一点点。。。。。。
当然也有人会说Docker的发展很快,以后有很多运维性的提高,没错,但到了那个时候,也许会有更新的容器技术出现,就像nvdimm之于SSD~
转载请注明:旅途@KryptosX » 【转载】作为一个运维,我怎么看Docker?