Notice: Constant WP_DEBUG already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 12

Notice: Constant WP_DEBUG_LOG already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 13

Notice: Constant WP_DEBUG_DISPLAY already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 14
看Docker的三生三世,它会成长为下一个巨人吗?【zoues.com】 – zoues

LOADING

Follow me

看Docker的三生三世,它会成长为下一个巨人吗?【zoues.com】
四月 28, 2017|DockerPaaS

看Docker的三生三世,它会成长为下一个巨人吗?【zoues.com】

看Docker的三生三世,它会成长为下一个巨人吗?【zoues.com】

看Docker的三生三世,它会成长为下一个巨人吗?

作者|孙宏亮
编辑|Emily
细谈Docker,我们发现,其背后的容器技术,其实并非首创,早在十数年前,容器技术便已有雏形,那究竟为何Docker的席卷之势空前之大。不论是技术领域有什么独到之处,还是时势造就了如今大好的局面,我们都没有理由不来细细品鉴Docker这三年来的种种发展。
什么是Docker?

狭义而言,Docker是一款轻量级容器的管理引擎软件。云计算时代,可以帮助用户轻松实现分布式应用的“Build, Ship, Run”。

广义而言,Docker是一家以容器服务为基础的硅谷公司,试图改变传统应用的构建与交付方式,创造应用模式的新时代。目前,从市场发展与技术影响而言,Docker凸显了极大的潜力。

回顾Docker的三周年,从技术的发展到公司的运营,从产品的布局到生态的建设,我们不由得感慨,下一个巨人是否就是这家logo是鲸鱼的公司。

Docker的诞生

三年前的云计算,提到最多的关键字无疑是IaaS(Infrastructure-as-a-Service,基础设施即服务)。企业往往通过IaaS技术建立起信息化的数据中心,有效地管理池化资源。如果历史的发展仅仅满足于此,那么科技也就会停滞不前。

当时,在加州湾区以Solomon Hykes为首的几位天才工程师就在尝试,能否在资源之上,架构出一套完善的分布式平台,有效快速帮助用户的应用系统平稳运行。他们的公司实体也就是Docker的前身dotCloud。经历了一段时间的试水之后,历史并未遂这群极客的愿,dotCloud云战略的运营并非成功。

然而,常言道,失败是成功之母,这句话印证在dotCloud身上再适合不过。失利的同时,Solomon敏锐地嗅探到了,dotCloud体系的中的容器技术,反倒是解决了目前市场上用户应用构建、分发和发布的诸多痛点。痛定思痛,Solomom迅速技术转型,开始投向容器技术,并从一开始就开源,当时就吸引了为数不少的开发者。

时间定格在2013年3月,容器技术定名为Docker,原力诞生。

技术演进

诞生仅仅意味着不平凡的开始。后来的3年时间中,Docker立足技术,服务用户,培育市场,建立生态,发展历程可圈可点。

开源、轻量级、API标准

开源、轻量级、API标准,可以说是Docker在2013年起步时最重要的三大法宝。开源,吸引开发者,培养并壮大社区;轻量级,引发容器与虚拟机之间的众多思考,创新之下,带来的是对未来无限的想象空间;API标准,看似不经意,事实却帮助Docker大大降低了上手门槛,同时也在最早时间占领了重要的高地——用户的使用习惯。

数据为王

新手的三板斧,着实有模有样。而后的一年之间,Docker的定位似乎异常清晰,那就是围绕镜像,围绕Docker Hub,构建全球最庞大的镜像仓库。信息化时代,时常传有这样的一句话:技术可以复制,而数据无可复制。Docker Hub这个镜像仓库越是庞大,意味着Docker的用户群体的数量越惊人。

进军生产环境

2015年初开始,Docker一直谋求在企业生产环境中有所突破。随着社区的壮大,Docker Engine的发展也异常的快。Engine在逐渐成熟的过程中,经历了多次蜕变。Engine自身架构模块化的发展;在内核级别保障Docker化应用更高的隔离性;存储方面支持更多的驱动,如:aufs、devicemapper、BtrFS、overlayFS、ZFS等;同时在日志管理等方面逐渐集成第三方优秀产品。

Engine功能的完善与稳定性提高,是Docker生态的一大基石。在此基础上,Engine上层的容器编排工具(Compose)与集群管理工具(Swarm)迅速走入世人眼线,并与集群创建工具(Machine)合力,意图构建容器生态的三驾马车。

进军生产环境之路,绝非一朝一夕,Docker同样招来了一些质疑。最令人深刻的,当属CoreOS与Docker的竞争。标准,无疑是如今行业的兵家必争之地。当时,容器标准和镜像标准迅速成为焦点。好在,最终在DockerCon 2015上,Solomon和CoreOS的创始人Alex Polvi最终握手言和,而Docker也将自己的容器技术实现libcontainer共享给Linux基金会,成立runC项目,与基金会一起建立并维护容器标准,此事对于整个容器生态而言,绝属一个利好消息。

集群能力

三架马车的初具形态,容器标准的建立,依然无法掩盖外界对Docker在某些方面的诟病,诟病最多的当属Docker网络能力以及集群能力的薄弱。如果不能满足分布式应用的需求,Docker的未来难免存在阴影。2015年年末1.9.0版本的发布,则标志着Docker补上了自身的最后一块短板。无需借助第三方工具,Docker即原生支持跨主机容器的直接通信。其中,主要借助Docker Engine原生支持overlay网络来完成。

除了网络能力的重大突破,Docker的存储能力逐渐变得开放。Docker镜像方面,开始采用内容寻址方式,提高镜像利用率与安全性;容器存储方面,开放volume接口,方便用户集成第三方的存储解决方案,如Flocker、ScaleIO等。

集群能力的完善,给用户带来的体验绝对空前。自此,Docker的一体化世界已成形态,在容器领域形成一个巨大的工具链生态。

融资与收购

技术的迭代同时,Docker在资本市场的斩获也是捷报频传。融资的逐渐做大,也恰恰适应Docker的发展势头。Docker公司从2013年开始,一共经历了多轮融资,而且累计金额高达1.5亿。融资金额的巨大,意味着Docker将来一定要上市IPO,从而给投资方以回报。

Docker的诞生至今,已经积累了大量的开发者,开发者市场可谓规模惊人,但是投资者和Docker都清楚,依靠开发者市场很难盈利,而上市IPO则必须有业绩,企业市场似乎就成了一条必经之路。纵观Docker的发展,不论是收购的步伐,还是产品的演进,商业化的意味也是逐步弥漫开来。

Docker公司及其前身在融资方面的进展详见下表:

看Docker的三生三世,它会成长为下一个巨人吗?

资本的推动背后,Docker在收购方面,一直步步为营,循序渐进。从工具的吸纳,到平台的支持,到生态的构建,

  • 2014年7月,Docker收购Orchard掀起了收购的序幕,随后立即将Orchard的产品Fig更名为compose,成为Docker最重要的项目之一进行维护,辅助完善Docker容器的编排业务。

  • 同年10月,Docker收购Koality,加速企业版DockerHub的开发,从而在企业级工作流程以及应用生命周期管理方面提供更自动化,更高效的服务。

  • 2015年的3年,Docker和SocketPlane走到了一起,容器的网络能力得到一定程度的突破,SocketPlane在SDN方面的经验,也帮助Docker成功孕育了后期libnetwork项目的发展。

  • 同年同月,Kitematic拥抱Docker,容器的自动化配置部署也帮助Docker在用户市场占领更大的份额。

  • 去年10月,震惊容器界的大新闻无疑是Docker对于Tutum的收购。这一举动将Docker的意图表现得再明显不过,容器化企业级应用的部署与管理版图初步完善。

  • 今年年初,Unikernel与Docker的结合,则和以往的并购案稍显不同。也许Docker早已察觉到在未来的容器世界中,操作系统是一个有待革命的领域。如何实现操作系统的精简,进而更好的支持容器的运行,很有可能是操作系统的变革之路,比如CoreOS的起点,也是基于这样的理念。

  • 3月初,另一个大新闻则是Docker对于Conductant的收购。要知道Conductant的团队是Aurora项目的创始者,而Aurora则是Mesos之上最为成功的框架之一,用于支持长任务的运行以及周期性的任务。此举的意图无需多谈,对于应用的编排管理,Docker已经不甘示弱,奋起直追,力求与Kubernetes和Marathon正面竞争。

Docker公司的收购案例详见下表:

看Docker的三生三世,它会成长为下一个巨人吗?

产品布局

资本可以支撑Docker的运作,收购则是Docker技术与产品的补充。围绕“Build,Ship,Run”这一宗旨,Docker提供了一系列极大方便DevOps团队管理应用的集成产品。进一步深入,你会发现Docker已经提供了4类不同的产品:

  • Docker解决方案

  • Docker工具箱

  • 软件基础插件

  • 开放工业标准

不论是公有市场,还是企业化的私有市场,Docker的解决方案完全覆盖了两个领域。公有的Docker Hub以及基于Tutum的Docker公有云,极大的满足了公有云容器市场。而商业版的Docker Engine,Docker Trusted Registry以及UCP,则作为企业市场的三件套,形成完善的DDC(Docker Data Center),构建一体化的Docker数据中心。

针对开发者市场,Docker ToolBox则是一个专为开发者设计的工具包,从而实现云原生分布式应用的构建与运行。强大的工具包中几乎涵盖了Docker全部的开源项目,如:Docker Machine、Docker Swarm、Docker Compose、Docker Registry、Docker Engine以及Kitematic。

更为底层的基础设施工具,Docker提供了RunC来支持通用容器运行时;Notary可以帮助用户完成受信内容的传输分发;Unikernel则可以精简用户操作系统的,从而使应用的运行更高效更安全;

开放工业标准方面,Docker领导成立开放容器项目(The Open Container Project),并将其贡献给Linux基金会,与Linux共同构建容器格式与运行时的开放工业标准。截至到今天,全球已经有诸如Amazon、Google、Microsoft、redhat等50家公司宣布支持该项目。而RunC项目则是专为OCP而生的容器项目,从此容器标准完全可以基于RunC来发展。

生态之争

纵观历史,没有哪项技术发展之快犹如Docker。伴随技术的发展,Docker生态的成长之势也是如此。

容器引擎一向是容器技术的核心部分。随着OCP的成立,runC已经成为容器生态中的工业标准,而Docker也借助自己在用户群体方面的压倒性优势,成为容器引擎领域的事实标准。生态内相同的容器引擎,当然还包括CoreOS团队开源的rkt项目,然而在用户以及社区活跃度方面,都和Docker存在较大的差距。

坐拥庞大的用户群,又有容器领域事实标准的优势,看似一家独大的局面形势大好。然而生态之争早已和一年前的形势大有差别。虽说容器标准之争暂告一段落,但接踵而至的则是更为激烈的容器编排(Container Orchestration)之争。

容器编排是目前容器生态中最为聚焦的话题,几个容器的管理并非难事,而调度、管理和监控大规模可扩展的容器集群则是一个巨大的挑战。其中涉及的技术难点更多、更棘手,比如:多种类型的任务的处理,容器的最佳运行节点的规划,故障恢复,存储共享,负载均衡等。容器编排的生态之争,远比想象中的激烈。除了立足容器标准的Docker之外,老将、新兵均有参与。

Mesos,作为分布式系统资源调度的先驱,很大程度上解决了大规模集群的资源问题,其提出的DCOS理念也逐渐被世人知晓。配合Mesosphere的Marathon的应用框架,可以说Mesos借助Docker的大潮,似乎看到了二次春天。然而如何和Docker更紧密的结合,发挥Docker原生的能力,则是Mesos亟需解决的问题。

Kubernetes(k8s),其内部原型是Google内部拥有10年左右成功运营经验的Borg平台,目前支持Docker,对外开源。对于k8s的诞生,似乎从来没有人质疑过Google的超大规模容器集群管理能力。换言之,生态之争,k8s始终站在令人高山仰止的位置,然而这也未必不是一件好事。从用户群体以及容器技术的角度而言,亲Docker或是避Docker,Kubernetes并没有太多的选择,而通过容器编排这一绝对制高点出手,通过3至5年的时间发展,或许有能力达到不错的收效。

市场往往也不是技术一点来左右的,若不能撼动Docker的用户基础以及无法应对Docker容器技术拒绝开放的可能性,都将有可能让Kubernetes面临被动。Kubernetes必须让用户接受两套标准:即Docker标准以及k8s自身标准,不得不说这是一种无奈之举。对于Docker Engine的高速发展,k8s无法完全兼容,更是在Docker容器的滞后支持上表现出了一定程度的疲态。总结而言,隔着Docker,接触用户,试图落地,会有不少挑战。

Docker至今仍然视“Build,Ship,Run”为宗旨,编排(Orchestration)也许正在酝酿,至少布局之中,并未有太多的显露,当然本月初对于Conductant的收购,可能是较为明显的一步棋。如果说完备的工具链是进入企业市场的第一步,那么强大的容器集群编排将会满足企业内部进一步的需求。

三年的时间,Docker把绝大部分的精力放在完善容器上,然而容器(Container)和应用(Application)之间总是隔着不可逾越的鸿沟。反观Docker,细细玩味,Docker定义的内容全部是容器的原语,只有在Docker Compose一层存在薄薄的应用原语。坐拥用户群与标准,高举“Docker Native”的大旗,在帮助用户转变应用模式方面,Docker责无旁贷。

应用编排领域,Docker给外界的感受一直是不紧不慢,大有成竹在胸之态。生态之中,其他玩家最担忧的恐怕就是“Docker的釜底抽薪”了,也就是在开源的Docker Engine中添加更多的商业化考量,从而使得自身的竞争处于绝对的优势。担忧是一方面,Conductant的加入也让局势变得更加扑朔迷离,“应用”二字不再回避,瞬间应用编排生态在台面上呈“三足鼎立”之势。

未来展望

Docker三周年,IT界巨变的三年,巨变的是应用模式,是容器生态,是编排技术,更是千万软件工程师对时代的思考。

厚积薄发,会是Docker未来几年内的最准备描述。而应用编排领域的竞争势必会更加白热化,鹿死谁手,三足鼎立抑或是百家争鸣,犹未可知。作为一个容器生态的参与者,很幸运能亲历时代的变迁。

还是那句话,发展是一个亘古不变的话题,而这十年,你会相信是Docker引领吗?

作者介绍

孙宏亮,DaoCloud技术合伙人,主要负责DaoCloud企业级容器云平台的研发。对系统Docker化与微服务架构有丰富的经验,目前已出版《Docker 源码分析》一书,也是国内第一批研究及实践Docker的工程师,同时也是国内社区极具影响力的Docker布道者。

今日荐课

Docker 和容器技术热是热,但是应用时因为不了解其特性和应用方案,难免落入好剑拿来斩苍蝇的尴尬境地。Docker只有放到集群和大规模部署的场景下才能体现其最大的价值,面对当下的 Mesos、Kubernetes、Swarm、Rancher 等众多集群方案,如何做出正确的选择呢?

StuQ推出《从理论到生产环境实战:掌握Docker大规模部署和管理》,老司机带大家亲手架设并体验这些主流的容器集群框架,用最少的学习时间掌握第一手的容器集群知识。

课程大纲
1.课程简介和预备
  • 1.1 课程内容综述

  • 1.2 容器与容器的集群

  • 1.3 使用Vagrant工具

  • 1.4 说个正事:怎样下载墙外的镜像

2.Swarm容器集群解决方案
  • 2.1 Swarm 综述

  • 2.2 Swarmkit

  • 2.3 DockerNetwork

  • 2.4 DockerVolume

  • 2.5 集群和节点管理

  • 2.6 服务管理

  • 2.7 服务编排

  • 2.8 在 Swarm 中使用服务的技巧

  • 2.9 在 Swarm 中使用服务的技巧

  • 2.10 在实际项目中使用容器集群

3.Kubernetes容器集群解决方案
  • 3.1 Kubernetes框架概述

  • 3.2 构建Kubernetes集群

  • 3.3 通过Kubernetes集群部署服务

  • 3.4 Deployment和服务在线更新

  • 3.5 RC、Job和DeamonSet

  • 3.6 调度资源限制和服务资源配额

  • 3.7 Kubernetes集群实战

  • 3.8 Kubernetes中的节点和任务

  • 3.9 kubernetes暴露方式Ingress

  • 3.10 Volumn存储

  • 3.11 资源配额

4.Mesos容器集群解决方案
  • 4.1 Mesos 简介

  • 4.2 部署 Mesos

  • 4.3 Marathon 的部署和应用管理

  • 4.4 应用的依赖和编排

  • 4.5 Docker容器和UnifiedContainer

  • 4.6 使用MarathonLB

  • 4.7 使用DCOS集群

  • 4.8 Chronos服务框架

  • 4.9 部署DCOS

  • 4.10 使用DCOS

  • 4.11 管理DCOS应用仓库

5.Rancher容器集群解决方案
  • 5.1 RancherOS和Rancher集群概述

  • 5.2 使用RancherOS操作系统

  • 5.3 构建Rancher集群

  • 5.4 使用Rancher UI的使用

  • 5.5 使用Rancher Compose的使用

怎么学?
  • 录播课程(已更新完)

  • 每月1次直播答疑,从报名之日起享受6个月的答疑服务

咨询课程

点击阅读原文报名课程!

看Docker的三生三世,它会成长为下一个巨人吗?

点击阅读原文报名课程!

no comments
Share