专家观察 | 赵安全:“Docker容器在传统行业的落地再思考”

《专家观察 | 赵安全:“Docker容器在传统行业的落地再思考”》要点:
本文介绍了专家观察 | 赵安全:“Docker容器在传统行业的落地再思考”,希望对您有用。如果有疑问,可以联系我们。

由工业和信息化部指导,中国信息通信研究院主办,业界知名组织云计算开源产业联盟(OSCAR)承办的2017全球云计算开源大会于4月19日-20日在北京国家会议中心顺利召开.本文为本届大会嘉宾分享的大会演讲速记内容,敬请浏览.

专家观察 | 赵安全:“Docker容器在传统行业的落地再思考”

嘉宾介绍:赵安全

公司职务:BoCloud 博云高级解决方案架构师

大会演讲速记

Docke

今天我题目叫做Docker容器在传统行业的落地实践.我们2015年开始做,我把这个坑给大家分享一下,包括我们一些思考跟大家分享一下.

容器

整个的容器在传统行业落地的时候,第一个问题为谁服务的问题?因为我们很多客户,我问这个应用你用它上容器的目的,他说我想试试,我回答是这种应用上容器没有什么作用.

容器

容器在传统行业应用要解决的问题,敏捷模式、互联网模式应用问题的解决.从客户期望来说想解决问题是这几个.一是双十一的时候,淘宝那边流量一进来我就可以跑了,能不能解决弹性的问题.我们现在应用发布很慢,两个月一个迭代,是不是把发布周期很长的问题解决掉.AO客户说我们整个平台变化能力比较差,能不能把我这个问题解决掉,这几个是比较典型的需求,我肯定回答说是可以的.

容器平台

但是仅仅落地容器是不够的,因为容器平台部署好之后可以能帮助解决这些问题,但是并不是说做了容器一定能解决这个问题.为什么?

首先弹性问题,弹性问题说起来比较简单的,容器化之后可以很大程度解决这个问题.

其次是发布周期长的问题,你迭代很慢的问题,整体来说容器化能帮一些忙,其实它要整个解决,实际上是应用架构的解决和Docker平台落地才能把这个事情解决掉.举个例子,我们有一个客户有一个应用,这个应用部署起来需要上传20个包,20个包整个存储空间需要七八百兆的空间.因为它没有配置管理,所以这个包上传必须开发人员从自己电脑上手工集成.集成完之后打包上传,打包完之后这个应用有时候配置项一百多个,你从界面或者多种手段要配置好,上传和改配置的工作这样去做需要三个小时,你升级容器没有解决问题,其实更复杂了,不是我们平台有问题,你应用架构是有问题的.

第三个就是说并发内容多,这个更多是架构问题,或者整个并发能力解决的问题,可能跟容器平台没有什么关系.这些是客户比较传统的需求,需要容器、Docker和架构一体化解决的.做容器比较长的不论是我们厂商还是客户应该有这样的认识.

DeoOps

刚才讲到容器的基础就是软件架构,我们看容器化其实对软件架构是什么样的,我希望应用是分布式的,如果它不是分布式的没有意义,你不是分布式,我连弹性都没有做,容器应用比较小了.我希望它是无状态的,希望它可以快速定位,我们启动容器化应用,这样一个东西上容器,希望发挥容器的更好作用.

DeoOps我们希望体量不要太大,单个应用不要太大,太大应用其实你很难做这种垂直层,也很难把这个流水线跑起来,希望是比较小的,服务是松偶合的,这样持续交互流水线互相之间没有关联,这样很好打通,到最后做集成.看起来就是做微服务的要求,所以这三个合在一起.

容器平台

容器平台建设关键问题,我们说传统行业建设的关键问题,我们总结八条.第一条弹性伸缩问题,怎么快速有效的伸缩.第二个配置管理的问题.因为传统行业的应用跟互联网公司应用有区别的,毕竟管理是一个难题.网络问题,网络问题我今天稍微讲一讲,我看前面老师已经讲了一些内容.

还有传统行业我们流程跟互联网公司不一样的,你从互联网公司去传统公司你会觉得流程很烦比较复杂.还有平台对接,你平台过来以后可靠性怎么样,安全性怎么样,你怎么给我保证的这些问题.

 弹性伸缩

弹性伸缩,基于镜像启动一个新的容器,然后把负载均衡器改一下,这个弹性伸缩就做完了.实际上首先你弹性伸缩,你基于什么指标做弹性伸缩,什么时候弹,什么时候缩,我怎么调配新的应用,缩容问题,用户不够用怎么办,用户扩了怎么办,底层资源不足我怎么办?

专家观察 | 赵安全:“Docker容器在传统行业的落地再思考”

具体来讲第一个弹性伸缩的指标,所有的容器平台默认支持两个指标,第一个CPU,第二个内存,可能还有人支持网络流量,这三个指标做弹性伸缩.这几个指标有没有意义,有意义,你基于你性能测试结果,知道什么时候CPU内存到什么程度,把指标配置好,肯定有用的,尤其对CPU内存比较敏感应用是有用的.从一个比较合理的角度来说,最好方式跟应用监控平台做指标,基于应用监控指标做这个弹性伸缩最合理.如果这些做不到,我们手动弹性伸缩也可以做这些工作的.

还有一个负载均衡的问题,传统负载均衡用F5比较多,有一个对F5自动配置的问题,需要整个平台支持这个能力.另外还有一个问题容器启动了,是不是里面应用就一定启动了,这个不一定的,到底什么时候应用调动,你做一个应用可用性的监测,确定可用以后把客户调过来就是可以的.我可以多等一些时间,把用户调动过来.

缩容

另外缩容,你怎么保证用户在上面,如果用户在上面缩容了,用户掉了怎么办,我们用Session解决这个问题.另外IAAS对接和资源自动获取的问题,资源不够怎么办?需要你容器平台跟IaaS平台做最接,VCENTER对接,open Stack,公有云对接.

容器化

刚刚讲容器化应用的配置管理一定是一个问题,互联网公司里我们理想状态下希望有一个配置中心的,这样配置统一先发的,跟容器镜像无关,是格式化管理的,你把配置改了甚至都不需要重写东西,尽量通过一个服务中心做,这样配置变得非常简单了.很多传统行业没有这么好的条件,也有几个方案做.第一个环境变量的方式,或者用Kubernetes也可以,我们早期也有直接改配置的文件.它的是开发、测试、生产三个环境都是独立容器,这个你做好之后也是可以解决问题的.

容器网络

另外容器网络,前面讲很多,容器网络的性能一直有问题的,下面图是我们测容器网络的性能.前面第一个容器访问它本身的主机.Docker原生的方式,还有OAS的模式,容器访问自己的主机,只能达到实际网络的一半.还有一个问题容器跑在虚拟网络上,性能会下降非常厉害,甚至下降80%以上都有可能的.这个问题有很多解决方案,京东前一段是开源社区做得事情.DPDK在Docker上有一些难点上,虚拟化上可以做的都实现了,所以我们找到中科院软件所一起做这个事情,实验室已经把它解决掉了,还要有一段时间正式应用到我们产品上去.

DevOps

流程适配问题,传统公司讲我们这边有很多流程,你这个一定适配我们流程才能用起来.这不是Docker的问题,而是DevOps的问题DevOps怎么做?我们希望落地一个新平台,落地一个新的软件开发模式,不要成为一个包袱,我们希望有一个新的应用,有一个新的DevOps试点团队做这个事情,开发设计阶段是偏互联网方式的流程,到了生产阶段,有不同机构的要求,我们走一下传统流程,保证生产经过流程验证没有问题的,这是我们一个想法.

流程

还有一个传统行业跟互联网公司区别比较大的地方,开发环境、测试环境、生产环境,开发和测试环境是物理隔离不通的,这种情况下怎么做?实际上来讲把开发测试和生产环境隔开,他们之间交互有一个镜像交互就可以了.

专家观察 | 赵安全:“Docker容器在传统行业的落地再思考”

运维人员用熟了很多系统,他要求你平台适配这个系统,而不是说你容器平台自带的管理我就用,比如说监控管理、日志管理,IAAS平台都需要跟他们平台对接的,你提供Docker管理的一套系统,实际上你很多能力要在传统行业里面原有的程序支持.

容灾

还有容灾的问题,你上了容器之后,两地三中心这个要怎么办?我觉得这个好像没有什么关系,我后来想想可能客户觉得你把我整个应用部署方式,管理方式都改了,我两地三中心不知道 怎么管了.

简单强调几点,第一点整个容灾,两地三中心核心有两个部分.第一个是上面负载均衡调度的问题.第二个下面数据库这一层,存储这一层数据一致性保障的问题,这两层其实都是跟容器关系不是很大,当然有一些关系但是关系不是很大.实际上来说容器改变更多是整个应用的发布,应用部署的过程,这个过程需要我们专门解决的,其实方案有跨数据中心统一应用管理的节点统一管理整个数据中心的发布,当然还有不同的策略,属地中心、异地中心,切换更多是应用方面,负载方面就可以了,其实跟容器本身关系不是很大的.

专家观察 | 赵安全:“Docker容器在传统行业的落地再思考”

还有安全性的问题,我这边正好讲的有一些算是不是特别重复的内容.刚刚讲那几个点,容器安全性还有一个大家比较安全的点就是镜像安全性,镜像安全性是一个什么问题?首先如果我们镜像都是安全的,实际上对传统行业安全的增强.因为传统行业里面有很多时候,我们的客户也是在不同地方获取到不同的应用包、软件包,而且有很多不同的版本来部署,其实是比较乱的.容器化之后,经过镜像之后标准化把它底层资源,包括中间件都是标准化的,这个镜像本身是安全的,是对传统行业的增强.

我们现在做得事情就是为我们客户提供标准化的镜像,另外我们去年开始社区推一个社情,就是关于镜像安全扫描,我们也推到我们这里来了,做安全镜像扫描这个事情.

专家观察 | 赵安全:“Docker容器在传统行业的落地再思考”

容器部分最后关于运维的可以用性,我们把容器定义为运维管理平台,从运维发布部署到运维管理,都是容器平台的能力.其中有一点运维,这是我们给一个证券公司做得服务治理,我们现在比较主流的Docker开源的框架,基本上来说支持Java为主的,传统行业有C,各种别的语言,我们上面用了几个不同的架构搭了整个分布式架构的架子,帮它做整个应用恢复架构的服务治理,解决校验分析、黑白名单、负载均衡、熔断的问题.整个来讲这是从开始创建到最后整个部署,从代码开始到最后整个平台.

DevOps

我们帮客户落地容器的过程当中我们发现,客户很多诉求,仅仅落地容器不够的,还需要做一些别的事情,我个人对这个DevOps非常感兴趣,花很长时间研究它,包括参与DevOps的培训,我觉得确实有启发,跟大家分享一下.

落地有这几个难点:第一个架构耦合的问题,我架构耦合之后不管你做什么事,发布速度,包括弹性包括部署非常难做.这个事改掉很难.第二个关于质量控制测试,测试这个事情传统公司基本上很少有公司说我把自动化做得很好,这是一个难点.第三个交付和发布是我们在做的事情,因为应用部署和容器平台是解决这个问题的.第四个传统行业也是求新求变.我们有很多企业说我们要敏捷,我们要上容器平台,这是它一直做的事情,这个事情只是做了局部优化而不是整体的优化,这样导致做任何一个事情你感觉起不到效果.

DevOps

整个来说DevOps全局有什么东西?这是百度张老师的图我结过来用的,红色部分是容器部分可以解决的.可以看到这个东西是比较大的框架内容.从数据交付来讲也会有提交与编译,测试与应用,最后交付与运维这三个步骤,没有一个好的技术架构支持,没有一个团队支持,这个事情很难去做.所以说这个事情应该说有一定复杂性的.

DevOps

具体来讲我认为DevOps实施落地的步骤建议是这样的,第一个需求驱动.什么意思?首先我们大家都比较痛,一定要解决这个问题,刚才我讲了它推起来非常难.

第二个试点先行.你找一个东西试点,你在原来框架里面改改把这个事情做了不可能呢,这是我们去年帮客户做咨询的时候提的,你找一个应用,这个是互联网应用,跟兼容关系没有那么紧密,你来做一个事情可能比较容易一些.

第三个独立团队,你找一个独立团队干这个事,你先有一个新流程把这事办了,最后看效果怎么样,有了效果之后,大家再来去做这种更新,想办法把它推广出来,这是比较合理的方案.最后一个先架构再平台最后流程.先把架构这个事做了,一定要把基础打好,然后你再做一个平台把这个事固化下来取得效果,最后我们适配所需要的流程事情,这样比较容易落地,是这样的.

最后一点我们是2012年成立的创业公司,我们要解决我们公司的事情.我们以容器和运维为主的创业公司,2012年成立.目前来说我们主要客户都是金融客户,而且以做容器为主的,还有自动化运维这样一些产品的公司.今天我分享的就是这些内容,谢谢大家.

文章来自微信公众号:云计算开源产业联盟

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


每个HTTP请求和响应都会带有相应的头部信息。默认情况下,在发送XHR请求的同时,还会发送下列头部信息: Accept:浏览器能够处理的内容类型 Accept-Charset:浏览器能够显示的字符集
"Markdown自动生成目录" "使用npm语法生成" "1、安装npm" "2、安装doctoc插件" "
当我们从客户端向服务器发送请求时 服务器向我们返回状态码 状态码就是告诉我们服务器响应的状态 通过它,我们就可以知道当前请求是成功了还是出现了什么问题 状态码是
原理 介绍 哈希表(Hash table,也叫散列表), 是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映
一 共享秘钥 1.1 概念 共享秘钥和我们生活中同一把锁的钥匙概念类似,对同一把锁来说,加锁时使用什么钥匙,解锁也必须使用同样的钥匙。 1.2 共享秘钥在HTTP传输中的缺点 以共享密钥方式加密时必须
正向代理的概念 正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器这个代理服务器呢,他能访问那个我不能访问的网站于是我先连上代
如果你是网站的开发者或维护者,就不得不重视盗链的问题了。如果你刚刚开发完一个没有防盗链的带有文件下载功能的网站,挂上internet,然后上传几个时下非常热门的软件或电影并在网站内公布下载地址,让MS
select,poll,epoll区别总结 select,poll,epoll都是I/O多路复用。I/O多路复用就是通过一种机制,可以监测多个描述符,一旦某个描述就绪(一般是读或者写),能够通知程序进
PS: https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密。防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名。另外是加密,加密需要一个密钥交换算法,
一、什么是http协议 HTTP是一个应用层协议,无状态的,端口号为80。主要的版本有1.0/1.1/2.0. HTTP/1.* 一次请求-响应,建立一个连接,用完关闭; HTTP/1.1 串行化单线
host文件的工作原理及应用 Hosts文件是一个用于存储计算机网络中节点信息的文件,它可以将主机名映射到相应的IP地址,实现DNS的功能,它可以由计算机的用户进行控制。 一、Hosts文件基本介绍
HTTP 2.0是在SPDY(An experimental protocol for a faster web, The Chromium Projects)基础上形成的下一代互联网通信协议。HTT
虚拟地址和物理地址 第一层理解 1、每个进程都有自己独立的4g内存空间,每个进程的内存空间都具有类似的结构。 2、一个新进程建立的时候,将会建立自己的内存空间,此进程的数据,代码等数据从磁盘拷贝到自己
0x00 前言 发现自己学习python已经有半个月了,也开发了自己的一些渗透的小脚本,但觉得还是不够,我个人觉得工具和脚本还有框架是个本质上的区别。脚本的话,不会考虑到其他的一些因素,例如报错和交互
0x00 前言 由于昨天520,今天又是521,我被朋友圈和qq空间给刷屏了,都在秀对象。一气之下决定把我上次写的nc拿出来使用类进行重构,多实例化几个对象,这下子我也有对象了。 0x01 一些小插曲
upload labs通关 0x00 前言 这段时间一直在忙,没时间来更新文章,这里就写篇upload labs的通关手册吧,现在包括网上也有很多upload通关手册,但是在这里还是想自己去写一篇,来
0x00 前言 介于这段时间比较忙,所以博客的更新也比较慢。本来想前几天就发这个mssql数据库的,但是因为mssql的结构比较复杂,利用方式也比较多,所以又去深入研究了一下mssql的数据库结构和各
0x00 了解数据库 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 数据库是以一定方式储存在一起、能与多个用户共享、
0x00 前言 现在access的站,比较少,有的话也是小型网站在用,因为access的性能比较差,多人访问都能卡死,所以很多网站都很少会采用access的数据库搭建。但是该学的我们还是得学。 0x0
记一次某企业实战 0x00 前言 近段时间来也没怎么更新过博客,在这里就来水篇文章吧。 前段时间一直在做项目,也来分享并且记录一下自己的一些成果,和一些小思路。 0x01 信息收集 渗透的第一步肯定是