2020-11-11
227
上传者:管理员
摘要:随着软件开发技术的飞速发展,以Docker容器、持续集成、自动编排等技术在微服务的开发和部署中被广泛应用。但是对一些专有的隔离的网络环境来说,由于安全需要禁止访问互联网,部署问题却是一个很大的挑战。为了解决这些隔离网络环境中部署的问题,本文提出了一种全自动的微服务跨网络部署的设计,采用光闸技术解决镜像文件的传输。实践证明,该方案能够有效传输Docker镜像文件,并自动化的发布到镜像仓库。相比于传统上基于硬盘复制镜像的方式,本方案提高了部署效率,增强了系统的稳定性。
加入收藏
随着互联网的快速发展,企业业务系统需求的不断变化,传统的单体架构存在高耦合,不易扩展等缺点,已经很难满足用户各种新增需求。为了解决单体架构在水平方向上的扩展问题,微服务架构应运而生。它把应用从业务到数据库层面自上而下垂直分割成多个不同的服务单元,这些业务单元之间既相互独立,也能够单独运行。各个服务单元通过约定的协议集成在一起,协同完成一个具体任务。如今越来越多的企业系统采用这种微服务体系架构。
微服务架构中,可以通过横向扩展方式来解决系统瓶颈问题[1],充分利用系统资源。但是微服务由于服务的细化必然会带来巨大的维护成本,为了解决这个问题,可以使用Docker容器技术来发挥微服务的优势,实现系统的高效运行。基于Docker的微服务,一方面可以提升系统的启动速度和数据读写速度,同时使系统具有了延伸性和扩展性[2]。正是由于Docker容器技术有这些优点,因此有很多学者和专家进行了大量的研究工作,有些涉及Docker安全方面,有些涉及容器之间的隔离研究,但是关于微服务跨网络部署的研究相对不多。
众所周知,在一些隔离网络中,其由于安全需要,通常屏蔽掉访问互联网资源的权限,而Docker镜像打包过程中需要在线下载安装一些软件包。因此上述的持续集成在该网络环境下没法使用。传统的跨网络单体项目部署中,一般采用可移动硬盘复制的方式[3,4]:首先将运行程序打包,复制到可移动硬盘,然后将文件复制到内网侧,安装运行该程序。对于单体架构来说,这种部署方式虽然麻烦,但是还是可以克服。当采用微服务方式部署时,各个微服务被打成Docker镜像,如果采用传统的部署方式,构建Docker镜像,然后将镜像打成tar包,接着移动硬盘复制镜像到内网,将tar包还原成镜像,修改镜像tag,将镜像推送到仓库。由于微服务模块众多,如果采用这种和单体服务相同的部署方式,对于部署人员简直是灾难,即使能够勉强完成部署,也很难适应高速迭代的微服务系统要求。
为此,本文提出了一种基于光闸的自动化部署方式,利用光闸单向传输特性,在外网端自动将Docker镜像推送到光闸,在内网端自动还原Docker镜像并推送至仓库。该方案能够极大降低微服务跨网络部署时的烦琐,减少人为失误,相比于传统的移动硬盘复制的方式,该方案提高了部署效率,增强了系统的稳定性。
1、基本概念和原理
1.1 内网
近年来,随着信息时代的到来,黑客相关技术也相应地发展迅猛,信息泄露的各类事件也时有发生,给很多企业和单位带来很大的损失。现阶段,很多企业、机构与组织都有很多的内部机密文件,这些文件必须保存在独有的内部网络来保障安全,被称为内部网络。和互联网不同,这些内部网络相对比较封闭,与互联网之间一般存在物理上的隔绝。因此一般内外网上文件的传输往往通过光盘刻录或者可移动硬盘进行复制。这一过程相当烦琐,如果文件或程序有其他的依赖,需要程序的离线安装等操作。
1.2 光闸系统
光闸系统也被称为单向隔离光闸系统,系统主要采用的是采用旁路分光采集还原技术实现单向数据传输的一种隔离装置,具有高带宽、高实时性、高安全性等,可以有效解决信息数据之间传输问题[4]。单向光闸一般由内网传输单元、外网传输单元和分光单向传输单元三部分组成。其中内网传输单元逻辑上与高安全密级的内部网络相连,物理上与外网隔离;外网传输单元逻辑上与外部专网连接;分光单向传输单元是内网传输单元和外网传输单元之间通信唯一的、逻辑安全的传输通道。
1.3 微服务架构
微服务是指根据业务功能构建,相互协同工作的小而自治的一批服务的集合,这些相互独立的服务协同组成整个功能系统[5]。微服务具有高内聚性、低耦合、易扩展性和高度自治性,易于业务升级和水平扩展。服务之间通过网络接口调用的方式进行通信,从而增强了服务之间的相对独立性,避免了紧耦合。每个单独的微服务都可以作为独立的模块,可以独立地进行开发、管理和部署。微服务架构中各个服务之间拥有自己完整的运行资源,之间相互独立,微服务之间采用轻量级的通信机制进行通信[6]。
1.4 存在的问题
在微服务架构中,一个微服务系统中可能有几十到上百的服务组成,需要提供多台服务器或者虚拟机,以几群的方式运行,因此微服务的部署更加复杂。在互联网环境下,微服务部署一般是通过持续集成工具[7],比如jenkins,可以统一部署的公共流程,首先拉取代码生成Docker镜像,镜像包含执行该服务所需要的应用程序和库文件,然后将镜像更改tag后推送到镜像仓库,最后通过kubernetes平台拉取相应镜像启动微服务。但是在跨网络系统部署时,持续集成的线路被打断,传统方式只能将镜像打成tar包,接着移动硬盘复制镜像到内网,将tar包还原成镜像,修改镜像tag,将镜像推送到仓库。由于微服务模块众多,如果采用这种和单体服务相同的部署方式,对于部署人员简直是灾难,就算能够勉强完成部署,也很难适应高速迭代的微服务系统要求。针对这个问题,寻找出一种方案来实现容器的自动化部署尤为迫切。
2、自动化设计与实现
针对微服务跨网络部署中存在的问题,实现容器自动化的部署越来越迫切。本文提出了一种解决该问题的自动化方案。该方案主要分成两个部分:外网自动化设计和内网的自动化设计。外网部分主要通过jenkins自动将镜像文件打包上传到外网传输单元;内网侧主要负责将内网传输单元的文件下载到本地并推送至Docker仓库。
2.1 外网容器自动化部署设计
外网部分的设计主要是生成Docker镜像并将镜像推送至外网光闸传输单元。该设计全程会集成到jenkins中,包括拉取仓库代码,根据Dockerfile生成镜像文件,打包镜像文件,通过ftp的shell脚本推送到外网传输单元。
外网传输自动化部署主要包括以下几个步骤:
(1)从代码仓库中拉取最新代码到jekins,根据代码中的Dockerfile文件生成Docker镜像。
(2)将镜像打包成tar文件。
(3)将文件ftp推送到光闸,因为光闸只支持ftp的方式,因此在jenkins机器上需要预先将ftp传输的shell脚本放置到机器上面。
2.2 内网容器自动化部署设计
内网自动化部署部分的设计主要是接收光闸上的Docker镜像tar包,将load出Docker镜像推送到Docker仓库。内网的自动化传输模型如图1所示。
内网传输自动化主要包括以下几个步骤:
(1)通过FTP方式连接到内网传输单元;
(2)获取光闸传输后文件夹对应的文件列表;
(3)判断文件夹是否有文件存在。若存在执行步骤4,若不存在返回到步骤2,继续监控文件夹;
(4)下载文件到本地;
(5)将文件load出Docker镜像;
(6)修改镜像tag,推送至Docker仓库;
(7)删除光闸上的镜像tar文件;
(8)进入步骤2,继续监控文件夹。
图1内网侧自动化设计模型
2.3 跨网络容器自动化部署运行效果与结果分析
为了进一步的验证跨网络容器自动化部署效果运行效果,对现有的微服务项目进行了部署实验。外网侧采用jekins配置的方式实现,实现镜像实时传输至光闸;内网侧由于ftp不支持文件夹的监控,因此采用创建定时任务的方式,没隔1分钟获取一下内网传输单元上是否有新文件产生。
实验中,将外网的一个微服务项目通过该方案部署到了专网,该项目包含七个Docker微服务,通过该方案成功地将服务部署到专网。实验表明,本文提出的容器跨网络自动化部署方案能够安全方便地完成微服务的部署,相比于人工部署的方法,极大地提高了效率,大大节约了人力成本。
3、结束语
本文针对容器跨网络部署中出现的问题提出了一种自动化部署的解决方案,并通过实验证明了该方案的有效性。该方案能够在很大程度上节约人力成本,提高微服务部署效率。这些都使得本方案具有很好应用前景,对于有相似的跨网络部署的场景有一定的参考意义。
参考文献:
[1]胡锦楠,朱峙成,刘佳玮,等.基于大数据的风电场风能资源及其利用情况评估[J].科技创新导报,2018,15(16):48-49.
[2]崔艳敏.基于Docker的数据库微服务系统设计分析[J].数字技术与应用,2020(2):38-39
[3]姚刚,王从镔,吴海莉.基于Docker技术的微服务架构探析[J].信息化技术建设,2020(4):127-128
[4]饶绪黎,林峰.大数据智能信息处理实践平台的设计研究[J].福建电脑,2020(5):13-17
[5]柴天佑,郑秉霖,胡毅,等.制造执行系统的研究现状和发展趋势[J].控制工程,2005(6):4-9
[6]严丽云,何震苇,杨新章.基于Kubernetes的容器化数据库及其集群方案[J].电信科学,2018,34(12):169-177.
[7]宋劼,程坚,陈昕.基于容器技术跨网部署应用在系统的探讨[J].论述,2018(12):250-251.
袁冬冬,姚伟,卞中昊.容器技术应用在跨网部署中的自动化研究[J].网络安全技术与应用,2020(11):19-20.
分享:
人工智能文学是指以人工智能程序作为文学创作主体,通过模拟人类文学创作的思维模式,实现文学作品的自动或半自动化的生成过程。它设置了“人工文学数据库搭建——机器智能数据分析——文学作品自动半自动生成”的基本创作模式,借助“自动写作”和“辅助写作”两种形式使得数字时代文学发生了全新的变革。
2025-05-05火灾是一种常见而严重的灾害,给人们的生命安全带来了巨大的威胁,造成了巨大的财产损失。在高楼建筑中发生的火灾,由于建筑高度、人员密集度以及安全疏散难度的增加,往往会导致更为严重的后果。近几年来,我国平均每年发生火灾约30万起,如何有效地监测和预防高楼火灾成为了当今社会亟待解决的问题。
2025-01-20湖泊水位是衡量一个地区水资源状况的重 要指标,对于保障区域供水安全、防洪减灾以及 生态环境保护等方面具有重要意义。 准确预测 湖泊水位的变化趋势,可为相关部门制定合理的 决策提供科学依据。 然而,由于湖泊水位的变化 受到复杂多变的自然和人为因素的影响,传统的 定量预测模型在精度和适应性方面面临诸多 挑战[1-3] 。
2024-12-27人工智能(Artificial Intelligence,AI)技术是公认最有可能改变未来世界的颠覆性技术。AI在军事领域有广阔的应用前景,国内外已将AI不断应用到情报分析处理、目标识别监视、作战辅助决策、网络安全防护以及无人作战系统等智能装备中,在能力和可用性方面取得了巨大的飞跃[1]。
2024-12-03数据安全风险的存在,不仅威胁到个人隐私权益,影响企业发展,甚至关系到国家安全和社会稳定。在这一背景下,强化数据安全措施,构建全面的数据安全防护体系,已经成为迫切需要。这需要政府、企业和个人共同努力,通过立法、技术创新及提高公众的数据安全意识等手段,共同构建一个更加安全、健康的信息社会。
2024-12-03随着遥感卫星和高空平台的快速发展,高空间分辨率遥感图像的应用也变得越来越普遍[1]。遥感影像的语义分割在地貌特征的像素级分类方面具有重要意义,该技术已经在许多工业级图像中得到广泛应用[2-4]。例如,环境灾害监测[5]、土地利用与土地覆盖制图[6-7]、农业资源管理[8]、滑坡识别[9]和交通管理[10-12]等。
2024-12-035G技术以其高速率、低时延、大连接的特点,为各行各业带来了前所未有的发展机遇,但同时也面临着基站选址与优化的巨大挑战[3–4]。因此,深入研究5G基站选址决策与优化问题,对于提升5G网络覆盖质量、优化资源配置、提高通信效率具有重要意义。
2024-12-03随着科学技术的进步,各种协作机械臂和工业机械臂越来越受欢迎.为提高机械臂的智能性和自主性,机械臂自主抓取一直是机器人领域的研究热点之一[1-2].传统的协作机械臂需要操作者具备相关知识,通过编程或拖拽指令实现机械臂的抓取操作[3-4].
2024-12-03在气象观测、工农业、航空航天、食品和药品储存等制造领域,对湿度和温度有着严格要求,因此,对这两个参数的检测变得尤为重要。温湿度传感器近年来得到了大力发展和应用。传统的电子式温湿度传感器易受电磁干扰,灵敏度低,响应时间长,限制了其性能和应用范围。
2024-12-03基于机器学习的网络入侵检测系统(NIDS可以提高检测的准确性和效率,并增加系统对新型威胁的适应能力,鉴于这一优势,本文将深入分析机器学习在NIDS中的应用及其效能,探讨如何利用这一先进技术来增强网络安全防御。
2024-12-03我要评论
期刊名称:计算技术与自动化
期刊人气:1272
主管单位:中华人民共和国教育部
主办单位:湖南大学
出版地方:湖南
专业分类:科技
国际刊号:1003-6199
国内刊号:43-1138/TP
邮发代号:42-277
创刊时间:1982年
发行周期:季刊
期刊开本:大16开
见刊时间:10-12个月
影响因子:1.079
影响因子:0.408
影响因子:0.260
影响因子:0.727
影响因子:0.489
您的论文已提交,我们会尽快联系您,请耐心等待!
你的密码已发送到您的邮箱,请查看!