【编者的话】《DockOne月刊》是由国内知名容器社区DockOne.io推出的刊物,旨在帮助国内爱好者学习使用Docker。本书涵盖的内容包括新闻回顾、他的态度、实战经验和万花丛中,内容篇篇精彩。DockOne月刊每月14号出版, 欢迎阅读 。
去年下半年的时候,我曾经给一家创业团队做过短期的技术顾问,刚去的时候他们就跟我非常自豪地说他们的系统采用了微服务化的架构,并且还能支持Docker,然后我花了些时间阅读他们的代码,才发觉他们理解的微服务无非就是把原来的一个大而全的Spring MVC工程拆分成了很多小的工程而已,然后他们就号称这样就是微服务了而全然不管这些服务的拆分粒度是否合理以及耦合依赖的问题,当然了,造成这种理解偏差的原因可能跟他们团队的CTO是非技术出身的,开发人员也只会Java和Spring MVC框架有关。不过不管咋样,现在互联网行业里微服务和容器概念已经深入人心了,哪怕是像这样技术储备相对比较单薄的创业团队也想跃跃欲试。
过去的2015年里,容器技术得到了飞速发展,以Docker为例,就先后发布了从1.5到1.9五个大版本,增加了“只读容器”、“ulimit支持”、“日志驱动”、“Volume插件”、“Networking”等新特性,Docker Machine、Compose和Swarm三剑客也全部进入了Product Ready阶段。对应地,没有竞争也就没有发展,作为Docker的竞争者,CoreOS的rkt、HyperHQ的Hyper等在2015年里也获得了极大的发展,更不用遑论还有Kubernetes、Mesos等第三方集群编排和调度系统在完善容器生态系统。与此相映成趣的就是去年6月份成立的开放容器组织(Open Container Initiativ,OCI)发展势头也是非常迅猛,先后有多家IT&互联网巨头加入该组织了。虽然目前Docker已经可以算是事实上的容器技术标准了,但是一花独放不是春,如何在竞争的过程中保持技术标准兼容性、避免分裂就是OCI组织成立的一个重要目的之一,问渠那得清如许,唯有源头活水来,保持竞争活力才有美好的明天。
以Docker为代表的容器基于Namespace做权限隔离控制,基于cgroup做资源分配,加上容器生态系统提供了对于集群分布式应用越来越完美的支持,这样的技术背景决定了容器技术在互联网行业应用及云服务的美好前景,特别是与现在业界火热的微服务架构模式是完美搭档。其实在容器出现之前,就已经有了微服务架构的概念,只是前些年发展一直不温不火,也是在14、15年两年随着容器逐渐走入大家的视野,由于容器特有的资源和权限隔离能力、轻量级系统开销、可复用性、可移植性、可追溯性以及版本化的镜像等特性,大家意识到容器是微服务架构模式一直在寻找的好基友,开发团队也更易实现DevOps。相对于单体(Monolith)应用,微服务天然支持异构语言及多元技术栈,便于众多小而美的团队分别开发各自的功能,支持“碎片化”的方式推动系统演化,降低变更风险,与此对应的带来的问题是增加了运维的难度,而这些恰恰就是Docker等容器可以支持的特性或者可以解决的问题,两者相得益彰完美绝配。目前微服务框架也是百花齐放,Java领域有Spring Boot/Cloud、Dubbox,Python有flask,Golang有Gokit等等,不过相应地微服务架构模式对于研发团队以及技术架构负责人的要求也提高了不少,技术储备工作必不可少,也就是俗话说的“没有金刚钻,哪敢揽瓷活”,比如服务粒度如何划分、如何保证HA、分而治之之后如何整合各个微服务对外提供统一服务等等问题就会浮上水面,还有就是如何将Docker玩转地出神入化也是不少团队需要考虑的问题,我们DockOne社区在这方面也是做了不少这方面的分享的,大家可以参考借鉴。
Docker底层的核心技术包括命名空间(Namespace)、控制组(control group)、联合文件系统(Union file system)和容器格式(container format)。目前在命名空间方面尤其是Net Namespace、User Namespace还有很大的潜力可挖,比如在Docker V1.9版本中就提供了“docker network”命令,并且提供了对于跨节点通信的官方解决方案,在User Namespace方面也提供了实验版本。
展望2016,以Docker为代表的容器将会继续飞速发展,比如继续完善Docker Registry V2和网络插件,前述的User Namespace特性也会在今年正式提供,让大家对于容器的安全使用更加放心,在系统稳定性方面也会继续提升,可以从开发、测试和stage环境越来越多地进入正式生产环境中。正好这几天《星球大战7:原力觉醒》也在国内上映,希望容器技术以及我们DockOne社区也趁着星战7的史诗冒险全新起航的时刻,开启新的时代。
上海凡用CTO 胡震
,目前上线了百度阅读版本,感兴趣的朋友赶紧来读。如果想给我们反馈,请直接留言。、。