摘要:Docker是Paa提供商开源的一个基于 LXC的应用容器引擎,让开发者可以将应用程序、依赖的运行库文件打包并移植到一个新的容器中,然后发布到任何系统为Linux 的机器上,也可以实现虚拟化解决方案。容器是完全沙箱机制的实现方式,任意容器之间不会有任何接口,具有安全访问资源的特性,而且容器的运行具有资源开销小,可以很容易地在机器和数据中心中运行。最重要的是Docker 容器不依赖于任何特定需求实现的编程语言、编程框架或已打包的系统。
关键词:openstack云平台;docker;应用
openstack 与Docker 作为云计算领域两个最热门的开源项目,其中openstack 提供了一个简化部署云平台的工具集,目标是提供虚拟计算和存储服务;Docker 则提供一个可以运行应用程序的解决方案,是一个构建在LXC 上的轻量级虚拟化容器。针对目前openstack 云平台创建的实例为虚拟机,占用宿主机大量的资源配额的问题。
一、OpenStack与Docker
OpenStack是一个开源云计算管理平台,由几个主要组件组合起来完成具体工作,该项目几乎支持所有类型云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补服务提供基础设施即服务(IaaS)的解决方案,为每个服务提供API以便进行集成。Docker是由PaaS提供商dotCloud提供的基于LXC的开源高级容器引擎,整个项目基于Go语言开发,并遵从Apache 2.0开源协议。Docker可在容器内部快速自动化部署应用,并可通过内核虚拟化技术(Namespaces及Cgroups等)提供容器资源隔离与安全保障。以现实世界中货物运输作类比,集装箱解决了各种型号、规格尺寸的货物用不同运输工具进行运输问题。发明Docker的初衷是将各种应用程序和其所依赖的运行环境打包成标准container/image,进而发布到不同平台上运行。Docker 需要解决的核心问题是利用LXC 来实现类似于虚拟机的功能,从而使用更加节省的硬件资源来给用户提供更多的可利用的资源。与VM 的工作原理不同的是LXC 并不是一套基于硬件虚拟化的方法,也就是无法归类到半虚拟化、部分虚拟化或者全虚拟化中的任意一个范畴,而是一个基于系统级的虚拟化方法。Image 在Docker 系统结构中只是一个只读的基础层,这里的层是指AUFS 的概念,Docker 使用了一种叫AUFS 的文件系统,这种文件系统可以一层一层地叠加修改当前使用的文件,最底下的文件系统是只读的镜像层,如果需要修改当前层的文件,AUFS 将会创建一个的可读可写的层,也就是容器层。使用AUFS 文件系统具有允许多个容器共享底层的只读文件系统,但可以同时启动多个可运行的容器。Docker具有以下优点:(1)更快速的交付和部署。对开发和运维人员而言,往往希望一次性创建或配置的应用程序可在任意地方正常运行。开发者可使用一个标准镜像构建一套开发容器,完成开发后,运维人员可直接使用该容器部署代码。Docker可快速创建容器,快速迭代应用程序,并使整个过程可视化,使团队中的其他成员更容易理解应用程序是如何创建和工作的。Docker容器很轻,容器启动时间为秒级,节约了大量开发、测试、部署时间。(2)更轻松迁移和扩展。Docker容器几乎可在任意平台上运行,包括物理机、虚拟机、公有云、个人电脑、服务器等。这种兼容性方便用户将应用程序从一 个平台直接迁移到另外一个平台。(3)管理更简单。使用Docker,只需局部修改,就可替代以往大量的更新工作。所有修改都以增量方式被分发和更新,从而实现自动化、高效管理。
二、基于openstack云平台的docker应用
1.物理资源层。物理资源层是底层基础,囊括了构成开发测试平台所需的各类硬件基础设施,主要包括计算、存储和网络等物理资源,其中,根据实际需求,计算资源用于提供x86、Power、安腾等多种技术架构混合的计算资源支撑;存储资源由各类存储设备及系统构成,提供文件、块、对象等多种类型存储资源支撑。
期刊文章分类查询,尽在期刊图书馆网络资源主要由交换机、路由器、防火墙以及负载均衡等网络设备构成,实现用户端到开发测试平台的访问控制和访问连接。
2.虚拟资源层。虚拟资源层通过计算虚拟化、存储虚拟化和网络虚拟化等一系列的虚拟化手段,将物理资源层的硬件资源虚拟化,构建完整的、可调配的虚拟资源池,在网络连通的基础上用户可以远程访问虚拟资源。其中计算虚拟化最为成熟,可以让一台服务器变成多台互相隔离的虚拟服务器,让CPU、内存、磁盘、I/O等变成可以动态管理的“资源池”,从而提高资源利用率。典型产品有闭源的Vmware的ESX和Microsoft Hyper-V以及开源的KVM和XEN。存储虚拟化和网络虚拟化目前于发展阶段,各厂商有各自的理解和技术实践。
3.资源调度层。资源调度层主要由可集成多种物理资源和虚拟资源接入适配器的资源调度管理系统构成。根据不同的需求和负载情况对物理资源和虚拟资源进行智能调度和自动化部署,实现资源管理、调配、回收等全过程管理,并达到系统各种资源的负载均衡。通过自动化手段,提高对资源的整体管理和调度能力,保证了平台的高可用性和良好的用户体验。目前比较热门的有开源的Openstack云管理平台,部署后可以提供完整的IaaS服务,同时提供公共应用接口API,业界主要厂商均支持与其集成对接。
4.资源服务层。资源服务层可直接面向开发者服务,为开发者直接生成所需编程语言构成的开发测试环境。目前比较流行的是容器技术,典型的有开源项目Docker,Docker 是一个基于LXC的容器引擎,利用轻量级虚拟化技术进行资源隔离,开发者可以将应用程序、依赖的运行库文件打包并移植到一个新的容器中,然后发布到任何系统为Linux的机器上。Docker运行启动快且资源开销小,向PaaS 提供了基础的资源隔离和标准化打包部署能力,因此利用Docker作为该层的构建较为高效简单。
5.统一管理层。统一管理层承担了提供整个IT物理资源和虚拟资源的全面有效管理、跟踪和控制,为日常运行维护提供准确的信息,并提供统一的资源监控、管理和调度,做到快速发现故障、自动部署、按需调度并提供研发资源性能、资源使用的统计分析、报表、汇总等方面的数据分析功能。
6.安全防护层。安全防护层用于保护企业信息的安全,确保开发测试平台
安全稳定运行,主要由一系列安全防护产品或系统构成。其中备份存储系统和容灾系统分别提供数据备份和系统容灾能力,确保数据安全;防病毒系统可以在虚拟化层进行病毒防护,随时监控和查杀病毒和恶意代码;身份认证和访问控制可以实现不同权限用户的访问控制,避免服务被非授权访问;准入控制可以保证只有通过认证的合法用户才可以正常访问平台资源;安全审计可以审计记录用户在网络上的访问行为;介质控制用来严格控制各种端口和外设的使用。
7.综合展示层。综合展示层包括用户门户和管理者门户组成。用户门户提供给用户一个申请服务、审批服务、开通服务、监控服务等自助服务平台,用户可以按需定制服务,通过相应的审批流程完成服务的开通。管理者门户提供给运维、安全和监控管理平台,主要功能可包括用户管理、服务管理、配置管理、资源池管理、服务计量和展现、监控与报表、日志管理等。
在实际应用时平台的部署方式应根据企业的规模、性质、投入能力等情况进行决策,如大中型企业,可以选择构建私有云平台,安全可控,但投入不菲;对于小微企业,则可以选择租用公有云服务构建自己的平台,灵活且投入较小,但不适宜涉及企业敏感信息。总而言之,云计算还处于高速发展阶段,我们不能定性的判断哪种形态的开发测试云平台的最好,只有选用最合适的才会对企业发展提供最大的帮助。
参考文献:
[1] 姜久雷.云计算环境下跨组织业务流程建模方法研究[D].东华大学,2017.
[2] 张建,谢天钧.基于Docker的平台即服务架构研究[J].信息技术与信息化,2017,10:131-134.
[3]马越,黄刚.基于Docker的应用软件虚拟化研究[J].软件,2015,03:10-14.
论文作者:袁慧,荀雨婷
论文发表刊物:《电力设备》2018年第21期
论文发表时间:2018/12/11
标签:资源论文; 容器论文; 平台论文; 开源论文; 应用程序论文; 系统论文; 用户论文; 《电力设备》2018年第21期论文;