容器真的是万能吗?看完这些你会沉默

麦克莱恩发明集装箱的时候,或许不会想到这种运输方式会推动经济的全球化发展。当一批批货物被打包搬上火车、轮船、飞机,集装箱不仅解决了装货慢、载量小的窘境,还将原来数月的运输时间从数月缩短至数天。当然,考虑到货物的多样性,以及具体使用情况,集装箱并非万能药。这就像是容器,将开发者的应用打包发布到Linux平台上不是一本万利,还要涉及部署成本、操作环境、安全性等问题。

图片来自mediaagility

2013年3月,PaaS服务商dotCloud(后来的Docker)将应用容器引擎Docker开源,代码托管在Github上。在此之前,容器技术已经在Linux和UNIX领域经历了十多年的变迁。从技术的角度来看,Docker基于沙箱机制可将任何应用集成在一个轻量化、可移植、标准化的容器中,核心问题就是利用Linux容器技术实现类似虚拟机的功能。然而,在一片为容器叫好的声音中,人们也要注意到这种技术的弱点。

用容器有代价

容器不是一刀切的解决方案,意味着使用者要具有相对应的专业知识,并且要确保基础设施的完整性,有了好地基才好盖房子。将容器集成部署到持续交付管道,使其自动化运转起来,需要在每次提交代码时执行一系列步骤,其中包括一次手动迁入代码库的操作。简单来说,管道的作用就是让容器在内部经过功能性测试,合格“上岗”。期间如果有一次执行延误,就会打破持续性,并且会错过发现问题的时机,导致后期投入更多精力来修补。要知道,在代码提交的几分钟内bug报错与数周后再察觉相比,前者的修复成本要小很多。

需要注意的是,Docker并不会重写代码,只是让跨平台部署变得容易了,想具有扩展性还是要由开发者亲自动手。Docker不是横跨所有系统,毕竟系统层的软件泊接不是停船装货那么简单。跨系统的时候,要先保证Docker自身的新版内核,并且底层是通用的,再小的差错率放大到成千上万台服务器上都是大风险。同时,规模化运行容器离不开管理和编排的支持,又是一笔投资开支。

容器不等于虚拟机

切勿以虚拟机的视角看待容器,其不是可以随意编辑或者删除的对象,遇到问题只能丢弃重建出一个新的。或许有开发者遇到这样的问题:容器执行过程中,修改了容器的内容(如配置文件信息),但因为修改出了问题,导致容器关闭后无法启动。为此,开发者只能创建新镜像,或者直接修改文件。

此外,Docker的资源隔离水平也比不上虚拟机,只能对一些资源共享,其他进程需要排队入列。容器在内核层面也是共享的,在某些环境中换取了高效率,但可用性和冗余也会受到影响。与独立内核的虚拟机不同,如果有一个容器内核损坏,其共享机制就会导致所有关联的容器遭殃。

生产环境缺陷

成熟的企业会使用才出现两年的数据库技术吗?更何况Docker只是一个工具,谈不上架构解决方案。前文提到,部署容器需要镜像管理、日志、监控、负载均衡等全流程的支持,并且升级后的向前兼容性较差,这也导致了容器在生产环境中的弱势,更不要说为大型应用程序创建映像。一些自建生产环境的用户会将Docker放在IaaS上,可能引发资源消耗超出容器实例所需的。而在网络层,并非所有容器都能被公网访问,这就要在网络设置时多多留意,为主机打补丁是常事儿。

部署过程中,Docker Compose与其他工具相比在生产环境配置时复杂度更高,volume绑定、端口对接、网络参数都要修改,并且需要调用很多脚本,以及外部数据库等工具。拿数据库管理来说,开发环境完全可以跨容器托管,但在生产环境就要考虑I/O性能等问题,用于确保高可用性和可靠的备份及存储。能力越大,需要注意的点就越多,容器可以将package直接从开发环境搬到生产环境,但在生产环境仍有要完善的地方。

容器离不开安全

围绕容器的安全性争议从未间断,风险是由内向外的,黑客可以通过破解容器来访问底层服务器,进而影响到云服务商的数据中心。另一方面,不同的镜像来源也让威胁变得难以预测。曾有数据显示,Docker Hub的容器镜像有超过30%保护高风险漏洞,而且这些还经常被下载的镜像。此时,容器就像潘多拉的魔盒一样,你永远不会知道里面到底有什么。

从规范性的角度来看,容器应用商店或许是个好办法。事实上,很多服务商甚至不知道自己的容器有问题,直到漏洞爆发才发现。通常,使用者应该选择熟识的服务商、避开那些长期没有更新过的容器。至于提供方,只能把控好代码质量,定期“体检”。

结语

未来,前沿技术、社区生态、企业支持将成为容器发展的三大基础,上云容器化已经成为趋势,但实际应用过程中还要根据自身业务特性做出判断,避开容器初期部署时的不稳定因素,这样才能将商业价值最大化。 

原文发布时间为:2017-10-10 

本文作者:徐鹏

时间: 2024-11-01 03:57:37

容器真的是万能吗?看完这些你会沉默的相关文章

Docker安全性(一)——Docker容器真的安全吗?

Docker安全性(一)--Docker容器真的安全吗? 本文翻译自Daniel J Walsh的一篇开源文章:http://opensource.com/business/14/7/docker-security-selinux 这篇文章是基于一个演讲中"今年在我DockerCon上的分享":http://v.youku.com/v_show/id_XODQwNjUwNTIw.html. 这将讨论Docker容器的安全性,我们目前正在做什么,和我们将朝哪里走. 这是一个系列Docke

千万不要买16G iPhone 6,看完这8个原因你就知道了

千万不要买16G iPhone 6,看完这8个原因你就知道了 时间:2014-11-05 13:44 来源:App每日推送 作者:App每日推送 以前穷的时候,每推小编购买 iPhone 大概只考虑一个因素,就是价格!因此手上用着的 iPhone 5s 是 16G 的.可是现在后悔了呀,如果有机会让我买 iPhone 6 ,绝对不会再买 16G 了! 1. iPhone 变相机,照片多占空间 iPhone 6 的相机功能大幅度提升,而 Plus 版更加入光学防手震,拿 iPhone 拍照还要什么

最近几天把马士兵的 基础语法,面向对象视频看完, 感觉晕呼呼的

问题描述 哎呀小弟不才呀刚接触java最近几天把马士兵的基础语法,面向对象视频看完,感觉晕呼呼的大家帮找找方向 解决方案 解决方案二:这个是很基础的问题,如果这关过不了,以后的东西都不能进行,怎么谈方向啊,只有把基础学扎实了,后面才会好学,到时候,你再问这个问题也不迟啊?解决方案三:这个道理我也了解所以现在找基础呀,主要有没有学习的方法借鉴一下解决方案四:呵我正在看解决方案五:再看一遍就过吧,自己编几个小代码,自己写代码要比看教程印象深.加油,和你一起奋斗在java的战线上!解决方案六:引用2楼

看完这篇文章后,别再说自己不懂用户画像了

用户画像是一个挺新颖的词,最初它是大数据行业言必及之的时髦概念.现在我们运营谈及用户画像,它也是和精准营销.精细化运营直接钩挂的.这篇文章主要讲产品和运营角度的用户画像. 希望看完后,解决你一切关于用户画像的疑问. 什么是用户画像 用户画像一点也不神秘,它是根据用户在互联网留下的种种数据,主动或被动地收集,最后加工成一系列的标签.比如猜用户是男是女,哪里人,工资多少,有没有谈恋爱,喜欢什么,准备剁手购物吗? 我们常把用户标签和用户画像对等.但凡用户画像的文章,类似上文图片都会出现,有用烂的趋势.

看完支付宝年度对账单您“剁手”了么

新闻背景: 1月15日,备受亿万网友关注的支付宝http://www.aliyun.com/zixun/aggregation/12107.html">年度账单闪亮登场.除了每个用户都能通过自己的"个人年度对账单"看到自己这一年来详细的网上支出状况,支付宝还对2012年的全民对账单进行了盘点. 看完支付宝年度对账单您"剁手"了么 面对支付宝的年度网购账单,众多网友集体求饶,称自己无法直面对账单,恨不得剁了自己的手.@赵乾乾:查完支付宝年度对账单之后眼

竞争对手网站分析全攻略新手看完告别菜鸟时代

如果你想告别外链专员,只负责论坛回帖推广或者只负责QQ推广等等专员时代的话,那么你应该学会分析竞争对手的网站的优化情况,当你某一天产生了全方位分 析竞争对手的seo状况这个念头时,事实上你的意识已经开始复苏,你痛恨只发外链的现状,你打广告做得麻木,你在论坛发帖发得想吐,QQ加来加去加得 手软,你感受不到关键词排名变化到底和自己有几毛钱的关系,如果你是一名seo人员,那么现在就应该开始学着分析竞争对手网站优化的情况,告别菜鸟seo 时代,从分析竞争对手做起.开篇前戏太多,下面直接进入主题. 分析竞

初学者-java小游戏设计问题(有些冗长,麻烦耐心看完!)

问题描述 java小游戏设计问题(有些冗长,麻烦耐心看完!) 该小游戏是为了实现电脑随机出石头,剪刀,或布,然后玩家根据电脑的要求(赢电脑,输电脑,打平),大致思路是客户端发出指令开始游戏,服务器端接收后随机选择,然后发回给客户端,玩家选择后,服务器做出判断对错.现将游戏的服务器端与客户端贴出,现在的问题是当玩家输入自己的判断后,服务器返回的值一直是"回答错误",求解! 这是 服务器端 的程序 import java.io.*; import java.net.*; import ja

sso-如何Android实现SSO(请耐心看完以下内容再回答)

问题描述 如何Android实现SSO(请耐心看完以下内容再回答) 最近在做公司项目,领导要求做一个单点登录SSO,我查遍整个百度,大概得到都是Android 连接新浪,人人,Oauth 2.0第三方接入,我想自己的项目实现单点登录,原理什么都大概看过,需要详细的解决方案,不需要讲web 应用那一套,我知道web有cook,可以保存,Android怎么实现,求做过的人分享一下,需要钞票,或者积分都可以商量,关键是做出来. 解决方案 我也正要搞这个,毫无头绪,兄台有结果了吗? 解决方案二: @Ov

区块链究竟是什么鬼?看完漫画秒懂!

区块链究竟是什么鬼?看完漫画秒懂! 来源 | OKLink区块链(ID:OKLink-DY) 编辑:黎跃春 黎跃春:江湖人称春哥.资深讲师.全栈工程师:区块链.高可用架构技术爱好者. 区块链技术是指一种全民参与记账的方式.所有的系统背后都有一个数据库,你可以把数据库看成是就是一个大账本.目前是各自记各自的账. 由于没有中心化的中介机构存在,让所有的东西都通过预先设定的程序自动运行,不仅能够大大降低成本,也能提高效率.而由于每个人都有相同的账本,能确保账本记录过程是公开透明的. 区块链技术是比特币