有容云:梁胜-如何让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%计算上容器的意义更大。因为在高盛里面有很多架构师,他肯定会研究最新的技术,但是这样一个初创公司,资源极其贫乏,但是它想做一件事他一定要把这件事做好,它的网站从头到尾都没提容器,但是它把容器用起来,通过容器对应用部署的这些优势,容器好的地方他们就采用,最后把产品做了起来,所以你会发现前几年看做云计算看他们做得很累,因为云计算是一个大东西,就像把一个大象推进冰箱一样,你需要一个吊车来吊,框架拆掉把它放到企业里面去,非常痛苦。

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

温馨提示

对Docker容器技术或容器生产实施感兴趣的朋友欢迎加群454565480讨论。我们汇集了Docker容器技术落地实施团队精英及业内技术派高人,在线为您分享Docker技术干货。我们的宗旨是为了大家拥有更专业的平台交流Docker实战技术,我们将定期邀请嘉宾做各类话题分享及回顾,共同实践研究Docker容器生态圈。

时间: 2024-10-11 08:36:02

有容云:梁胜-如何让Docker容器在企业中投产(下)的相关文章

有容云:梁胜-如何让Docker容器在企业中投产(上)

编者注: 本文是对上海容器大会有容云专场梁胜博士演讲视频的文字回播,力求高度还原当天演讲内容未加个人观点,如在细节部分略有出入欢迎留言指正.(文章较长,分为上.下两个部分) 在美国的Dockercon大会中,大会主题是怎么样让Docker容器在企业中投产.大家一直在讲这个关于投产的话题,但其实这里面有一个很关键的问题,Docker是一项不错的技术,但是要变成生产力,仅仅是一些研发人员或者是互联网公司能把容器用好还远远不够.怎样让广大企业能够把容器用起来,能够进一步加快自己内部软件开发及部署的速度

有容云-PPT | 当微服务遇见容器

编者注: 本文为10月29日有容云高级技术顾问龙淼在Docker Live时代线下系列-广州站中演讲的PPT,本次线下沙龙为有容云倾力打造Docker Live时代系列主题线下沙龙,每月一期畅聊容器技术生态,北京,深圳,广州,上海--有容云跨城带你起航!文中跟大家讨论了以Docker为代表.日益崛起的容器技术,与微服务又将擦出怎样的火花呢?尝鲜难免需要代价,我们将面临哪些挑战,如何迎接挑战,具体详情见以下PPT分享内容.

【原创】Docker容器及Spring Boot微服务应用

Docker容器及Spring Boot微服务应用 1 什么是Docker 1.1 Docker的出现 问题一:项目实施环境复杂问题 传统项目实施过程中经常会出现“程序在我这跑得好好的,在你那怎么就不行呢?! ” 这是一个典型的应用场景,Docker image中包含了程序需要的所有的运行时依赖,比如java的程序,肯定要在image中包含jdk:比如Python的程序,肯定要在image中包含对应版本的Python解释器.Docker把整个运行时环境打包放到image中,所以搞定了环境依赖问题

一图看尽Docker容器文件系统

Dockerfile是软件的原材料,Docker镜像是软件的交付品,而Docker容器则可以认为是软件的运行态.从应用软件的角度来看,Dockerfile.Docker镜像与Docker容器分别代表软件的三个不同阶段,Dockerfile面向开发,Docker镜像成为交付标准,Docker容器则涉及部署与运维,三者缺一不可,合力充当Docker体系的基石. Docker镜像 Docker镜像是Dockerfile的产物,是Docker容器的前提,大有承前启后之意.Docker技术发展两年有余,相

docker容器从入门到实战0826

##docker容器安装和配置### #docker的git-hub网站(账号rshare,密rshare520):https://github.com/login #docker官网hub仓库(账号flyer520,密码rhsare520):https://hub.docker.com #docker官网文档和镜像:https://docs.docker.com/samples/centos/ #docker官网的容器网络配置:https://docs.docker.com/engine/us

docker容器从入门到实战0826(笔记整理)

##docker容器安装和配置### #docker的git-hub网站(账号rshare,密rshare520):https://github.com/login #docker官网hub仓库(账号flyer520,密码rhsare520):https://hub.docker.com #docker官网文档和镜像:https://docs.docker.com/samples/centos/ #docker官网的容器网络配置:https://docs.docker.com/engine/us

新书发布《每天5分钟玩转Docker容器技术》

后台不时收到关于纸质版教程书籍的询问,今天终于可以给大家一个交代了. <每天5分钟玩转Docker容器技术>现已在各大书城上架. 比较了一下,目前京东上最实惠:https://item.jd.com/16936307278.html 下面回答几个大家可能关心的问题. 1. 这本书包含哪些内容? 按照年初的计划,整个教程会涵盖容器生态系统中最重要的容器技术和平台技术. 由于版面篇幅的限制,这次出版的<每天5分钟玩转Docker容器技术>内容就是容器技术部分,具体内容如下: 平台技术部

动手搭建docker并在docker容器中建spark集群

本人亲自测试搭建,由于是初学一路搭建下来走了不少弯路.如有不对或更简洁的步骤请提出环境: win10上安装的虚拟机,虚拟机装的centos7,并liunx界面化(之前搭建一次在网和端口都可以telnet前提下,就是访问不了docker容器中的服务地址,此次是为了防止宿机不能访问下用虚拟机界面浏览器),centos7的命令和centos6有区别,而且centos7中是没有iptables命令,如要使用自己安装.本人搭建的 虚拟机ip:192.168.20.129spark master节点IP:

Docker容器相关技术

docker需要依赖的Linux内核特性:(1)Namespaces 命名空间PID(Process ID) 用来隔离进程NET(Network) 管理网络接口IPC(InterProcess communication) 管理跨进程通信的访问MNT(Mount) 管理挂载点UTS(Unix Timesharing System) 隔离内核和版本标识 (2)Control groups(cgroups) 控制组用来分配资源,也就是资源限制优先级设定资源计量资源控制 Docker容器的能力(1)文