Docker实战:一部奋斗史

前段时间,一篇名为《Docker实战一部失败史》的文章在2B圈子引发一片哗然。原文做者的主观意愿不得而知,固然咱们也不是动机论的拥趸,仅做为一名再普通不过的容器技术创业者身份,聊聊咱们的Docker实战:一部奋斗史docker

Docker并非一门新技术。若是你以前就使用其余容器技术,那么上手Docker会很简单;以前不了解容器技术也没有问题,只是一些容器的思惟须要你去了解,而后再去使用。就像使用智能机以前,并非必定要使用非智能机做为铺垫。服务器

Docker公司推出的以容器管理为核心的一整套工具是在已有技术(LXC,并借助SCM的设计思想)的基础上作的延续性改进,因此Docker并非一门新技术,他的创新在于思想层面,总结起来有如下几点:运维

1.打包(封装)分布式

Docker利用容器技术将软件的代码和环境打包在一个镜像中,这是它的技术特性。从思想层面考虑,它改变了软件交付方式,让软件的生产者将软件作出了以后交付到最终用户那里保持绝对的一致性。通俗地讲,容器技术将软件的运行与环境完全隔离了。工具

给你们举个例子:测试

Windows系统你们都用过,自Windows问世以来,微软花了十几年的时间,一直到Win7才基本上解决一个困扰了多年的问题——共享动态连接库的隔离。说得通俗一点就是隔离每一个软件的依赖文件使之互相不受影响。优化

问题是怎么产生的呢?云计算

软件是由不一样公司编写的,但库又是共享的,所以随着软件的发布,软件厂商会将本身的动态库打包发布,到了用户那里直接安装。你们别忘了这个是共享库,A软件用A版本的,B软件用B版本的,最终咱们可爱的操做系统就由于安装一些软件被搞崩溃蓝屏,坠入到平均1个月重装一次系统的循环当中。操作系统

微软的共享连接库隔离,说白了就是要减小软件对系统的依赖性,但微软作了这么多年都没能作到不折不扣的隔离。设计

但到了2013年Docker作到了,它用了巧妙的方式将软件和依赖的文件(环境)封装成包(镜像)。当我看到这种方式来解决软件交付问题的时候,仿佛感到一丝带着情感的风吹到个人心坎里同样!“Docker太TM了解咱们这帮开发者了”。当我将这种方式(思想)传达给运维兄弟的时候,运维兄弟迷茫的双眼顿时发出一道闪电,恶狠狠的扔出来一句: “我 *和谐和谐*,不再用一次次折腾环境了!”

2.隔离

新技术都是在旧有技术上“生长”出来的,Docker最先基于LXC技术并进行技术革新,但任何技术的演化都与其当时所处的时间点是有关系的。2013年虚拟化技术正在逐步成熟,处于快速增加期,业界都在围着虚拟化技术来争抢市场份额,目的是为了抓住云计算这杆大旗。

但虚拟化技术是“生长” 在物理设备上的技术。它本质上是优化物理设备的使用效率。它没有抓住云计算的要害。但以Docker为表明的容器技术的出现,它与虚拟化技术彻底不是在一个维度上的产品。容器技术解决的是软件交付效率和成本的问题,它直达了用户的最终诉求。云计算的最终目的不就是为了提高产品的交付效率,下降交付成本吗?虚拟化技术提供土壤,容器技术才得以开花结果!

既然是隔离,那么容器技术的隔离只须要保证软件和主机之间的隔离就能够了。谈什么隔离性很差,拿容器当虚拟机用的同窗们可能还须要调整下思路。

任何事物都有其适用性,技术也是如此,“不要由于手里拿把锤子,看什么都像钉子。”

3.发布

截至目前,镜像仓库能够说是Docker最伟大的发明!它将镜像以代码仓库的形式进行版本管理,并支持经过Push/Pull的方式来发布和分发镜像,它为软件的交付提供了载体

咱们已经感觉到了代码管理和分布式开发的便利,镜像仓库为咱们提供了软件的版本管理和全球分发。想一想咱们之前经历,以及正在经历的获取软件的方式吧!你用或者不用,镜像仓库就在那里。     

额外说一句,那次全球的docker大罢工对企业生产环境会形成影响,尤为是《Docker实战:一部失败史》文章做者说的互联网金融公司的场景,我以为这个问题你们看看就好,这应该是做者开的玩笑。

 

咱们的奋斗史【简短且主观】

13年初,咱们开始接触Docker。在刚推出时,Docker虽然仍是个带着实验性质的产品,但彻底能够进行完整的测试。请注意这里面的彻底和完整两个词,Docker虽是个新鲜货,可是实践证实测试环境下是没有问题的,因此咱们尝试将其用在生产环境下。

14年初,公司内部自行研发出了一套容器管理系统,使用在内部开发和部分服务的生产环境中,又一次证实生产环境下也是没有问题的。(注:们在2014年3月份已经将容器应用到生产环境中, 当时Docker的版本是0.9.0 ,咱们生产环境的规模是4台2U的惠普服务器,32G内存。没有发生任何线上事故。)

15年4月,咱们从以前的公司出来创业,把三年的落地经验和不断迭代的产品,拿来进行商业化运做,最终面向用户的是产品基于容器技术的应用管理平台。咱们为何能放弃现有的一切,投身于才刚刚出现2年的技术来创业呢?

一是由于咱们看到了将来的发展方向,发现了另一个维度的市场。容器技术能真正发挥云计算简捷高效的特色。

二是考虑到还有不少在努力填坑的朋友和公司,为了让他们更快的享受云计算和容器技术带来的红利(《一部失败史》偏偏验证了咱们的这个想法)。

 

结语

只要有解决问题的思想,能用钱解决的问题都不是技术问题。

 

本文做者周悦秋,好雨联合创始人

文中提到《Docker实战:一部失败史》

原文连接:http://t.cn/RVFtYi9

THEHFTFGUY “Docker in Production: A History of Failure

相关文章
相关标签/搜索