容器技术一月刊:容器技术以及微服务的一些思考

Posted 分布式实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了容器技术一月刊:容器技术以及微服务的一些思考相关的知识,希望对你有一定的参考价值。

写在前面的话
去年下半年的时候,我曾经给一家创业团队做过短期的技术顾问,刚去的时候他们就跟我非常自豪地说他们的系统采用了微服务化的架构,并且还能支持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 胡震


关于月刊


《DockOne月刊》是由国内知名容器社区DockOne.io推出的刊物,旨在帮助国内爱好者学习使用Docker。本书涵盖的内容包括新闻回顾、他的态度、实战经验和万花丛中,内容篇篇精彩。DockOne月刊每月14号出版,欢迎阅读。


月刊目录


2016年六大OpenStack & Docker发展趋势预测
【翻译:李颖杰】对2016年OpenStack和Docker发展趋势的六大预测。

十分钟带你理解Kubernetes核心概念
【翻译:崔婧雯】文章简单介绍Kubernetes的核心概念。因为这些定义可以在Kubernetes的文档中找到,所以本文也会避免用大段的枯燥的文字介绍。相反,会使用一些图表(其中一些是动画)和示例来解释这些概念。

Oracle收购StackEngine的三个原因
【翻译:钟最龙】收购StackEngine有助于甲骨文赶上已经非常重视容器技术的其他高科技巨头。那为什么甲骨文会收购这个只有5个人的初创公司了?InfoWorld的编辑对此进行了分析。

Puppet踏上容器之旅,全面支持Kubernetes
【翻译:李颖杰】今年二月,Puppet Labs公司CEO Luke Kanies曾经在接受采访时表示,他认为Docker在企业环境下的快速普及基本上只是一种幻觉。而就在不到一年之后,Puppet Labs发现自身已经处于非常尴尬的境地——其开始着手将工具转移至容器化环境当中。

红帽产品总监回顾容器与PaaS的发展历程
【翻译:杨峰】本文作者是红帽的产品经理Daniel Riek,他有17年以上的软件开发和开源工作经验。文章回顾了OpenShift的整个发展历程,介绍了OpenShift从2011年到现在遇到的一些机遇和挑战。

再谈容器标准:CoreOS总结OCI、CNCF和AppC的发展
【翻译:钟最龙】在CoreOS,我们坚信开放的标准对于建立容器生态来说至关重要。我们对于围绕着容器和云原生计算的标准和基金会所投入的大量工作感到非常兴奋,这也包括关于Open Container Intialtive(OCI)的技术管理结构的确认。

Apache Mesos和数据中心操作系统的崛起
【翻译:陈光】本文是Mesosphere公司的工程师对他们公司产品DCOS的介绍,也顺带介绍了Mesos的架构和功能以及Mesos的init框架Marathon和Cron框架Chronos。

当讨论分布式系统时,我们都会讨论些什么?
【翻译:柳泉波】分布式系统是一个庞大的议题,每个子领域都有大量的研究。学习分布式系统知识,如果不分主次地随看随学,效果不会好。本文介绍了分布式系统的主要概念,适合作为分布式系统的入门指南。

生态 |OCI确定组织架构,并宣布新成员加入
【翻译:梁晓勇】开放容器组织(Open Container Initiative,简称OCI,由专注于软件容器通用标准的行业领导者广泛联盟代表)今天宣布了其技术治理结构以推进其使命,同时对新创始成员的加入表示欢迎。

容器,云和代码:Yelp如何使用Mesos和Docker构建混合云?
【翻译:崔婧雯】为了解决Yelp的基础设施问题,Eaton带领团队对容器进行调研并寻求解决方法,最终决定使用Apache Mesos和Mesosphere。基于Mesosphere构建了PaasTA服务,为测试环境开发了Seagull平台。本文对Yelp公司采取容器方案前的困境以及采取容器方案后的好处分别进行了说明。



点击左下角【阅读原文】链接,阅读本月刊。

以上是关于容器技术一月刊:容器技术以及微服务的一些思考的主要内容,如果未能解决你的问题,请参考以下文章

容器技术·11月刊:容器技术与社区

基于容器云的微服务架构实践

微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计

有容云-PPT | 当微服务遇见容器

容器技术·2月刊发布,点击阅读

拥抱技术大势:机器学习微服务,容器,Kubernetes,云到边缘计算