容器技术并非一直这么光满四射,它的成名主要归功于Docker,Docker的兴起让云服务体系再次松动,这位搅局者成功的引起关注成为时下的热门技术。那么它究竟成就了谁?威胁了谁?又将怎样在技术浪淘中完善自己,证明自己?
过去的数月间,Docker成为了疾行中云计算世界的新宠。它的出现让云服务体系中略显稳固的格局重新松动,并且掀起了新一波创业狂潮。对于这位不期而至的搅局者,我们需要了解更多。
从2014年的下半年开始,可能没有谁会比Docker更加容易抢占科技媒体的头条位置了。虽然其技术本身仍然处在从测试环境向生产环境不断磨合的进程之中,但是它所释放出的强大吸引力,以及在短期内即获得重量级厂商集体追捧的态势,瞬间在云计算世界中掀起了新一轮狂热。作为开源项目中耀眼的新星,Docker为开发者提供了一个开源的应用容器引擎,让他们可以将应用,以及应用相关的组件打包到一个可移植的容器中,然后发布到任何流行的Linux机器之上。
Docker最为关键的价值体现在哪里?对于开发者和用户而言,Docker用开源的方式进一步降低了应用运行的颗粒度。具体来说,原本在云端需要以虚拟机为单位运行的应用,现在可以以更为经济的方式,运行在具备更细颗粒度的容器之上。而这些容器还具备了跨越不同计算平台部署和运行的能力,轻松化解了应用可能会被底层云平台锁定的疑虑。如果你熟悉云计算技术近年来发展的每一次脉动,那么就不难把Docker理解为颠覆传统IT的又一股新生力量。不同IT系统中持续攀升的虚拟化比例,支撑起Docker大展拳脚的舞台,而Docker的盛行也开始悄悄地对操作系统层产生侵蚀。
人们总是喜欢用“生逢其时”这样的词汇来描绘Docker的闪亮登场。其实,在2013年3月首个版本发布之时,Docker远没有今天这般光芒四射。如今,提到容器技术,人们总是首先想到Docker。但事实上,容器的历史是悠久且多元化的。容器最早的踪迹可以追溯到1979年Unix版本7的chroot指令。再后来,它又以FreeBSD Jail、AIX工作负载分区,以及Solaris Zones等形式出现,并且被广泛使用。
进入云计算时代,容器技术也早早“随风潜入夜”。微软和谷歌的PaaS平台(Microsoft Azure和Google App Engine)、VMware所开发的开源PaaS平台Cloud Foundry,以及国内的PaaS先驱新浪SAE(Sina App Engine)都采用了比虚拟机更小的颗粒度来运行应用。也就是说,在这些PaaS平台之上,应用已经运行在类似容器的载体之上。最受欢迎但却少有人知的容器技术,恐怕就算是谷歌的Imctfy了。它每周要运行20亿个容器,在这些容器上运行着谷歌Docs、Gmail等著名应用。Cloud Foundry开源框架中所采用的类Docker的容器技术名为Warden(典狱长),它同样可以被用来创建和管理一些小于虚拟机的隔离环境。
不过,这些先期出现的容器技术大部分都长期停留在企业自用阶段,其便利性和开放性未能广泛辐射到广大的开发者人群。关键性的突破最终还是由Linux世界发起了。基于LXC(Linux Container,Linux容器),PaaS厂商dotCloud开源了采用Go语言开发的高级容器引擎Docker,并且围绕其快速组建起开源的生态环境,真正吹响了云端应用交付与运营变革的号角。
成就了谁?威胁了谁?
作为继OpenStack之后最耀眼的开源明星,Docker与生俱来的颠覆气质为云服务的交付带来了新的可能。由于比虚拟机更加灵巧和高效,Docker能够让云端应用的部署更具灵活性和流动性。而这样的特性也自然而然地对IaaS(基础设施即服务)、PaaS(平台即服务)和SaaS(软件即服务)这一经典的云端服务模型产生了不容忽视的影响。
最近一段时间,越来越多的从业者就Docker对IaaS和PaaS领域的影响展开讨论。其中,Docker正在或即将为PaaS世界带来的变化尤为引人关注。曾在微软和VMware服务多年的喻勇是Cloud Foundry中文社区的主要建设者和推动者,也是Docker中文社区的早期成员。作为一位见证了PaaS技术变迁的技术从业者,喻勇表示,Docker的出现有望催生新的服务形态,同时让PaaS变得更专注,推动云计算从资源获取方式到应用服务平台的跨越。而这样的一次技术裂变也让喻勇发现了宝贵的创业机会。2015年3月,他正式成为一名Docker领域的创业者。
“以谷歌GAE为代表的PaaS 1.0时代已经采用了比虚拟化更加细小的应用运行颗粒度,但它存在的致命问题是对应用程序的侵入性。也就是说要求开发者对程序代码进行限制;Cloud Foundry和OpenShift是PaaS 2.0时代的代表性平台,它们的进步体现在基本上消除了应用程序的侵入性,但是对DevOps本身环境变量的传递和部署仍有要求。也就是说,云端应用运行的‘最后一公里’仍未打通。”喻勇说。
喻勇表示,在理想的PaaS 3.0模型中,预计要解决的三个问题包括:代码底层的运行时与运行环境的提供、应用实例运行的颗粒度、应用的调度与运维。“以Docker为代表的容器技术的出现,让前两个问题(PaaS平台长期未能解决的两个问题)迎刃而解,PaaS服务商可以将开发精力集中在应用的调度与运维层面,提供更加精细化、灵活的平台级服务。在业务的驱动下,互联网时代的软件追求快速开发、快速迭代、快速部署。未来软件的交付件是容器,这将推动云平台原生应用的大踏步发展。”他说。
Docker对正在快速成熟的IaaS领域会带来怎样的影响?OpenStack创业企业UnitedStack联合创始人兼CEO程辉表示,Docker的出现对IaaS层服务能力是一种很好的补充,同时它也会进一步地压榨IaaS资源,让IaaS层计算资源得以更充分地利用。总而言之,Docker与IaaS是补充而非替代的关系。“Docker与虚拟主机有着截然不同的侧重点。虚拟主机侧重完美的隔离、完整的物理机性能模拟,而Docker最突出的技术属性在于轻量级和易迁移的能力。”程辉说。
创业之前,程辉曾经在新浪参与了PaaS平台SAE的开发。他坦言,从某种程度上说,Docker的出现或许会改变一些PaaS平台的建设和实现方式。“在PaaS平台之上,即共享又隔离的问题一直是存在的。比方说,一个Apache Web Server上运行着很多用户的应用,隔离通常是针对Apache Web Server层展开的。Docker出现之后,隔离操作可以在主机操作系统和Apache Web Server之间进行。这也意味着,PaaS变得更加容易实现了。”程辉说。
“Docker出现之后,IaaS的计算密度有望进一步提升,同时它也提供了一种新的PaaS实现方法。目前看来,Docker在IaaS层面的影响较小,对PaaS的影响会更大一些。”Docker创业企业云栈科技(NiceScale)的联合创始人兼CEO王利俊说。在创立这家公司前,王利俊曾是新浪云计算负责人,全程见证了新浪SAE平台的成长。在王利俊看来,与FreeBSD Jail、Solaris Zones等原有容器技术相比,Docker最具革命性的价值体现在它的打包和镜像技术。它们真正释放了开发者的想象力,让软件的开发、测试过程变得更加顺畅,也让用镜像交付软件成为可能。
Docker实际对PaaS创业者产生了哪些影响?王利俊的创业公司已经用行动做出了诠释。2014年10月,王利俊通过网络发布了被广泛关注的文章《PaaS,不是银弹》,以此宣布对创业方向做出调整。即从简单入手,打造灵活度更强的PaaS服务,同时进入Docker的开源生态体系。按照规划,云栈科技基于Docker的首个产品cSphere 1.0版本即将于2015年上半年正式发布。
“新的技术总是会伴随着这样或那样的不确定性,但这也是技术创新的魅力所在。Docker将为创业群体制造出新的机会。从国内市场的情况看,基于Docker的PaaS服务、Docker的管理与集成,以及Docker HUB与Docker镜像可能成为三个主要的创业方向。”王利俊说。
CaaS模式仍在孕育
如果把我们的视线和想象都拉得足够长,在相对遥远的未来,在以Docker为代表的容器技术快速壮大的前提之下,云计算的基础架构很可能会因为Docker的出现而改变。对应用的支持单元会由虚拟机变为容器,进而带动网络和存储的转型。这样的改变或许会动摇虚拟化厂商的业务根基,虽然这样的情况在相对遥远的未来才有可能发生。
而在当前的现实环境中,容器技术有望以先通过一种崭新的服务形态被企业用户所使用,这就是CaaS(Container as a Service,容器即服务)。在CaaS的服务模型中,容器可以像IaaS一样按需自助获取服务,同时具备动态调度、灵活迁移的能力。“从IaaS到CaaS是一个趋势,其中服务是不变的核心,应用是永恒的对象。这样的演变面临着来自商业模式、计费等方面的诸多挑战。这种新的服务形态,需要由新的业务需求来支配。”喻勇说。
“为了便于理解,我们可以把CaaS看作是介于IaaS和PaaS中间的一层,这样的服务模式在企业内部或者私有云环境会更早地开始尝试。具体的发展我们正在密切地观察。”王利俊说。新服务形态孕育的过程中也会创造新的需求。程辉表示,基于Docker的云化服务有望改变企业用户对虚拟机的使用习惯。“CaaS服务可以屏蔽IaaS层的计算资源的差异化,天然具备多云管理和跨云迁移的能力,帮助企业把应用与不同的IaaS进行适配,更加充分地协调与调用跨平台的IaaS资源。这是一个崭新的客户需求。”程辉说。
虽然CaaS的服务形态尚未确立,与IaaS、PaaS的边界也未清晰,但是Docker已经快速地融入到主流的IaaS或PaaS云服务平台之中了。截至目前,微软、谷歌、亚马逊AWS、IBM等国际化云服务商都在其云服务中加入了对Docker的支持。可以说,Docker已经成为了主流PaaS解决方案中的标准配置或是核心组件。
国内方面,UnitedStack于2014年9月在其UOS云服务平台上提供了对CoreOS的支持,这也使其成为国内首家与Docker相关技术接轨的云服务公司。2014年11月,阿里云宣布,用户可以使用阿里云ECS部署Docker容器应用。用户可以在阿里云ECS上把应用打包成Docker镜像、运行Docker容器,或者从阿里云的Docker镜像库中快速下载Docker官方镜像,也可以部署自己的私有镜像库。另一公有云服务商青云QingCloud也于早些时候宣布,将会积极支持Docker、Rocket等容器技术。
伴随着越来越多的云服务宣布对Docker提供支持,Docker正在成为一种云服务商向客户提供附加价值的关键方式,同时也催生出大量的相关工具或基础设施。这进一步带动了Docker生态圈的繁荣。目前,谷歌已经构建了用于容器管理的Kubernetes,亚马逊在创建Amazon EC2容器服务时也加入了一个Docker的调度与维护层。
现实中的自我证明
无论我们对于Docker未来的想象有多美好,Docker依然先要跨过进入现实企业环境的关口。结合自己参与Docker中文社区运营的体会,喻勇表示,现阶段Docker在其目标客户群体中的认知度仍有待提升,而客户应用Docker的疑虑主要来自网络支持、安全性、迁移成本等方面。同时中国企业客户群体的IT应用水平差异性较大,很多普通的企业用户连虚拟化还没有完成。
喻勇与曾任EMC总架构师的陈齐彦联合创立的DaoCloud现已启动运营,Docker相关产品的研发工作也随即展开。对于Docker有可能在软件开发层面引发的变革,他有一个乐观的预测:“现在的软件发布通常是‘源代码+配置文件’,而未来则更可能是直接发布软件的Docker版本,或者容器版本。这样的质变有可能在未来的12~18个月内变成现实。”喻勇说。
他同时表示,即便变革不会在这一期限内发生,在面向传统企业和垂直领域互联网企业的开发流程容器化方面,技术服务的创新同样有非常大的市场空间。除此之外,大数据应用的深度推进,以及分布式计算的普及,也会为容器技术持续营造出新的业务机会。
王利俊的开发团队开发的cSphere,近期正保持着相当频密的版本发布节奏。按照规划,cSphere每个月都会有一个大的版本发布,直至在2015年上半年发布cSphere 1.0版本。而在此基础上,云栈科技的研发方向还包括基于Docker的网络、存储、安全功能,以及Docker管理工具等,并且计划推出SaaS化的Docker管理服务,以及跨云的CaaS服务。
“从我们目前接触用户的情况看,中国用户对Docker的关注点集中在技术和流程两方面。网络的动态扩展性、安全性是用户最关心的技术话题。而在流程方面,很多客户开始关注企业现有的开发流程能否适应Docker带来的变化。”王利俊说。他表示,目前容器技术落地企业环境所面临的瓶颈主要集中在网络和与原有IT流程对接方面,同时应用的开发和运维流程也与传统流程有所区别。尤其是运维,原有的工具会部分失效。在这一过程中,容器技术与企业原有IT规范的碰撞与博弈,是用户所必须经历的。
王利俊同样相信,容器最终会成为运行软件的标准环境,演变为另一种形式的Linux。谈到Docker现阶段在企业环境中的实际应用场景,王利俊表示,具体的场景包括虚拟机、应用快速部署、微服务、多租户、软件交付、开发/测试/生产的环境一致化,以及混合云环境下的应用迁移等。“Docker正在快速地进入企业的生产环境。在这样的潮流之下,Docker的创业者们将会找到更多的业务创新机会。比方说为企业做应用的集成与适配,去消除企业将工作负载迁移到容器的障碍;或者提供集成服务、镜像打包等咨询服务等。”王利俊说。
写在最后:暗流中涌起新博弈
技术上的创新之外,Docker的瞬间崛起也快速在商业层面搅动起一股新的暗流。曾经为Docker的推广做出巨大贡献的Linux服务器操作系统供应商CoreOS在2014年12月宣布,启动研发自己的开源容器运行时Rocket,Rocket的首个版本已经提交到Github。
从全力支持Docker,到开发自己的容器引擎,开源容器世界的这一次小小裂变,让人不禁联想起开源云平台OpenStack横空出世后,该项目早期的重要贡献者思杰(Citrix)转而支持自己的收购资产、同类的开源项目CloudStack。当时,思杰将转向支持CloudStack的原因归因于OpenStack的不成熟。而CoreOS则把开发Rocket的目的归结为Docker在安全性等方面的缺陷。从2012年到2014年,开源项目之间的制衡大戏就这样又一次重演。
技术的创新从来都不是发生在真空中的,而多元化的技术选择也是新技术走向成熟的重要标志。无论是Docker、Rocket,还是其他的容器技术,当下最需要解决的问题都与解决用户需求、将技术创新转化为客户价值最为相关。“真正赢得用户的心”,两年前就已崛起的OpenStack目前仍然行进在这条征途之上,Docker脚下的道路也不会是一片坦途。
转载自:网络世界
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。