互联网在各个领域的广泛应用,企业业务系统也在不断地进行变化,单体式传统架构很多的缺点就显现了出来,传统式架构高耦合还不易进行其容量扩展,很难对用户的各种新增的个性需求进行满足了。要进行单体架构进行水平方向扩展的问题优化和提升,微服务架构的技术就被提了出来。将应用业务至数据库层上进行了从上到下的垂直分割,将其分割成了一个个不同的服务单元,这些单元相互进行独立运行,不受其他服务单元的关联影响。还可以通过一些协议约定组成集群,共同协作完成一个具体的目标任务。这样的微服务架构技术既保证了单元业务的隐私,由对业务服务的高效进行了保证。由于微服务架构的独特优势,已经被越来越多了的企业系统进行了应用。
微服务架构还可以进行横向扩展,对传统不易扩展的劣势进行有效摒弃,对资源进行有效的利用。由于微服务架构是很多细小服务单元组成的,其维护成本必然会非常的高,为了解决其维护成本问题,就可以采用Docker容器技术对微服务的优势得到全部的发挥,实现高效的运行质量。基于Docker的微服务技术,不但可以对系统的启动速度及数据的读写速度进行大幅度的提升,对系统的扩展性和延伸性的瓶颈进行了突破。鉴于Docker容器技术的这两方面的优点,引起了很多专家学者的高度关注,对其进行了大量的研究工作,一些还涉及到了Docker容器关于安全方面的试验,另外一些进行了容器之间隔离问题的研究,但是与微服务进行跨网络部署相关的研究却不多。
我们都知道,隔离网络中鉴于安全的特殊要求,对互联网资源连接的权限进行了屏蔽,但是Docker镜像对在线下载的打包过程中会对一些软件包进行安装,所以对上面进行持续性的集成情况在屏蔽的网络中将无法使用。一般传统的跨网络单体项目进行部署的过程中,都利用可移动的硬盘进行拷贝的方式来解决。其程序是先将需要的运行程序进行打包,对其进行移动硬盘的复制,然后复制到其内网侧,最后对需要的运行程序进行安装。这样的单体架构和部署方式程序特别的繁琐和复杂,虽然可以克服但其效率比较低下。如果采用微服务技术的架构来进行部署,各个微服务就被分成了Docker镜像,并对Docker镜像进行架构的构建,随后将镜像打包成tar文件包,借助移动的硬盘进行复制进行内网并将其进行镜像还原,最后对tag镜像进行修改并送到其镜像仓库。这个过程中,微服务的模块很多,如果进行单体式服务的部署方式进行部署的话,对部署工作人员来说其工作量巨大,即使可以勉强完成也对高速更新换代的微服务系统无法满足要求。
这样的情况下,基于光闸的全自动化部署方式应运而生,光闸有单向传输的基本特性,外网端自动地把Docker镜像进行光闸为目标点的推送,并在其内网端将其自动还原为Docker镜像送到其仓库。这样的设计方案对微服务跨网时进行网络部署的烦恼进行很大程度地降低,同时规避了人为的失误。采用光闸技术的微服务架构和传统的移动硬盘复制的方法相比,这样的设计方案既对部署效率进行了提升,对系统的稳定性也同时进行了增强。
一、基本概念和原理
(一)内网
内网又称为局域网,它是相对互联网来讲的,生活中它是网络独立的一种存在方式。信息时代的来临的同时,黑客的相关破坏技术也进行了迅猛的发展,信息泄露的各种事件屡见不鲜,信息泄露的事件给一些单位和企业带来很多的损失。当下很多企业和机构组织自身都保存了很大的秘密文件,内网为了对这些秘密文件进行保护,对互联网进行了隔离。内网和互联网不一样,内网很封闭,与互联网上进行文件传输一般只能采用可移动磁盘和光盘刻录的复制来进行连通。由于内网和互联网进行文件传输繁琐的过程,一旦遇上依赖性的文件,还需要进行程序的离线安装,传输文件极为不便。
(二)光闸系统
光闸系统就是单项隔离光闸的系统,系统进行了旁路分光采集和镜像还原技术对单项数据的传输进行了实现,它是一种隔离性的装置,有很多的特性优势,主要表现为:带宽高、实时性高、安全度高三个方面,对信息数据之间的传输问题进行了有效地解决。单项光闸通常都是由内网传输的单元、分光的单元、外网的传输单元三个部分组成。其内网传输单元负责逻辑上和很高安全秘密及地内部网络进行连接,并形成物理上的外网隔离模式;外网传输单元负责逻辑上进行外部的专网形成连接;分光单向传输主要负责内网传输单元与外网传输单元两者之间的唯一传输通道,构成一定的逻辑安全途径。
(三)微服务架构
根据业务功能的需求进行了功能的构建的架构就是微服务,微服务集群可以进行协同细小的工作进行一批服务集合进行管理。微服务之间的服务是单独存在的,它拥有低耦合、易扩展、高度自治和内聚性高的特点,方便进行业务的升级及水平的扩展。每个独立的微服务都是一个单独的模块,对其可以进行独立的管理、开发和进行部署。微服务相互之间都拥有自身完整的运行资源。他们采用了轻量级技术的通信方式进行沟通,对相互独立的微服务进行了必要时的连接。
(四)存在的问题和不足
微服务的架构通过其业务的功能进行了自身的建设,其架构由很多的服务组成,很多的虚拟机以集群的方式进行运行,微服务也因此变得非常的复杂。在互联网环境中,微服务的部署都采用工具进行持续集成,获取代码形成Docker镜像,其中包含了执行此服务必须需要的库文件和应用文件,随后将此镜像更改为tag后到直接将镜像推送到仓库中,最后采用kubernetes平台进行拉取相应的镜像进行微服务的启动。对于跨网络系统安排部署时,线路被持续集成所打断,而传统方式只能采用将镜像打包成tar的方式,移动硬盘复制其镜像转移到内网中,然后将tar包进行还原成镜像,最后修改镜像tag并将镜像及时地推送到仓库中。因为微服务模块特别多,单纯采用这种与单体服务同样的部署方式进行部署,即使能够勉强完成部署任务,对网络的高速更新的需求为服务系统提出的要求。要解决问题,必须寻找出提升的方案来进行容器自动化部署非常重要。
二、自动化设计与实现
针对微服务在进行跨网络部署时存在的问题进行有效解决,采用容器自动化进行部署尤为重要。本文推出一种解决跨网部署的自动化设计方案。这种设计方案主要包含两个主要部分:进行对外网自动化的设计与内网自动化的设计。其外网部分一般采用jenkins自动把镜像文件进行打包并上传到外网的传输单元中;内网侧通常负责内网传输单元当中的文件下载到本地,及时推送到Docker仓库中。
(一)外网容器中自动化部署方案
其外网部分设计方案主要任务是生成Docker镜像的同时将镜像及时推送到外网光闸的传输单元的过程。此设计全程都会集成到jenkins之中进行获取仓库的代码,然后采用Dockerfile生成镜像文件并同时进行打包,最后经过ftp中shell脚本完成到外网传输单元的推送工作。其外网传输中进行自动化部署任务主要包含以下步骤:
(1)首先从代码仓库中获取到最新的代码至jekins中,然后采用代码中的Dockerfile文件格式形成Docker镜像,最后采用代码中的Dockerfile文件有形成了Docker镜像,3个转换几乎同时完成。
(2)将形成的镜像打包成tar的文件格式,等待进行下一步操作。
(3)因为光闸只可以支持ftp的格式,送到光闸之后在jenkins机器上进行ftp传输的shell脚本对应的放置到机器上。
(二)内网容器的自动化设计部署
进行内网自动化部署的设计是通过接收光闸上的Docker镜像tar文件包,将load出来的Docker镜像直接推送到其Docker仓库。由内网进行自动化传输主要包含5个步骤:
(1)采用FTP的方式将其连接到内网中的传输单元,随后获取光闸传输之后所对应的文件夹列表
(2)进行文件夹是否存在的判断,存在便执行第4步,如若不存则返回到步骤2中,继续对其文件夹进行监控;
(3)随后进行文件下载到本地,并采用文件load导出Docker镜像;
(4)进行镜像tag的修改,直接对Docker仓库进行推送,删除光闸上的镜像tar文件;
(5)最后进入步骤2中,继续对文件夹进行监控。
(三)自动化跨网络容器部署分析
为了证明跨网络容器进行自动化部署的运行效果,将微服务项目进行部署实验。对外网侧通过jekins配置方式,将镜像实时传输到光闸中;由于内网侧ftp监控的文件夹不能支持,所以创建了定时任务的方法,间隔 1分钟从内网传输单元上的新文件进行一次获取。实验中通过外网微服务项目采用这样的部署方式传输到专网,虽然项目中包含了七个Docker微服务器,采用该方案成功地进行了服务部署到专网的工作。实验证明,容器跨网络的自动化部署方案能安全高效地完成微服务部署工作,人力成本进行了有效降低。
三、结语
对容器跨网络部署的问题进行自动化部署的设计方案,实验证明了这种方案的有效性。这种设计能够节约人力成本并提高微服务部署的效率。本方案具有特别好的应用前景,对跨网络部署行业有很大的发展和参考的价值。