上周,雷锋网曾报道微软宣布收购软件容器提供商Deis。大公司的介入也再一次让容器领域走入公众的视野。自2013年刚刚诞生到今年,容器Docker镜像的下载量超20亿,容器行业发展可谓如火如荼。
本次雷锋网硬创公开课,我们邀请到了企业级私有容器服务平台提供商Rancher Labs大中华区总经理George Qin秦小康,讲解Deis是一家怎么样的公司,微软为何会收购它,并谈谈容器技术在传统企业IT环境的落地实践,及行业落地需求本身对容器技术发展的要求方面。
George Qin秦小康,Rancher Labs大中华区总经理,在开源和云计算领域拥有十多年的丰富经验。在此之前,曾负责Citrix云平台事业部在大中华地区的业务,Oracle Linux/VM在大中华区业务发展,以及在RedHat 负责JBoss、KVM业务在中国地区的产品团队。
以下是雷锋网整理的公开课主要内容:
首先是为什么Deis的消息会引起业内人士的关注?Deis是一家开源软件公司,主要业务是让容器集群管理系统kubernetes容易使用。它与容器相关,也是今天的主题。
在2015年的4月Engine Yard就收购了Deis,如今又将它转手卖给了微软。根据外界的分析, 这次收购最主要的意义是,让微软在云计算的领域追赶亚马逊的步伐加快了,对其云计算有莫大的帮助。
我们要看到的是它的背后有三个关键词,一是云计算,二是容器,三是Kubernetes。
Kubernetes是容器的编排调试技术,由Google在2014年正式发布。现在容器编排工具的竞争有两个主要玩家,一个是Docker,一个是Google。Docker公司的CTO曾放言,准备把Kubernetes杀掉。
一个Deis公司就能让微软的云计算带来这么大的收益。其实在关注这场收购之前,还要了解容器技术对于云计算行业带来的改变。
首先要了解容器和云计算的趋势。从下面的图中可以看出,在这一波浪潮里,传统的IT技术商都要靠边站,增长受到了很大挑战,唯有AWS的增长达到近50%。微软和Google等公司也都发布了公有容器服务。
在容器领域里面,最抢眼的三个玩家是:Docker,Mesosphere(两年前比较有名),以及CoreOS。两年前,这几个公司在容器里都很流行。
反观Docker的增长,则可以用恐怖来形容。它在2015年初的下载量是1亿次,到了2015年底就是10亿次了,而去年中就达到40亿次。
Docker还做过一个调查,问用户是否想把自己的产品当作云战略的一部分,结果80%的人已经决定这么做了。而41%的人表示,要把应用在各种环境中迁移,不想公有云上all in。还有60%的人想用Docker把应用迁到云上。而与最近的新闻最有关系的,是那41%的需求。
Kubernetes从2016年的下半年开始,其关注也有很大增长。这可以解释为什么Deis会被业界关注。
容器行业有哪些主要玩家,可以从下图中看出来。
别看这张图这么复杂,但在编排调度这里,从2015年到现在就是刚才提到的三家的竞争。总的来说,看着这么热门,在核心领域贡献的不多。不过到了去年,Mesos就不见了,不再被认为是主流的对手。
容器市场经过两年多的标准化,也出现了两大阵营:OCI和CNCF。前者是Docker主导,也有传统大的IT厂商参与,它们是2015年6月成立,主要是把Docker引擎标准化。后者也想有自己的生态,上周还召开了全球大会。两边的成员重复很多,这也说明容器的火热,所有人都不愿意在浪潮中把自己落下。
Docker作为容器引擎的事实标准,很多人将它与容器对等。看下图,左边是过去的IT工作模式,要么在一个物理机上,要么在虚拟机上,先装操作系统,比如选择Linux,再上面选择中间件与数据库,再到上面做应用。
而Docker则不管什么,都打包成一个格式,多个Docker放在一个操作系统里。打包好了成为镜像,供开发者去复制分发。
之所以如此重要,一是Docker打包方式快速高效。
二是有更高的资源利用率。与VM作对比,如果已经有了一个应用,在有另外一个应用时就需要跑另一个VM。这里的问题是,无论应用大小,VM的规格是固定的。容器就不一样,同样的情形,两个应用可以放在同一个VM里,其中一个不运行时,另一个可以充分利用资源。
不过这还不是最主要的,容器的流行还有第三点,即打包方式可以让开发测试环境和生产环境,保持运行环境的一致性。这对应用本身不会发生影响,这一点十分重要。
在研发环境和生产环境中,没有一个环境部署,只要IT环境支持Docker,里面打包的应用就不需要作修改了。有一个研发测试理论称,测试里出现的80%的bug是由运行环境导致的,这也被一些大企业证明了。高盛用Docker的原因,就主要是为了这一点。
无论容器有多少应用,第三点都是最根本的好处,对研发人员和运维及测试,都带来了好处,提高了效率。
随着打包功能的拓展,又产生了一个新想法,即下一代云计算技术:Caas/容器云。在容器云上把应用在不同的架构间做迁移,或者同时在不同的架构上做布署,包括AWS和自己的数据中心等。
新一代的云平台,把所有的云都当作一种资源来使用,在其上跑应用,用Docker打包。只要资源都支持容器,应用可以布署在任何地方。这特别适合业务爆炸式增长的公司,或想专注于业务的公司。不过目前好用的容器云还没做出来,Google和微软等公司也都在发力。
那容器带来了什么样的变革,以至这么多大公司都在关注?
这可以对比浏览器对桌面操作系统的影响。十年前,上网用Windows还是Linux还是很大的差异,而主要的改变来自浏览器,现在已经没多少人在乎操作系统了。以此类比,容器云可以让IaaS被随意切换,让AWS或华为云或阿里云都没有区别,让开发者主要关注云的应用。这就是容器带来了可能性。
不过现在的情况是,很多公司一部分业务在公有云上,一部分在企业的私有环境中。这时就更复杂了,怎么在企业生产环境中落地Docker和容器云呢?
根据一项调查,其中最主要的三个困难在于:存储,网络与安全。这也是IT领域的老问题。可以看到,这里没有出现编排调度的问题,在企业眼中这不是一个重要问题。但结果却是,编排调度的公司在国内有20多家创业公司之多。
要满足企业的需求,要解决很多问题。企业要的是这样一个容器云:要解决资源、容器操作系统,存储,网络,分布式数据库,访问控制,监控,编排调度,应用市场等各种模块。这需要一个全栈化的技术。
容器还有进阶,即更进一步需要Cloud Native,即原生云。它有三个特点:一是容器化,二是可动态编排调度,三是面向微服务。
总结来说,我们的观察是,容器技术主要在美国,欧洲与中国(三年前日本还处于领先地位)。另外,开发人员及在生产环境中使用容器技术仍旧十分困难。
一是将远期愿景分解,让它变得实用。细分为,一是应用从桌面到服务器端的迁移,二是从传统数据中心到公有云的迁移,三是开发测试环境到生产环境的迁移。
这就要让应用在公有云、私有云环境中都没问题。而相应的解决方案,要把存储、网络、安全、DNS、负载均衡(再加防火墙)等问题解决。
第二,容器落地要从简单场景到复杂环境转化。简单场景往往只有一个简单的三层架构,负载均衡,加外围应用和数据库。但企业里会有监控、日志,数据库等问题,部分公司会因此往前延伸一步,不过这三个也有些简易的解决方案。
稍微复杂的场景是如下图:
有自己的IaaS,有不同的资源池;容器网络也不一样;基础服务等也有服务发现,健康检测,负载均衡等;存储上要支持NFS、CEPH等;还有应用服务商店和API等等。
但这其实也只是一个比较简单的场景,还有更复杂的。可以说,容器在企业的应用,从简单场景到复杂场景,有很多问题要解决。
三是,容器要从数据中心领域向移动领域迁移。
这是因为如今手机的使用量大于PC,其上的应用也会更多,而容器正好是为应用而生的。当前的容器编排调度工具基本没有考虑移动设备,只为数据中心设计。好消息是,Docker已经运行在ARM上。
另外,当把一个企业IT作综合管理考虑时,容器平台还要与诸多周边系统对接。企业有很多东西没有容器化,比如防火墙,数据库,分布式存储等,这些都需要兼容。这就需要一个好的框架。
结合上面说到的问题,总体来看,我们认为容器技术在未来会有下面的几个主要趋势。
一是互联网客户对容器的使用已经很广泛,而传统的大中型企业在加快容器的使用,这也促进Docker等产品的成熟,只是目前成熟度还不够。
第二是随着Kubernetes和Docker Swarm的进步,以及各大公有云公司如微软Azure、Google云和AWS提供对这两者的支持,开发和定制Kubernetes分发版的提供商要找到真正的增值。
三是简单易用的公有容器服务会变得流行。