栏目编辑:梁丽雯 E-mail:liven_01@163
2019年·第10期
38
基于Docker的轻量化容器云平台
设计与实践
■ 中国人民银行重庆营业管理部 李 顺
摘要:
本文通过对容器技术进行研究,探索如何建设轻量化容器云平台。同时,结合开发测试的应用场景,研究轻量化容器云平台及其使用价值。最后,通过量化对比实验,实际分析基于Docker的容器云平台在资源占用、使用效率等方面的优势。实验结果显示,容器云平台具有资源占用少、使用效率高等特点。
关键词:
容器;开发测试;轻量化;Docker 作者简介: 李 顺(1987-),男,重庆涪陵人,软件工程硕士,工程师,供职于中国人民银行重庆营业管理部,信息技术主管,研究 方向:云计算、大数据、虚拟化。收稿日期: 2019-08-14
近年来,容器技术及相关应用受到了国内外越来越多的关注,研发和应用推广发展势头迅猛。在国外,容器技术已经形成了较成熟的生态圈;在国内,金融企业、互联网企业、IT企业积极投入对容器技术的研发和应用推广。人民银行重庆营业管理部(以下简称“重庆营管部”)紧跟技术前沿,结合省级数据中心实际情况,开展了容器技术的研究与实践。
一、容器技术
(一)容器技术介绍
容器是一种操作系统内核级虚拟化技术,通过对底层操作系统及应用环境的复用与封装,为上层应用软件提供一套可隔离运行、便于打包迁移的虚拟化运php轻量化网站管理系统
行环境。其具有运行启动快、资源占用少等特点。
(二)容器与虚拟机
容器与虚拟机都是一种计算资源虚拟化技术,旨在按需提供定制化的计算服务。但两种技术处于不同的虚拟层级,容器在操作系统层面进行虚拟化,提供独立的应用运行环境;虚拟机在硬件层面进行虚拟化,提供独立的虚拟化硬件环境。容器与虚拟机各有优劣,是两种相辅相成的技术。
二、容器技术的优势
(一)资源利用率高
相比物理机及传统虚拟机,容器无须运行冗余的操作系统,单个容器的空间可以压缩至几百以兆乃致
栏目编辑:梁丽雯 E-mail:liven_01@163
2019年·第10期
39
几十兆,有效提升了计算资源利用率。
(二)部署及恢复快
使用容器时可以利用镜像快速部署运行服务,实现业务的快速交付,缩短业务的上线周期,极大地方便运维人员的上线部署工作。
(三)提升开发效率
使用容器可以快速分配并搭建一致性的开发环境。基于应用程序镜像的版本化管理,可以实现同一套应用程序的多版本共存,尤其在某些组件多版本支持的情况下,通过容器技术可以轻松地支持该组件的多个版本。
三、容器云平台的技术架构
(一)轻量化架构
一个完善的规模化容器云平台包括容器引擎、编排调度、网络模块、存储模块、监控模块与日志模块等。其中,容器引擎、编排调度为基础模块。本次从研究及实际应用场景出发,设计了一个包含容器引擎、编排调度的轻量化容器云平台。
(二)技术选型
目前,容器生态蓬勃发展,产品众多。其中,容器引擎有Docker,Rkt,Lxc,OCI,Hyper等,编排调度有Kubernetes,Swarm,Mesos,Rancher等,各类产品各有
优劣。
本次设计从产品发展前景、运行稳定性、入门门槛等多方面考量,最终选定了基于Docker (容器引擎)
与Swarm (编排调度)的架构。Docker是目前业界应用最广泛、产品最成熟的容器引擎。在编排调度方面,现有Swarm与Kubernetes应用较多,其中,Swarm由Docker推出,与Docker高度集成,功能较简单,入门容易;Kubernetes由Google推出,功能全面,具有一定的入门成本。
(三)平台架构
平台由两部分组成——Swarm管理端和Docker 客户机,其中,Docker客户机可根据需要增减。每个
Docker客户机开放基于HTTP协议的Docker API,Swarm通过Docker API将各Docker客户机统一为一个集进行管理,平台架构如图1所示。
四、容器云平台在开发环境中的实践
人民银行省级数据中心运行于独立的网络之中,但容器云平台需要频繁连接互联网进行软件安装与升级,因此,重庆营管部科技处选定从互联网开发环境入手,开展容器云平台的应用实践。在传统的开发测试过程中,基于不同的应用、测试阶段以及版本,会搭建多套环境,如开发环境、功能测试环境、
非功能测试、
图1 轻量级容器云平台架构
栏目编辑:梁丽雯 E-mail:liven_01@163
2019年·第10期
40
用户测试测环境等,而使用容器云平台可以快速搭建这一系列环境。
(一)平台搭建
整个容器云平台搭建在VMWare虚拟化平台上。首先,创建3台虚拟机A,B,C,分别安装CentOS操作系统。其中,A,B两台作为Docker服务器,安装Docker 程序;C作为Swarm Manager,安装Swarm,用于管理Docker镜像调度。
(二)应用实践
实践过程中,选定正在进行的综合办公平台二期项目作为应用对象。该项目涉及多人同步开发及不同版本测试,为保存版本独立性,此前需创建多台虚拟机作为测试环境,而通过容器云平台,轻松实现了在
一台虚拟机上快速启停多个开发测试环境,无须进行虚拟机克隆等复杂操作。该实践快速实现了系统多版本开发测试,有效提升了开发效率。
(三)使用效益
实际应用效果显示,容器云平台有效提升了开发效率,节省了开发资源。为了进行数字化对比,重庆营管部设计了一组对照实验,通过VMWare虚拟机(对照组)和容器云平台(实验组)分别运行20个独立的应用服务。对照组通过建立20台CentOS虚拟机运行应用;实验组通过2台虚拟机上的Docker客户机建立20个容器运行应用。对照组与实验组分别运行于两台相同的物理服务器上,二者运行的应用服务完全一样,分别为5个Tomcat、5个(Nginx+PHP )、5个MySQL (数据100 M)、5个MongoDB (数据100 M)。通过测量对照组与实验组实际占用磁盘资源、内存资源(启动完成后无应用访问的情况下,半个小时内的平均内存使用)、启动时间(从物理机处于开机状态到25个应用完全启动)、拷贝时间(对对照组、实验组环境进行拷贝)进行统计分析,得出的数据见表1所列。
对照实验显示,运行相同的应用,容器云平台在资源占用及使用效率上明显优于虚拟化平台。在开发
测试场景下,具有较大的使用价值。
五、容器云平台的现状与展望
(一)容器云存在的问题
目前,容器技术处于高速发展阶段,各类新技术层出不穷,也为使用者带来了一些问题。
一是兼容性方面,由于版本迭代频繁,导致一些核心模块存在向下兼容问题;二是缺乏统一标准,从容器到编排等各层面都存在各类技术产品;三是安全性与稳定性问题,由于容器之间共享内存、内核,可能导致容器数据泄露、链式崩溃等问题。
(二)更高的运维要求
相较于物理机与虚拟机运维,容器技术有更多的新技术与新理念。这就对运维管理人员的技术水平提出了更高的要求,需要其不断学习和摸索新的技术。
(三)发展前景
从最初的摸索到现今的落地实践,容器技术已然成为当前云计算时代重要的组成,也承载着业界对下一代云计算技术变革的诉求。FTT
参考文献:
[1]汪恺,张功萱,周秀敏. 基于容器虚拟化技术研究[J]. 计算机技术与发展,2015(8):138-141.
[2]刘思尧,李强,李斌. 基于Docker技术的容器隔离性研究[J]. 软件,2015(4):110-113.
[3]张建,谢天钧. 基于Docker的平台即服务架构研究[J]. 信息技术与信息化,2014(10):131-135.
[4]伍阳. 基于Docker的虚拟化技术研究[J]. 信息技术,2016(1):121-123.
实验组
对照组磁盘资源(G)11.3121.4内存资源(M)721 3 018启动时间(秒)162531拷贝时间(秒)
168
2 145
表1 对照组与实验组数据
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论