梁胜 | 如何让Docker容器在企业中投产(下)

编者注:

本文是对上海容器大会有容云专场梁胜博士直播视频的文字回播,力求高度还原当天演讲内容未加个人观点,如在细节部分略有出入欢迎留言指正。(文章较长,分为上、下两个部分,视频原版观看地址见文末)

 

 

前情提要:

 

在上篇中梁博士讲了容器技术短时间内爆发的根本原因,容器在企业中投产的必要性、必然性以及容器投产四种场景中的前两种:新一代的私有云、混合云环境;企业应用商店和一键部署;本篇将介绍最后两种场景:多环境、多资源池的DevOps流水线,构建轻量级PaaS服务,以及微服务、容器云等方面的内容,阅读前文请点击:梁胜 | 如何让Docker容器在企业中投产(上)

我们要讲的第三个场景是DevOps流水线建立起来之后出现的多环境多资源池问题。最近十年以来,国内外企业IT都发展得很快。以前企业跟互联网公司最大的差别是企业不开发软件而互联网公司开发软件,企业找软件应用厂商买应用,买回来之后放在自己的数据中心运行,所以在此模式下的企业可以购置服务器,可以买存储阵列,可以买现成的软件包比如用友这些都没问题。

 

之前的传统企业很少有大量研发人员,而现在完全变了,银行变成网上银行、手机银行,每一个企业都必须在内部开始做研发,做了研发之后须购买类似DevOps的流水线,而DevOps的技术其实并不完整。我们知道,现在Docker的使用非常多,DevOps流水线前半部分的路径有比较明显的解决方案,现在从研发人员角度来讲,你把代码放在Github、Gitlab上,经过Jenkins这样的工具做CI、CD,经过打包最后都变成了Docker镜像。那么问题来了,如何把这些镜像大规模的部署到多个环境,多个资源池,这里面就是我早先提到的企业容器云,有一个非常重要的位置。在企业里面,第一,一定是一个多资源池的效果,我之前讲混合云、私有云的模式,就是适合在这个地方。

 

另外一个就是多环境,环境什么意思,环境就是给你部署和运行你的应用软件所提供的资源池,一个基础设施的多集群。你把应用打包好最先进行的是测试,测试完之后是性能测试,在之后是预生产环境的部署和投放,然后才是在生产环境投放,最后再升级。所以在这种多环境多资源池情况下,你必须反复对你的应用部署和升级,这时候容器技术在企业环境中就体现了非常大的价值。这是一个非常简单的实例,但是我们在美国,欧洲,中国乃至全世界任何地方,容器在企业中投产落地用到最多的就是这个场景。Rancher是一个容器管理平台,很多用户第一部使用Rancher解决的都是这个问题。可以说现在容器投产中首当的就是这个场景。

第四个给大家分享的是构建轻量级PaaS服务的场景,这确实也是一个很重要的方向。因为在传统IaaS、PaaS方面,大家对这些平台的认知比较明显,也有很多平台做得比较成功。但是容器对传统云计算的定位有一定冲击,所以这里创造了一个构建轻量级PaaS服务的机会。在我看来,轻量级PaaS服务就是企业级容器云加上DevOps流水线的管理功能。这二者加起来跟传统的PaaS的功能有很大一部分重叠,轻量级PaaS并不是只在Paas层面,往下延伸可至IaaS层面。因为容器跟虚拟机并没有很多共同的地方,所以传统PaaS里面很多主要功能跟传统IaaS里面一些跟容器有关的功能结合起来,变成一个基于容器的PaaS服务。这是一个非常大的成长方向,我们也可以看到,在业界很多原来传统做PaaS的厂商正在往这个方向转型。

 

我们发现,无论是厂商也好,或者是企业用户,在企业内部要将容器投产与给研发人使用不太一样的是,投产你需要连接一个项目,这很不容易找到。有时候找不到项目,你就找不到一个落脚点,所以我们常常会发现PaaS成为了容器在企业落地的一个落脚点。PaaS跟IaaS出来已经将近10年,概念也一直在被组织。慢慢的很多企业也逐渐形成了对PaaS的认知,很多时候也创造了对PaaS的希望,但是传统PaaS不能真正解决研发团队和运维团队在企业中广泛推进出现的问题,所以基于容器的轻量级PaaS出现之后实现了快速落地。研发和运维团队可以很快把这个技术用好,应用很快的部署好。

 

不止是研发人员,还有很多容器厂商,包括很多大公司大企业里面的IT运维人员,这其实是一个很好的方向。从商业角度来讲,如果真正能通过容器吧应用封装成轻量级PaaS,这非常有前途。我们也看到业界有很多大公司朝着这个方向做,其中最明显的就是红帽。我们非常敬仰这个公司,它也是PaaS界和IaaS界的先驱,IaaS的OpenStack, PaaS的OpenShift都做得很好,它新一代的OpenShift其实就是基于Kubernetes更加轻量级的PaaS。所以我认为这是一个非常有前途的方向。

另外我也想讲下微服务,我个人做微服务做了很多年,在企业中推广容器的时候发现微服务更像一把双刃剑,有时候有人很喜欢,它也可以真正改变一些应用。把企业成熟的应用改成微服务架构是件很容器的事情,就如我之前所说,容器用来部署Remedy这肯定不是微服务化的应用。所以这里我特别提出来讲一下的是,容器在企业落地并不意味着要先把应用做成微服务,微服务是另外一个大方向,我不敢说100%的应用都会被做成微服务,可能在将来很多复杂的应用、需要敏捷开发的应用会被做成微服务化,但是不是说先把应用做成微服务化再上容器,而是先把容器在企业落地之后再把应用转换成微服务化会更方便。我早年也吃了些苦头,跑到企业大讲微服务,反而被看成是非常先进的东西,你这是在天上飘,跟落地差得非常远。

之前我们讲的内容出现了很多企业容器云这个东西,这是个非常重要的概念,现在我们来讲讲它。

 

在我们看来企业容器云主要解决三个最大的核心问题。第一,我多次讲到的整合资源,整合包括计算、网络、存储的资源,不管你是来自公有云,私有云,虚拟机还是和物理机的资源,都将它整合起来变成成不成取之不尽用之不竭的资源池,把计算真正变成水,变成电,这其实是一个非常大的价值,也是构建容器云需要解决的第一个问题。

 

在第一个问题解决好以后,资源整合好后如何在资源上进行调度和编排,怎么把这些微服务调度编排好,如何将这些通过微服务建立起来的应用管理好,这问题需要解决。这个领域也是容器界最热门的话题,今天可能很多人都要讲这个东西。包括Swarm、K8S、Mesos都是这个领域的技术。这里面有非常大的演进,各个技术各有千秋,有些技术可能非常强大,而另外一些应用可能简单易用,各有各的好,这是当前容器界的技术热点。但是其实企业要将容器落地,光有这两点是不够的,还有一个第三点。可能在对于互联网公司前两点已经够了,但是在传统企业,还需要跟企业人员、组织、系统和流程接轨。我们之前在云上做也有同样的需求。以前类似与EMC这样的厂商会实现一些控制、日志,根据你是谁,做什么,流程,审批这些事情都要做,所以这三点在传统企业中容器的落地可以说是缺一不可,我们也是差不多朝着这个方向去做。在业界,不仅仅是Rancher,还有很多其他软件也做着类似的东西。

 

我刚讲到的一二三,是从整个基础设施开始,比较重要的比如说Machine Drivers、Virtual、OpenStack等等这些各种不同的基础设施服务,你把下面弄好了上面实现编排调度的更可能就是根据企业的需要去实现,无论是kubernetes、Swarm、还是mesos,各种不同的编排和调度系统。现在我们有一点看到看到,就像是早年的时候我有一种印象,这些工具是否会一家独大,比如说如果很强大是否整个世界都变成Kubernetes,到现在这个趋势并不是很明显,到现在反而是规模极端,比如我之前提到的高盛,他们把90%计算放到容器上,他同时在用两种系统,一个是Swarm,另外一个是Kubernetes,Swarm比较简单,平时CICD直接在Swarm上就可以,遇到比较复杂的,规模比较大要求比较高的系统可能就用Kubernetes。这从另外一方面来看,其实这也是容器从传统PaaS方法学来的一些教训。

 

以前做PaaS,没有很多人用的一个原因就是因为很多时候CIO或者CTO决定全公司用什么框架,从上往下会遇到一些阻力。现在的风格是个人有个人的框架,个人有个人的语言。以前可能说我们公司做Java,但是现在这种情况很少了,很多公司不同项目之间用的语言和工具不一样,这反而是好事,应为不同项目之间要求不一样,有些是开源项目,有些是自己内部核心的项目,有些是C语言,有些是Java语言,有些是Golang语言,都是不一样的。所以现在一个大的趋势,也是容器开始来帮助推进的一个趋势,上面的框架不管调度编排还是程序设计语言,都会慢慢被弱化,所以从角度来讲我个人觉得也不排除将来除了当前这几种主流工具还有新的编排调度工具出现。

 

另外一个就是企业IT系统调度接口。我们做下来发现最受欢迎最需要的功能就是基于容器的一键部署。谁来部署软件,软件如何升级降级,谁来批准,怎么配置,谁来决定这些配置,围绕这些问题作了很多事情,但归根结底容器是用来部署应用的,所以最终为企业提供的接口会跟应用层接轨,所以从我们产品的角度来讲,Rancher是一个商业公司,尽管我们做开源,但我们并不是开发一个编排调度的系统,我们的目标是把所有有用的资源整合起来,变成能够使容器在企业落地的一个平台。所以很自然的就要研究解决这些问题。

 

我们是一家美国硅谷的公司,我们去年开始来到中国,我们跟很多技术型的厂商都有合作关系,Rancher是一个开源的平台技术,我们远在硅谷,很难接触到中国的很多用户,所以我们借助社区和合作伙伴的力量。

 

长远看来,无论是企业容器云也好,容器云服务也好,业务部署也好, Kubernetes, Mesos这些东西发展下去会怎样呢,会整合云计算。我们可以看看下面内容做一个借鉴。

 

90年代的桌面系统,微软一家独大,当时我们看到没有谁来抢占市场,后来虽然有Linux,但用Windows的用户还是占大多数。但是浏览器出来之后,一开始大家都知道浏览器运行在Windows上,刚出来Windows95 、Windows2000 、WindowsXP等,但是过了5年10年之后,上面的应用标准化了,应用包装也标准化了,变成了Java包,应用体验都一样了,桌面变得可替换。现在微软还是最普遍的桌面,在研发人员来说,苹果也是不少,但是广大用户来说微软还是第一,但是它现在的影响远远不如20年前,因为浏览器的体验在任何桌面都能实现而且非常类似,最终形成了桌面可替换的情况。其实这对我们用户来说是个非常好的体验。

 

我是用这个打了一个比方,现在我们来看看云计算的情况,云计算出现之后与这有些类似,国内外的几家企业他们都做得很好。这情况短期之内不会有太大的变化,但是将来容器在企业做好的话,基础设施变成可替换也是可能发生的事情。

 

现在的云计算技术已经比较成熟了,前几年OpenStack很难做,但是也在也有很多人搭了起来而且做得很好,现在差就差在对应用体验和应用的支持,但是有了容器云以后可以很好的对应用支持,一键部署一键升级这些都做得很好,将来这是一个不错的趋势,这对我们的云计算产业影响是很大的。

 

最后我们再讲讲企业云,包括下面的资源池,比如OpenStack、阿里云、亚马逊都是一个很大的东西。就是我昨天刚看到的一个在武汉的初创公司,我是在一个微信群上看到的。他们做了一个像电子锅一样的服务器,然后企业可以将这个服务器放在一个单独池里面,然后就可以部署企业应用,就像一个小的应用商店一样,一些小的应用比如CAR一样的,移动服务这样的,据说卖得还不错,有一万多客户,也做了挺多中小企业。为什么我会在微信群看到呢,他是一个基于容器的服务,他用Rancher在管。所以从这个角度我看到它升值比高盛90%计算上容器的意义更大。因为在高盛里面有很多架构师,他肯定会研究最新的技术,但是这样一个初创公司,资源极其贫乏,但是它想做一件事他一定要把这件事做好,它的网站从头到尾都没提容器,但是它把容器用起来,通过容器对应用部署的这些优势,容器好的地方他们就采用,最后把产品做了起来,所以你会发现前几年看做云计算看他们做得很累,因为云计算是一个大东西,就像把一个大象推进冰箱一样,你需要一个吊车来吊,框架拆掉把它放到企业里面去,非常痛苦。

 

大家知道硅谷创业很多,现在要融资资金非常紧张,以前讲的是独角兽似的方式,现在不这样讲了。就如上面讲的那家公司的产品,他就是一个容器,很小但是进了一万多的企业。对小企业来讲这就是他们的基础设施,所以说容器就像是一个盒子,像蒸饭锅一样的盒子,但是我觉得从上面例子来看容器在企业中落地途径是非常多的,前途也是非常的大。今天分享的就这么多了,谢谢大家。

 

PPT下载地址:(需发送至邮箱请在公众号后台回复“PPT”)

http://pan.baidu.com/s/1gfjnWHX

视频观看地址:(可在公众号后台回复“容器大会”直接观看)

 

分享:梁胜 | 如何让Docker容器在企业中投产(下)

有容云-构筑企业容器云 www.youruncloud.com

调查问卷

1、您所在的公司在IT方面面临哪些挑战? (最少选1项)

技术架构老旧过时,业务需要IT从传统架构转向互联网架构
需要管理使用多个云,避免vendor locked-in
IT资产(例如虚拟机或者物理服务器)的资源利用低,成本高昂难以承受
业务有强烈弹性需求 (比如,短期内用户访问量剧增)
使用微服务架构
开发、测试、生产环境不统一,企业内缺乏统一交付标准
运维工作复杂、自动化程度低,产品交付周期长
缺乏服务于内部其他业务部门或者第三方应用,且具备完善的计费及权限模块的PaaS平台
其他

2、您所在的公司在使用哪些私有、公有云解决方案?(最少选1项)

OpenStack
CloudStack
VMware
AWS
Azure
阿里云
金山云
腾讯云
UCloud
青云
其他

3、您是如何看待开源软件的?您所在的公司是否有使用开源软件?


没有,但有意向
没有,不接受

4、请问您所在的公司所属行业是?

传统金融、新金融
运营商
互联网
其他

5、您所在的公司在使用哪些容器管理方案?(最少选1项)

Kubernetes
Mesos
Docker Swarm
Rancher
没有

6、您所在的公司在使用容器管理方案时,认为其最需要改善的功能项是?(最少选1项)

网络管理方案
存储管理方案
易用性
完整性
没有
           

文章归档