浅析Docker容器技术的发展前景

2018-06-19 07:00易升海彭江强卿勇军伍琪
电信工程技术与标准化 2018年6期
关键词:镜像虚拟化容器

易升海,彭江强,卿勇军,伍琪

(湖南省邮电规划设计院有限公司,长沙 410126)

云计算是一种融合了多项计算机技术的以数据和处理能力为中心的密集型计算模式,其中以虚拟化、SDN、分布式存储等技术最为关键。经过十多年的发展,云计算技术已经从发展培育期步入快速成长期,越来越多的企业已经开始使用云计算服务。与此同时,云计算的核心技术也在发生着巨大的变化,新一代的技术正在优化甚至取代前一代技术。Docker容器技术以其轻便、灵活和快速部署等特性对传统的基于虚拟机的虚拟化技术带来了颠覆性的挑战,正在改变着基础设施即服务(IaaS)平台和平台即服务(PaaS)平台的架构和实现。

Docker容器技术是一个风头直追OpenStack的云计算开源项目,关于它的热议已席卷虚拟化乃至云计算行业,业内各大厂商(包括亚马逊、红帽、IBM和VMware等)都加入了容器的行列。

1 Docker容器技术介绍

Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotCloud公司。Docker自开源后受到广泛关注和讨论,目前已有多个相关项目,逐渐形成了围绕Docker的生态系统。dotCloud公司后来也改名为Docker Inc,专注于Docker相关技术和产品的开发。

Docker中有两个重要概念,一个是镜像(Image),另一个是容器(Container)。容器即利用Docker构建出来的虚拟环境,可理解为一个自给自足的Linux环境,在功能上,与一个完整的Linux环境基本一致。镜像,类似于虚拟机中的镜像,利用 Docker运行镜像即可还原出构建的容器。对于镜像,会有基础镜像,就好比一个纯净的操作系统,可以在基础镜像上做修改,比如安装应用、配置某些环境变量,形成我们自己的镜像,利用镜像就可以还原出一个完全相同的环境。

Docker容器技术是近年来新兴的虚拟化工具,容器技术和虚拟化技术的实现原理,如图1所示。

图1 虚拟机和容器的技术架构

虚拟机技术中的虚拟机操作系统和虚拟机管理程序层在Docker中被 Docker引擎层所替代。虚拟机操作系统为虚拟机安装的操作系统,它是一个完整操作系统内核;虚拟机管理程序层可以简单理解为一个硬件虚拟化平台,它在宿主机操作系统是以内核态的驱动存在的。

因为容器不需要为每个应用分配单独的操作系统,所以容器会拥有更高的资源使用效率。同时,容器实例规模更小、创建和迁移速度也更快。因此,相比于虚拟机,同等配置的硬件设备当中可以部署数量更多的容器实例。

2 Docker容器技术性能分析

Docker容器若要大规模商用,需要对Docker容器性能、管理能力、存储能力、隔离能力、应用部署等关键技术进行分析。本文基于华为、中兴(基于Kubernetes)、福富(基于 Kubernetes)以及互联网公司 Daocloud(基于 Docker Swarm)、网澈(基于HOR)的Docker容器技术进行分析。

2.1 容器性能

相比传统虚拟化技术,容器不需要为每个应用分配单独的操作系统,所以容器会拥有更高的资源使用效率。容器资源利用率明显高于虚拟机,如图2所示。

图2 虚拟机和容器性能对比图

物理机容器 CPU利用率是虚拟机的1.3倍,内存读效率是虚拟机的1.3倍,内存写效率是虚拟机的1.3倍。磁盘 I/O性能容器是虚拟机的2倍,网络 I/O性能容器是虚拟机的1.1倍,数据库读效率容器是虚拟机的1.2倍,数据库写效率容器是虚拟机的1.1倍。由此可见,采用容器技术在性能上将全面超过传统的虚拟机技术。

2.2 管理能力

容器技术所提供的轻量级虚拟化实现秒级部署、弹性扩展,并更高效的利用计算资源。容器镜像正逐渐成为应用交付的标准,加之迅速成长的生态系统,将会是应用发布、分享的首选方式。管理平台基本能提供控制台、容器启停、集群管理等运维管理功能,可查看容器信息、集群信息、性能信息和日志信息;支持应用快速扩展和负载均衡等能力;具备故障自动恢复能力。各容器厂家的产品性能如表1所示。

容器管理产品商用案例不多,成熟度仍有待提升。DaoCloud、网澈有商用版本,而中兴 OpenPalette R3、华为 FusionContainner、福富 FCSP尚未有正式商用版本;华为、中兴从资源池管理角度,考虑了容器与虚机、物理机的联动管理;网澈 HOR、DaocloudDCE、福富 FCSP等则仅关注容器的管理,不涉及底层物理资源管理。

表1 容器厂家产品介绍

2.3 存储能力

容器是近年兴起的应用开发、交付和运维的方式,随着应用模式的深入,已经从原先无状态为主的应用,逐渐发展到有状态的容器应用,有状态的容器应用必需要有数据持久化储存的能力。

在容器中运行的应用,应用真正需要保存的数据,可以写入持久化的数据卷。由于以微服务架构为主的容器应用多为分布式系统,容器可能在多个节点中动态地启动、停止、伸缩或迁移,因此,当容器应用具有持久化的数据时,必须确保数据能被不同的节点所访问。

目前仅华为容器云平台和华为分布式存储可以实现存储卷的创建、挂载、删除及迁移等功能。通过第三方插件可以接收北向 API收到的存储请求,如创建、删除、加载、卸载和迁移数据卷等,并传递给底层数据平面去完成实际的存储操作。

2.4 隔离能力

Docker容器技术安全性是生产应用中必须重点考虑的问题,必须保障各个容器之间的安全隔离。目前的容器产品大多能实现以下安全功能。

(1)可以报账容器与容器之间、容器与宿主机之间的 CPU、内存、磁盘 I/O的资源隔离。

(2)可以通过SDN技术,可以实现不同 Vxlan间的隔离。

(3)通过镜像仓库的权限控制及镜像校验实现镜像的安全访问。

2.5 应用部署

Docker容器技术具有快速部署、环境一致性等特性。传统模式下,运维人员需要部署测试和生产环境,部署工作相对比较复杂,且有很多重复工作,浪费时间。容器模式下,开发人员将部署环境形成镜像,运维及测试人员只需获取镜像启动容器即可,减轻了工作量,节省了时间。容器镜像启动,自动服务发现与负载均衡配置,耗时约5 min,虚拟机实例复制、网络配置,耗时约 30~60 min。因此容器极大地提高了应用部署速度。

2.6 优劣势对比

容器是传统虚拟技术的补充,可以在基础设施优化、DevOps等领域发挥其独有的优势,随着容器技术和生态发展逐步成熟,行业应用越来越多,容器引擎、集群管理工具将快速发展。

2.6.1 容器技术的优势

容器不需要为每个应用分配单独的操作系统,容器资源利用率明显高于虚拟机。CPU利用率、内存读写效率、磁盘 I/O性能、网络 I/O性能、数据库读写效率均高于传统的虚拟机技术。另外Docker容器技术具有启动速度更快、快速部署、环境一致性和在线业务的弹性伸缩等特性。

2.6.2 容器技术的劣势

容器技术的国内管理平台等产品正在完善中,目前进行测试的产品尚未有大规模商用案例,容器管理平台厂家提供服务的方式和成本问题还未清晰,大规模的压力测试下的性能有待进一步验证,容器运行维护的经验不与虚拟机技术丰富。

2.7 应用场景

由于容器技术资源利用率高、部署速度快、资源在线动态伸缩以及对运维人员技术要求高等特点,容器技术应用场景主要有3种。

(1)短连接、无状态的应用系统,非常适合容器可以根据业务量在线动态伸缩的特点。

(2)Web服务器、应用服务器、 Restful API。

(3)开发、测试、新技术试验。

3 小结

Docker容器是一种操作系统级的轻量化虚拟化技术,与传统虚拟化技术相比,容器技术以容器引擎替代了传统虚拟化技术的用户操作系统和虚拟机管理程序,与宿主机共用操作系统内核。相比于传统虚拟化技术,Docker容器技术CPU、内存利用率更高,网络I/O性能更高,磁盘读写性能更好。尽管目前技术还不太成熟,没有太多商用产品,但是Docker容器技术依然是云计算技术发展的方向。

[1] 谢超群.Docker容器技术在高校数据中心的应用[J]. 贵阳学院学报 (自然科学版),2015(04).

[2] 王鹃,胡威,张雨菡,等. 基于Docker的可信容器[J]. 武汉大学学报(理学版),2017(02).

[3] 陈军相,李桂杰. 虚拟化及Docker轻量容器技术在高校图书馆中的应用[J]. 图书馆研究与工作,2016(05).

[4] 王健. Docker技术将引爆容器生态系统[J]. 软件和集成电路,2016(Z1).

[5] 杨鹏,马志程,彭博,等. 集成Docker容器虚拟化的OpenStack云计算平台[J]. 计算机工程,2017(02).

[6] 赵乐乐,黄刚,马越. 基于Docker的Hadoop平台架构研究[J].计算机技术与发展,2016(09).

[7] 张忠琳,黄炳良. 基于openstack云平台的docker应用[J]. 软件,2014(11).

[8] 彭勇,谢剑,童遥,等. 一种基于Docker的数据中心云平台实现方法及系统[J]. 中兴通讯技术,2017(02).

[9] 武志学. 云计算虚拟化技术的发展与趋势[J]. 计算机应用,2017(04).

[10] 伍阳. 基于Docker的虚拟化技术研究[J]. 信息技术,2016(01).

[11] 王亚玲,李春阳,崔蔚,等. 基于Docker的PaaS平台建设[J].计算机系统应用,2016(03).

[12] 卫彪,刘成龙,郭旭. 深入浅出Docker轻量级虚拟化[J]. 电子技术与软件工程,2016(10).

[13] 严丽云. 虚拟化与Docker容器之争[J]. 人民邮电,2015,8.

猜你喜欢
镜像虚拟化容器
容器倒置后压力压强如何变
镜像
难以置信的事情
基于OpenStack虚拟化网络管理平台的设计与实现
镜像
对基于Docker的虚拟化技术的几点探讨
H3C CAS 云计算管理平台上虚拟化安全防护的实现
存储虚拟化还有优势吗?
取米
镜像