新闻、帮助、产品更新动态

最新的业界新闻,产品系统更新开发动态,帮助教程和活动发布

容器不是万能~看您如何正确使用?

发布日:2017-11-22 09:33       阅读数:

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

 
  2013年3月,PaaS服务商dotCloud将应用容器引擎Docker开源,代码托管在Github上。在此之前,容器技术已经在Linux和UNIX领域经历了十多年的变迁。从技术的角度,沙箱机制可将应用集成在一个轻量化、可移植、标准化的容器中,核心问题就是利用Linux容器技术实现虚拟机的功能。然而,在容器叫好的声音中,人们也要注意到这种技术的弱点。
 
  容器的解决方案不是一刀切,意味着使用者要具有专业知识,确保基础设施的完整性,举个例子:有了好地基才好盖房子。将容器集成部署到持续交付管道,使其自动化,需要在每次提交代码时执行步骤,其中包括一次手动迁入代码库的操作。
简单来说,管道的作用就是让容器在内部经过功能性测试,合格“上岗”。要知道,在代码提交的几分钟内bug报错与数周后再察觉相比,前者的修复成本要小很多。
 
  需要注意的是,想具有扩展性要由开发者亲自动手,Docker并不会重写代码,只是让跨平台部署变得容易。Docker不是横跨所有系统,毕竟系统层的软件泊接不是停船装货那么简单。同时,规模化运行容器离不开管理和编排的支持,又是一笔投资开支。
 
  容器不等于虚拟机
 
  切勿以虚拟机的视角看待容器,其不是可以随意编辑或者删除的对象。有开发者遇到这样的问题:容器执行过程中,修改了容器的内容,但因为修改出了问题,导致容器无法启动。为此,开发者只能创建新镜像,或者直接修改文件。
 
  此外,Docker的资源隔离水平也比不上虚拟机,只能对一些资源共享,容器在内核层面也是共享的,其他进程需要排队入列。在某些环境中换取了高效率,与独立内核的虚拟机不同,有一个容器内核损坏,其共享机制就会导致所有关联的容器遭殃。
 
  生产环境缺陷
 
  前文提到,部署容器需要镜像管理、日志、监控、负载均衡等全流程的支持,并且升级后的向前兼容性较差,这也导致了容器在生产环境中的弱势,自建生产环境的用户会将Docker放在IaaS上,可能引发资源消耗超出容器所需的。而在网络层,并非所有容器都能被公网访问,这就要在网络设置时多多留意。
  部署过程中,volume绑定、端口对接、网络参数都要修改,并且需要调用脚本,以及外部数据库等工具,DockerCompose与工具相比在生产环境配置时复杂度更高。拿数据库来说,开发环境完全可以跨容器托管,用于确保高可用性和可靠的备份及存储。能力越大,需要注意的点就越多。
  
   容器离不开安全
 
  风险是由内向外的,容器的安全性争议从未间断,黑客可以通过破解容器来访问底层服务器,影响到云服务商的数据中心。另一方面,不同的镜像来源也让威胁变得难以预测,此时,容器就像潘多拉的魔盒一样,你永远不会知道里面有什么。
 
  容器应用商店从规范性的角度,或许是个好办法。事实上,很多服务商并不知道自己的容器有问题,直到漏洞爆发才发现。通常使用者应该选择熟识的服务商、避开那些长期没有更新过的容器。至于提供方,只能把控好代码质量,定期“体检”。
 
  在未来的日子里,前沿技术、社区生态、企业支持将成为容器发展的三大基础,上云容器成为趋势,但实际应用过程中还要根据自身业务特性做出判断,避开容器初期的不稳定因素,从而实现商业价值最大化!

编辑:航网科技   来源:深圳航网科技有限公司

本文版权归原作者所有 转载请注明出处

联系我们

客服部:深圳市龙华区龙胜商业大厦5楼B5区

业务部:深圳市南山区讯美科技广场2栋12楼1202

资质证书

  • Copyright © 2011-2020 www.hangw.com. All Rights Reserved 深圳航网科技有限公司 版权所有 增值电信业务经营许可证:粤B2-20201122 - 粤ICP备14085080号

    在线客服

    微信扫一扫咨询客服


    全国免费服务热线
    0755-36300002

    返回顶部