在云的世界里,容器(Container)一直是一个很有意思的话题。
有人说,2013年诞生的以Docker为代表的容器,是继2001年虚拟化,2007年AWS云计算之后的第三波云浪潮。
持这种观点的人,最主要是看到容器的跨云平台的特性,以此来把容器从简单的安装工具,上升到入口级应用,从而直面用户交互,取代云成为新的操作系统级平台。
这种观点并非空穴来风,因为Docker的下载量,已经从2015年初的一亿,经过2015年11月突破十亿,2016年6月突破40亿,到如今2017年4月突破了120亿。
容器究竟是做啥的
关于容器,说复杂了也复杂,说简单了也简单。因为容器可以看作是轻量化的虚拟机,也可以看作是微服务的基础等等,但容器本身其实最关键的是跳出操作系统而独立运行。
这就好比容器是标准化的海运集装箱,OS就是货轮,集装箱的内容可以由用户自定义,可以通过标准化手段自由组装到各个不同的货轮上。在云环境中,OS就是不同的云计算平台。
或许这样表述,很多人还是不理解容器到底有哪些好处。其实在容器专家——Rancher Labs CEO梁胜博士看来,容器的好处主要有两点。
一是因为容器可以跨平台,从而让程序猿可以享受到研发生产环境一致性的便利,也就是DevOps。在没有容器之前,常常一个应用做好了在笔记本上可以运转起来,在数据中心就运转不起来,因为操作系统版本不同、库版本不对;或者有的时候生产环境里出现了问题,在笔记本的开发环境中复制不出来。有了容器之后,这些问题就大大减少了——这也是为什么容器有大量市场需求的原因。
其二,容器在虚拟机里面可以大幅度提升资源利用率。因为一旦把应用容器化,虚拟机资源就可以通过部署多个容器而得到充分利用,而不是每一个应用去申请一个虚拟机,造成资源的浪费。
有数据表明,企业对计算资源的利用率是非常低的,甚至不到10%。传统物理机的资源虽然浪费,但毕竟投入成本较大,企业采购多少台服务器,需要经过精确测算;反而是云上的虚拟机因为容易获取,因此在实际使用过程中,很容易造成过量申请和采购的情况,因而浪费的资源更多。
Docker公司CEO Ben Golub在今年4月份曾经说过,应用容器化,可以降低从50%到5倍的资源消耗。
容器那些事儿
无疑,容器的这两大杀手级应用,就足以让容器市场风光无限。无论是容器创业企业如Docker、Mesos、Rancher,还是IT巨头如谷歌的Kubernetes(k8s)、VMware、红帽,都把容器作为自身的战略级产品和服务。即便是公共云巨头如AWS、微软Azure、阿里云,也都支持Docker或Kubernetes。
举个例子,就在5月23日刚刚举办的云栖大会成都峰会上,阿里云宣布自己已经成为CNCF黄金会员,并且骄傲自己同时支持Docker和Kubernetes两大容器平台。
所谓CNCF,实际上是Cloud Native Computing Foundation的缩写,字面意思是云原生计算基金会,是谷歌发布Kubernetes1.0版本时发起的开源组织。这个组织里,不仅有阿里云,也有DaoCloud,还有IBM、Intel、思科、Docker、华为、红帽、VMware、Twitter以及Rancher等。虽然打着开源组织的名,其实干的还是容器的事儿。
另一家容器组织就要直白得多——Open Container Initiative(OCI),是2015年6月的Docker开发者大会上,由Docker和Linux基金会共同公布的开放容器项目,其创始成员与CNCF半数重合,包括IBM、Intel、思科、Docker、华为、红帽、VMware、Rancher等等。当然,由于Docker的独立第三方性,AWS、微软这两家公有云巨头也在其中。
在这些容器公司中,Rancher其实是一个大多数国内云计算从业者并不熟悉的名字,但这家企业却出现在CNCF和OCI两大容器组织中,甚至是创始成员。那么问题来了,这家公司到底是做啥的?
解密Rancher
Rancher Labs创立于2014年9月,定位在为企业客户提供容器企业级落地的解决方案上面。2016年4月,Rancher Labs在全球已经拥有4000多家企业客户,并且获得B轮2000万美元融资。
Rancher Labs的创始人梁胜博士,曾经是Sun Microsystems的核心主任工程师,随后创立了cloud.com和Teros,后均被Citrix并购。梁胜继而担任Citrix的云平台CTO,直到2014年9月创立Rancher Labs。
在梁胜博士看来,虽然容器市场前景广阔,但目前容器也有开源产业的通病,需要自己DIY。实际上,容器在生产环境部署运行仍然十分困难,因为容器工具和技术栈的数量繁多,来自于不同的供应商,而Rancher抓住的商业机会就是简化容器的部署。
据介绍,Rancher目前已经具备全栈化一键部署应用、多种编排调度工具、多租户、多种基础架构的能力,可替换IaaS云平台,无论是AWS、微软Azure、谷歌、阿里云还是OpenStack、VMware。这就如同一款浏览器可以运行在iOS、安卓、Windows、OS X等不同操作系统中一样,让用户得到一致性的用户体验。
五大应用场景
据了解,目前容器在国内的典型应用场景可以归纳为5大类:
1、混合云及复杂数据中心;
2、多环境、多资源池的DevOps流水线;
3、基于Rancher的轻量级PaaS;
4、IT综合资产管理平台;
5、一键部署容器化应用到任意资源池中的任意集群环境。
实际上,混合云管理是Rancher最大的应用场景。Rancher Labs大中华区总经理秦小康举了个例子,南方一家保险公司每个月都要做一次促销,因而在自己的私有数据中心之外,还租用了一个公有云。这家企业在促销之前把业务在公有云上部署好,以便促销时公有云满足客户访问激增的弹性需求,促销过后再把公有云关停,这时候通过容器来启动部署,可以达到秒级响应,大大缩短了原来VM几分钟到十几分钟的响应时间。根据笔者近期采访所知,这样的应用场景需求在国内非常典型和普遍,利用容器可以极大提升效率,降低费用。
第二大应用场景当然是DevOps开发部署流水线。Rancher的特点是不限制别人使用什么工具,可以是Github也可以是SVN,打包成Docker,然后可以部署在公有云、私有云、物理机、虚拟机里面,Rancher保证开发格式、运行格式和生产环境的格式完全一样。证券公司因为推出很多金融产品并且迅速迭代,所以就在生产环境里面跑Rancher,据说每天在Rancher上面跑的交易额达到40亿元人民币。
第三个应用场景是基于Docker构建轻量级的PaaS服务。在秦小康看来,传统的PaaS发展得不好,是因为太复杂了。PaaS给了一套标准,用户必须按照它的标准来开发程序,限制了开发人员。Rancher在北京有一个银行客户,希望构建一个基于容器的PaaS,不仅要管好各种各样的资源池,还要跟外面的公有云接起来。这样可以把运维部门、基础架构部门(数据中心部门)、开发测试部门,还有第三方云平台统一管理。
第四个应用场景是统一资产综合管理平台。比如一个客户在全国有6个数据中心,希望每个物理机、虚拟机的状态都要找出来,需要了解负载均衡设备、防火墙设备、数据库状态部署在哪里,通过容器管理平台,实现了统一呈现和监控。
第五个应用场景是复杂IT环境的一键部署。其中一个典型案例是一家电信设备供应商给全球的运营商做培训。光讲课还不行,要有实验环境——这边讲课,那边就把环境搭起来。学员随便练手,练坏了就一键部署,通过Rancher大约10分钟搞定,非常方便。但同样工作如果手工的话,一个星期能部署完成都算是高手了。
应该说,通过Rancher Labs的分享,笔者对容器的理解进一步加深。据悉,Rancher Labs如今在国内已经开始投入更多资源,去覆盖国内市场。比如在合作伙伴方面,逐渐从代理到自营,同时加强与ISV和硬件厂商的合作,加大市场覆盖。