当行业观察者回顾2015年重大主题时,应用容器一定会在这一年的技术排名中名列前茅。似乎已经到处都是容器,从公有云—AWS发布了EC2容器服务,到私有云—VMware提供了vSphere的容器支持预览都是。
容器的炒作甚至令有经验的专业人士都倍感折磨,但大多数人对基础知识仍理解有限:比如容器和传统虚拟的区别是什么,各自优缺点是什么,有哪些用户案例等。据2015 OpenStack峰会一位与会者的文章,甚至在懂行的人群中具备容器经验人也是很少的:
在开幕式的主旨演讲中,当其中一位发言者询问6000名与会者“‘在座有多少人对进一步了解Docker感兴趣?’时,似乎所有人都举手了。然后他又问‘有多少人在生产中使用了Docker?’几乎所有的手马上都放下来了。”尽管没有东西能够代替亲自试验,我还是想通过聚焦应用容器基础,把一些有前景的使用场景过一遍,以及讨论在以VM为中心的管理环境下的应用部署和监控问题来引导大家的学习过程。
应用容器优缺点
应用开发者对性能的追求永无止境,这是容器如此流行的原因之一。它们比VM更加高效,内存封装要小很多,而这又转化为更快的应用启动和停止时间。一组基准测试(图1、图2)发现Docker容器使用基于内核虚机(KVM)实例1/3的内存就能在前者所需一半的时间内启动服务器。其他测试表明,更大的性能改进可以让应用启动时间在毫秒级完成。
图1:Docker容器使用内存比KVM实例更少
图2:Docker容器启动时间只有KVM实例的一半
原生容器应用—那些针对模块化、水平伸缩性以及多租户部署的应用,几乎可以即时针对工作负荷进行伸缩。较低内存使用也使得每台服务器容纳的应用密度更高。的确,基准测试表明容器化运行时的性能相当于裸服务器的97%。
因为容器封装的知识应用运行时环境,而代码、库都不在整个OS栈里面,所以可移植性也更高。比方说,在使用像Docker这样的标准包格式时,同一个应用容器既能在内部Linux服务器运行,也能在AWS上运行而不需要修改。这种应用抽象水平也意味着容器可以用流行的自动化工具,如Ansible、Chef或Puppet来进行配置部署。
容器不好的地方是它们提供的应用间隔离要比全VM环境要少,可能会没那么安全,容易导致流氓代码从一个容器越狱进入另一个容器。
常见用例
考虑到容器的效率,应用容器在云服务提供商那里相当流行也就不足为奇,因为他们都希望通过更大的服务器整合来实现资源利用的最大化。如果4、5个容器可以在同一片服务器上面跑,为什么还要用VM呢?
容器效率还使得它们成为复杂、多租户工作负载,如使用Web服务器的多层应用、中间件、数据库这些每一个用户实例都作为独立容器负载的理想环境。通过把运行时库封装进可移植、易于部署的镜像,容器是的服务提供商能迅速增加新的应用或同一软件的多个版本的同时提供运行时隔离。这使得应用容器成为有很多复杂依赖的软件(如WordPress、Drupal、Joomla等内容管理系统),或私有像Flask、.NET或Slim的复合微服务的更大选项。
因为容器允许同一应用代码的许多版本共存并在同一服务器隔离,所以可以成为采用持续交付和集成的快速应用开发的很好平台。代码隔离意味着整个开发过程,包括开发、测试、筹划和产品部署都能在同一个系统上面跑。将应用容器与Docker Swarm、Kubernetes、AWS CodeDeploy或Elastic Beanstalk OpsWorks这样的编排平台结合能够进行快速部署,因为开发者能够实现由于版本管理和自动化工作流的流水化。
容器还可以用来对遗留的一体化软件进行“云化”。也就是说,你可以部署不是针对多租户分布式系统的应用,或作为自包含、在共享云基础设施上可重定位镜像的微服务。容器隔离和抽象简化了可重复配置和管理,使得一体化应用能利用云自动化软件进行部署和监控。这种容器提供的隔离还意味着遗留系统很容易就能部署到AWS EC2 Container Service、Azure Container Service或Google Container Engine这样的公有IaaS容器上面。
容器管理问题
2015年供应商纷纷给自己的产品增加了容器支持,VM和云管理软件需要时间来跟上形势。比方说,VMworld2015的焦点之一就是介绍vSphere Integrated Containers,它允许控制兼容Docker API的容器,并可作为vSphere资源池的一部分进行消费。类似地,Windows Server 2016技术预览版也包含有Windows Server Container Manager,这可以让你通过PowerShell一级仍然比较粗糙的GUI工具管理容器,包括兼容Docker的和新的Hyper-V容器。
在Linux-OpenStack这一块,OpenStack Nova能够用管理程序驱动控制Docker容器。类似地,Dell也在用OpenManage System Administrator来集成Docker,而RedHat的Atomic Host容器平台带了Kubernetes。从长远看,要找能够集成其他的VM和云管理平台、全面IT运营管理以及应用性能管理套件的容器管理。
尽管炒得很热,但应用容器既不会取代传统的VM,也不会成为一时的流行。其技术优势使得它们可以成为许多应用完全服务器虚拟化的很好替代品,而Microsoft Nano Server、VMware PhotonOS等新的微VM技术的出现有望结合容器的性能好处和VM的彻底隔离和管理。IT架构师的部署选择从来没有这么丰富过。关键是要理解每一种平台的相对优势,然后做出明智选择。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
翻译
相关推荐
-
2018混合云市场五大预测
公有云的出现张卸载了许多初创企业的成本负担,也帮助在大型企业节省了管理与运维成本;但是由于可视功能、可控功能的局限性,导致企业不会只选择一种公有云模式,或只选择一家公有云——这就导致了混合云模式的流行,预计2018年混合云将迎来巨大增长。
-
OpenStack Kolla让容器部署更流畅
容器是一种热门技术,同时OpenStack平台也在不断发展来支持它们。但是,OpenStack的Kolla服务是如何适应容器前景的?
-
多云环境实现容器效益最大化
与虚拟机相比,容器技术具有大量的优势。我们不仅要了解容器是如何实现多云应用程序可移植性的承诺,而且也要知道其不足之处。
-
2017年:OpenShift六大趋势详解
2017已经到来,是该展望一下未来12个月的大趋势了。这些并非“预测”,而是红帽OpenShift团队在2016年所见新趋势的增强版。我们相信,这些趋势在2017年将会变得更加主流。