云计算PaaS 平台在地震业务系统的应用研究
2021-03-24方伟华周蓝捷李文惠
方伟华 周蓝捷 李文惠
(厦门地震勘测研究中心,福建厦门 361021)
0 前言
当今I T 行业发展经历了传统数据中心、虚拟化数据中心、私有云、公共云四个阶段,中心已由传统数据中心升级为虚拟化数据中心,并且规模不断扩大,面对不断发展的业务发展需求,我们中心也将逐步建立自己的云计算数据中心。
云计算服务主要包括:(1)IaaS服务:即基础设施服务,云服务的最底层,实现IT资源灵活调度;(2)PaaS服务:提供软件部署平台,实现应用程序灵活打包;(3)SaaS服务:软件即服务,实现人机交互智能化,使机器更了解人类。
当前我中心业务手段主要包括流动地震监测、地震观测、地震探测等,随着地震业务不断增加,地震科技工作者经常要面对各种各样的业务系统的搭建工作,在这个过程中,我们经常会遇到以下几个方面的问题:
(1)业务系统搭建效率低,费时费力;(2)业务软件搭建门槛较高;(3)业务系统移值困难;(4)无法很好将地震业务人员与运维人员分离,无法让地震科技人员更专注自己业务。
随着云计算技术尤其是PaaS平台的发展,使以上这些问题迎刃而解,本文将采用Docker架构平台,根据地震相关业务特点,给出了相关业务软件定制流程,搭建地震业务系统自己的云计算PaaS服务平台。为地震行业数据中心建设提出了一些建设性意见与扩展模式研究思路。采用该方法,能够更好的优化地震数据中心生产环境与服务模式,提升地震科技工作者工作效率。
1 架构工具选择
1.1 Docker简介
Docker属于云计算中的PAAS服务范畴,它是一个开源的应用容器引擎,Docker是Docker.Lnc公司开源的容器引擎,代码寄存在Github上,采用于Go语言并遵从Apache 2.0协议开源。Docker是Linux容器的一种封装,提供简洁好用的容器使用接口。
Docker可以对应用程序与这个程序的依赖,打包在一个文件里面。运行这个程序文件,就会生成一个虚拟容器。程序运行在这个虚拟容器里,可以像在真实的物理机上运行一样。有了Docker,就不存在任何环境问题。也就是说,Docker的接口非常简单,用户可以像创建虚拟机一样,轻松地创建和使用容器,把自己的程序放入容器。容器也可能完成版本管理、复制、分享、修改等功能,就像管理虚拟机一样。
1.2 Docke优势
Docker容器与虚拟机相比,优势十分明显,主要有三大优势:轻量、高性能、便捷性。
快:与虚拟机相比,由于节省的虚拟层,它的运行时的性能获得更大的提升。
灵活:将应用和系统“容器化”,不添加额外的操作系统。
便宜:开源的,免费的,低成本的。
轻量:你会拥有足够的“操作系统”,仅需添加或减小镜像即可。
1.3 Docker产生的目的就是解决以下问题:
(1)复杂的环境部署管理:从多样式操作系统到各个中间件再到各种应用程序,一款应用能够成功使用,作为研究人员需要关心的技术层面太多,且无法管理,效率低下。Docker可以简化多种应用实例的工作部署,比如Web相关程序、数据库程序应用、Zabbix监控管理平台、集群备份程序等都可以打包成一个容器内进行部署。
然而,由“看袜”数钱数到手抽筋,绝非酒铺老板王嬷嬷能预料到的。那时,尚无“眼球经济”一说。但名人效应的道理,王嬷嬷并不陌生。加之,看客围观、起哄、架秧子,是“看热闹不嫌事大”。李肇《唐国史补》一书,载有王嬷嬷发迹经过,上“命高力士缢贵妃于佛堂前梨树下。马嵬店媪收得锦靿一只。相传过客每一借翫,必须百钱,前后获利极多,媪因至富”。
(2)云时代来临:亚马逊的成功,开发者将应用转移到云上,解决了硬件管理的问题,然而软件配置和管理的问题依然存在。Docker的产生能更好的帮助研发人员开阔思路,尝试新的软件管理的方法应对软件配置方面的问题。
(3)虚拟化技术的进化:然而无论是KVM还是Xen,对于Docker来说,都是在资源浪费,又难于管理与使用,更加轻量级大LX C,更加灵活和快速。
1.4 容器和虚拟机的区别:
一个容器中运行在原生Linux和共享主机内核中,它是一个运行单独的进程,不占用其它任何可执行文件的内存,使其更加轻量化,硬件效能有所提高。
二者相比之下,虚拟机是一个完整独立的运行操作系统,通过虚拟化管理程序访问主机资源,在应用程序与硬件之间已经多了一层,一般来说,虚拟化环境下,它比大多数应用程序需要的资源多,浪费也更大(如图1)。
图1 容器与虚拟机区别Fig.1 The difference between container and virtual machine
2 系统架构
2.1 Docker架构与技术流程
采用C/S架构进行架构,用户通过服务器到官方仓库,获取镜像、启用容器,服务端由一个进程进行守护,在这个过程中用户可以根据自己的业务特点定制自己的系统与软件静像(如图2)。
图2 系统架构图Fig.2 System architecture diagram
2.2 定制化业务——JOPENS打包流程
第一步:收集freeBSD系统容器静像(如图3)。
第二步:收集命令,安装JOPENS相关服务,主要包括openjdk、Mysql、JOPENS软件包与库、wildfly服务等,编写dockfile脚
图3 FreeBSD 容器静像库Fig.3 FreeBSD container still image library
图4 Jopens 命令集Fig.4 Jopens command set
图5 容器测试Fig.5 Container test
第三步:生成定制静像。
通过相关命令:docker container commit,docker build。
第四步:模拟测试docker镜像。
命令:Dccker run d p 8080:8080 jopens,通过一条简单命令即可快速开启打包系统,实现了开箱即用的功能(如图5)。
表1 Docker 与虚拟化各方面性能比较Tab.1 Performance comparison between docker and virtualization
第五步,提交至私有仓库,供使用者下载, Docker 可以不修改应用程序代码,不需要开发人员学习特定环境下的技术,就能够将现有的应用程序部署在其它机器上。
2.3 基于WEB界面管理方式
通过第三方工具,也可以方便的对容器库进行管理,方便后期维护与数据备份。
3 总结
(1)性能比较。Docker与传统模式各方式比较(见表1);
(2)云计算之PaaS服务是地震生产环境未来发展方向,有必要对中心原有的云计算环境进行扩充,来提升地震科学协同研究新环境;
(3)通过Docker容器的搭建与应用,可以更好的解决传统模式中存在地震业务系统软件快速打包的问题,使地震科技人员更专注于地震业务,提升工作人员工作效率;
(4)通过Docker容器主要提供以上三个功能:一是提供了打包式的环境属性:比如,连续集成的时候提供单元测试、本地测试他人的软件和架构环境。二是提供弹性的云资源服务:因为Docker容器可以随时开关,很适合动态的扩容。三是组建小型服务架构:通过多个容器,一台机器可以跑多个应用服务,因此在本机就可以模拟出多服务架构。