信息与电脑China Computer&Communication计算机工程应用技术
基于Docker的PaaS架构设计研究
师德清
(湖南软件职业学院,湖南 湘潭 411100)
摘 要:将Docker这一新的云计算技术与PaaS的技术特点、管理理念和服务理念相融合,不论是对构建PaaS系统,还是对PaaS应用的进一步拓展来说,都具有较高的参考价值。笔者以Web服务为应用背景,从基于Docker的PaaS整体架构入手,探讨提高PaaS系统效用和降低PaaS系统构建复杂度等相关问题。
关键词:Docker;PaaS;Web服务
中图分类号:TP311.52;TP393.09 文献标识码:A 文章编号:1003-9767(2017)08-035-02
Research on the Design of PaaS Architecture based on the Docker
Shi Deqing
Abstract: Combining Docker's new cloud computing technology with PaaS's technical characteristics, management philosophy
(Hunan Software Vocational Institute, Xiangtan Hunan 411100, China)
and service concept, it has a high reference value for both the construction of PaaS system and the further development of PaaS discusses the problems of improving the effectiveness of PaaS system and reducing the complexity of PaaS system construction.
Key words: Docker; PaaS; Web service
application. The author takes Web service as the application background and starts with the Docker based PaaS architecture, and
1 引言
云计算是近年来学术界和企业研究的热点。从服务模型的角度看,云计算可分为软件即服务(SaaS)、基础设施即服务(IaaS)和平台即服务(PaaS)。用户依托云基础设施对应用程序进行托管,可以最大程度缩短开发周期、使平台搭建工作更加便捷、有效降低运行维护成本。目前,大多数PaaS对硬件平台的依赖程度大,各个PaaS平台的应用标准不统一,同一个应用难以在不同平台之间进行迁移。
LXC(Linux Container)是一种共享Linux Kernel的操作系统级别的虚拟化解决方案,通过虚拟容器(Container)与宿主机(Host)之间共享内核来加快启动速度和减少内存消耗,虚拟化的磁盘IO和CPU性能接近裸机的性能,且优于Xen虚拟化。
Docker是PaaS提供商dotCloud提供的一个基于LXC的容器引擎,遵从Apache2.0协议开源,具有强大的资源隔离能力、标准化打包部署能力和轻量虚拟化、启动速度快、占用资源少等优点。
2 基于Docker的PaaS整体架构设计
根据PaaS的设计和服务理念,按照结构化思想分核心模块和管理模块设计PaaS架构。其中,架构的核心模块包括控制层和运行层,架构的管理模块包括相关的接入层、通用服务、平台监控和日志处理。实现架构中的具体应用及其相关依赖环境像集装箱一样可以整体打包、移植到任何支持Docker的环境中不加修改地部署和运行。PaaS架构设计模型如图1所示:
图1 Web服务中的PaaS架构设计模型
项目基金:湖南省教育厅科学研究项目(项目编号:15C0746)。
作者简介:师德清(1974-),男,内蒙古赤峰人,本科,讲师。研究方向:分布式计算。
— 35 —
计算机工程应用技术
2.1 控制层设计
信息与电脑China Computer&Communication2017年第8期
群,使用并发处理能力较强的Golang开发管理前台。
(2)采用Golang Beego框架和Nginx服务器实现Web服务的请求处理和调度。
控制层是平台的核心,负责整个平台的控制调度、镜像构建与存储。控制器负责协调平台各组件,实现协同运行。2.2 运行层设计
运行层对外提供各种Web服务,同时负责日志采集和容器运行情况检测。具体处理流程是:接入层发送请求给外显服务的对应容器,在控制层的调度下由对应的容器响应请求;日志采集组件将采集到的容器运行时日志传输给日志处理模块,为大数据分析和处理提供数据源;健康检查模块可以按照自动化脚本检测容器的运行状态,并实现与监控模块之间的信息传递。2.3 管理模块设计
管理模块主要实现接入层、通用服务、状态监控和日志处理等功能。
接入层响应用户服务请求,通过RESTFUL API将请求转发给平台控制层进行处理,路由给运行层后由运行层中的相应容器提供服务。
通用服务提供各种公共服务组件,比如数据缓存、消息响应、URL抓取等。公共服务组件的运营可以按云计算的方式实施按需计费。
状态监控实现应用的动态扩展,根据负载情况,结合自动化Dockerfile脚本,动态创建、删除服务容器、修复问题容器等。
日志处理实现日志存储、重建,为其他应用中的数据挖掘提供数据源。
5 结 语
结合Web服务应用实例,基于Docker这一当今研究的热点技术,构建运维便捷、易于迁移的PaaS参考架构,实现如下两个目标。
5.1 降低PaaS系统构建复杂度
由于PaaS涉及复杂的系统底层研发,如分布式计算技术、分布式存储技术、高精确度的负载均衡、无单点设计、在线代码调试、应用体检和数据迁移备份等,使得大部分PaaS系统的构建高度专业化,同时由于具有过多、使用复杂等缺点,制约了PaaS的普及。目前,Docker技术进一步成熟,依托Docker的设计理念和技术特点合理设计PaaS架构,可以有效降低构建复杂度。5.2 提高PaaS系统效用
目前,PaaS系统定制程度高,大部分PaaS提供商之间缺少一致的平台定义,偏重于选择自己支持的操作系统和中间件元素,导致“应用”的性能无法迁移、“应用”在不同领域之间无法迁移、PaaS系统效用低下。PaaS在国内至今没有形成一个大的市场,除了云服务提供商要发挥PaaS的优势及时弥补它的不足外,通过搭建灵活的可迁移式架构,可以有效提高PaaS系统效用。
参考文献
[1]李兆海,刘斌,巨震.第一本Docker书[M].人民邮电出版社,2015:205-225.
[2]杨保华,戴王剑,曹亚仑.Docker技术入门与实践[M].机械工业出版社,2015:3-15.
[3]李丽,杨新章,陆刚,何震苇.开源Paas平台初探[J].广东通信技术,2014(11):9-12.
[4]鞠春利,刘印锋.基于Docker的私有Paas系统构建[J].轻工科技,2014(10):74-76.
[5]张忠琳,黄炳良.基于openstack云平台的Docker应用[J].软件,2014,35(11):80-81,83.
[6]段忠祥.基于云计算的网络平台共享资源模型的建设[J].软件,2013,34(5):119-121.
3 Docker工作流在PaaS系统中的设计
在PaaS系统中设计Docker工作流,其核心工作就是规划Dockerfile文件的配置。配置文件用于描述镜像的构建过程,包括应用中的实例化、环境变量的设置、依赖软件的安装和启动等。自动化的配置文件构建镜像后通过push指令将镜像上传到镜像仓库。由于镜像已包含了具体应用、应用运行的相关环境,在新的宿主系统上不需要再进行安装依赖软件、配置环境变量等工作。
4 架构在提供Web服务应用中的实现
(1)开发环境的搭建和配置。开发环境拟建议采用开源的Debian作为服务器,分别部署为计算资源池群、管理集
— 36 —
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo3.com 版权所有 蜀ICP备2023022190号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务