由于最近一直在从事Docker相关的工作,所以有机会参与这次的CNUTCon全球容器大会。名字比较“高格”,虽有少量的外国人分享,大部分还是中国的互联网企业在宣传,忽悠。除去这些,整体来说这次大会还是非常不错的,门票也不算太贵,目前看来应该还是值的。我司还是这次大会的钻石赞助商,也说明我们在容器这一块的发力程度。
整体感受
Docker是这这两年成长最快的技术,受到资本市场的热捧。Docker技术以势不可挡地席卷全球。参考这次大会,整体感受是:
- Docker已不再是概念,已进入互联网企业的实际生产环境中
- Docker的创业公司多,有远见的想在这次的浪潮中分享红利
- 大公司借Docker东风,亦想在云计算领域中拿下更多话语权
- 容器技术处于战国群雄,完整的生态还比较混乱技术栈不成熟
看国外
这次的CNUTCon,居然没有请求正牌的Docker公司,而是请到他的死对头CoreOS,其次还有RedHat,Google,以及Rancher。
第一天的首场分享是来自RedHat副总裁,印度英语原来在公司就听到不少的印度同事,虽说听不太清楚,却有一股莫名的亲切感。由于是副总裁人物,讲的东西也是太High了,主要是分享OpenShift为什么要使用Docker,以及对Docker的认识。可以说在技术上空洞无物,对我来说“然并卵”。过程中的演示貌似险出了岔子。总之,他是来宣传OpenShift。
其次是来自CoreOS产品负责人分享,不过也没有什么干货,可能他对国内Docker技术应用程度还不太了解,还停留在宣传概念阶段。主要讲了两组项目:一个是Chubby+Borg,之后是etcd+k8s。并分别对比了Chubby以及etcd,最后是基于etcd的使用演示,Demo放到了Git上。只能说这个Demo是对etcd相当的入门级。总之,他是来宣传etcd。
可以说,第一天的两场分享,其实跟Docker,或容器技术关联不是很大,看来InfoQ请错人了。
第二天的来自国外的分享,有Google的华人美女工程师分享了“Kubernetes和Borg的设计哲学”。这一场还是不错的,虽也是比较High Level的介绍,不过让我这种屌丝有机会了解一下Google十多年前就开始的容器管理理论,感觉是真是简单实用:
- declarative > imperative
- Control loops
- Simple > Complex
- Modularity
- Legacy compatible
- Network-centric
- No grouping
- Cattle > Pets
- Open > Closed
再次是来自Rancher Labs的秦总分享的“Rancher Labs 企业级私有容器服务平台解决方案分析”,并且他还跟我一起在现场的另外一个同事是之前的同事。干货比较多,演讲者虽说不懂技术,但Rancher给我带来是思维,尤其是后面介绍的“RancherOS”,在会场没有听太明白什么是“Dockerized OS”,后面查询一些资料,发现它除了内核之后,PID1就是Docker,其它的系统服务都Dockerized,并且在发行包的大小做到了极致,只有20M。能把Linux的系统服务通过Docker容器来管理,不得不说这这一项不错的创意,如果能实现应用在生产中,这不知又会对Linux产生什么样的深远影响。
小结
由于只有四场,OpenShift与CoreOS是来做广告,我也曾经想在OpenShift免费空间上搭建Go的Web环境,发现真TMD的难用,OpenShift又想借Docker打个翻身仗,PaaS本身的体验不解决,Docker也“然并卵“。而CoreOS在容器中扮演着是一个搅局者,对防止Docker一家独大是益的,但它的RKT差不多落后Docker一年半,但是ETCD还是不错的。
Google是老牌的容器使用者,他在这一这方面的经验可能是最具有发言权的。他也乘着Docker之势,迅速摧出K8S。并极力去构建Container Orchestration,ContainerInfrastructure,ContainerManagement的生态。虽说K8S目前还是很成熟,但在未来在容器界K8S必定举足轻重,甚于可能是Container Orchestration的事实领导者。
看国内
在国内,自然少不了BAT,以及后之秀京东。商业的成功驱动他们在技术上必定走在前列。第一天下午几场都使来自大厂的分享。
首位是京东云平台的分享,京东最初的希望是通过一个平台,将物理机,虚拟机,容器,三种资源统一管理,随后的演化中,容器逐渐成为了一等公民。一种是容器直接在VM上,一种是让VM看起来像容器。开始是采用“胖容器”的模式,这一思路与我们的不谋而合,首先是要把容器使用起来,不管它是容器还是虚拟机;再次是业务的纯容器化。如何把容器中融合到已有系统中是目前大家遇到的最大挑战。
其次是来自大众点评的分享,同样对容器的使用,也是使得容器看起来像虚拟机。重点介绍了在网络方面的经验,如通过新创建的br0网桥与eth连接,使得docker 容器可以有自己独立的IP。最后也分享在使用容器过程中一些坑。
再次是阿里百川的TAE Docker全架构分享,干货是相当的多,信息量是相当的大的。Docker只是TAE中非常小的一部分,目前还是把Docker当做工具来用,重要介绍不是为了Docker而Docker,Docker并不等于容器。在实践的过程中,Docker的优势,基于Docker的全架构的PaaS平台,才兼具IaaS的灵活性和PaaS的易运维性。其实也说明Docker技术拉低了云平台的技术门槛,像原有的IaaS只有大投入才能玩得起,而Docker让你使用云资源变得更轻捷。
再次是也来自腾讯的在游戏上,Docker实践:现状、经验及展望。其中有意义是在网络上的改造,目前Docker在网络上是很弱的。像点评一样,不得不面对网络打通的问题。一般来说,游戏业务的生命周期长短不一,这需要弹性的资源管理和交付。相比于虚拟机,容器更加轻量,效率更高,资源的交付和销毁更快。可能说像Docker的应用可对针对游戏业务提升资源的利用率,降低运营成本,也是Docker的魅力之一。
第二天是来自百度的分享,感觉百度对于容器的实践比较牛逼,在docker没出来之前,他们就学Google都着眼于容器技术了。对于大企业来说,在资源调度上面对的困难是如何错峰填谷,如何将服务与机器解耦、预算调度,资源精细分配,统一池化,如何解决混合部署带来问题。而基于容器技术构建的Matrix平台,直接是在cgroup (划出一个资源框)namespace(内部的话只需要部分)的基础上定制操作。再通过agent来把这些所谓的“容器”启动起来,架构上有统一的container操作接口。其次是百度对于容器的安全性也有了很多实践,其实所说的安全性就是让容器上的代码不会跳到主机上去,让host上的代码不会逃逸出去。分享的内容很多,整体来说,百度应该是在国内互联网企业研究容器技术比较深的,而不仅仅是Docker的简单使用。
小结
大公司的docker实践更有发言权,实际上他们对于docker的实践才是真正切合实际的,在实践过程中也是对于原有业务的相关性迁就比较多,不是为了容器而容器。各个公司解决方案,定制的过程,玩法,基本上是各有各的招。如遇到的网络的改进,渐进式的使用,某种程度上把docker当成虚拟机的来用。究其原因,还是因为业务解耦,平台自由,容器化的过程并没有那么简单。
看编排调度
这次会议上有几个都在分享K8S,Swarn的技术。由于一直关注K8S,我只是选择都听了一下。谈到K8S,大家都要说说mesos swarm,对比一番。后也听了我司的线超博对Swarn分享。整体来说,像K8s这种,还是理念较新的技术,大公司没有看到一个在采用,一是它出来太新了,二是在性能及稳定上存在问题。只有新创业的一些公司,赶上打着这些的旗号。一些散户玩玩还行,但对一企业级的业务,如何彻底地服务化,如何灵活地容器调度,原有业务如何契合,明显还有很长的路要走。而swarm更是不适合在生产环境中使用,并且docker公司想一家独食的原因,又要在编排上分一怀羹,目前大家都不看好它。另外swarm在设计上缺乏集群管理的视角,也难以在生产环境中发挥调度的优势。个人认为K8S在编排调度上会完胜Swarn。