基于Kubernetes的空中特种机分系统DevOps平台的设计与实现
这是一篇关于Kubernetes,Docker,DevOps,容器的论文, 主要内容为随着计算机技术的快速发展,越来越多的领域开始与计算机技术紧密结合。在现代战争中,空中特种机作为拥有空中作战指挥核心战略地位的机种,在空中打击链的各个环节中都发挥着重要作用。传统的空中特种机系统是以分系统为单位,包括雷达探测系统、电子侦察系统、数据处理系统、导航系统、敌我识别系统[1]等多套分系统。以分系统为基本单位,各分系统之间紧密结合,相互联系,构成了空中特种机系统。但是随着各个分系统功能的复杂度增加、系统间耦合度增强,当开发人员完成某分系统功能开发工作后,系统配置与环境的修改经常会对其他分系统的正常运行造成影响,而运维人员通常不了解代码内部结构,很难快速调整资源环境确保所有分系统稳定运行,这给运维人员的工作带来很大的麻烦,系统的更新换代因此变得越发缓慢。同时,各分系统与特定硬件资源的绑定导致资源的分配调度变得困难,资源利用率也大大降低。如今,随着容器技术与微服务概念的成熟,我们可以将各分系统分割为多个功能组件与服务,将各组件与服务打包成Docker镜像部署在Kubernetes集群中,以容器的形式独立运行并对外提供服务,这样可以达到空中特种机各分系统解耦的目的。由于容器中只包含应用程序与必要的运行资源,避免了资源浪费,系统资源利用率得以提高。为了增加开发人员、运维人员之间的联系,本文将设计并实现一个以Kubernetes为基础进行构建的DevOps(开发运维)平台,该平台对常用的容器、集群管理功能进行整合、封装,并提供简洁易用的接口,降低用户对Docker、Kubernetes等容器相关技术的学习成本。通过这些接口用户能够在任何系统环境下对新开发的空中特种机分系统组件进行包装,打包为Docker镜像后通过平台进行快捷部署,并对部署的组件(容器)进行实时监控管理,平台能自动对运行的容器进行维护与调度,并保证集群的负载均衡。同时,为了提高空中特种机分系统的开发效率,平台提供代码的持续集成功能,能够自动完成代码构建、编译、测试、部署等任务,减少大量重复枯燥的人工操作。本论文主要完成了以下几方面内容:(1)搭建私有镜像仓库,设计仓库管理接口。空中特种机分系统组件镜像开发完成后需要存放在私有镜像仓库中,供K8S集群随时调用部署,本文搭建镜像仓库并为其设计基本的CRUD接口,实现远端在线构建镜像文件的功能,优化了对镜像的操作速度,实时更新镜像信息。(2)集群监控管理。平台为空中特种机分系统运维人员提供监控、管理集群的操作接口,他们不需要掌握Kubernetes与Docker等容器技术的技术细节,从而降低了学习成本。通过平台提供的接口运维人员能够对将镜像仓库中的镜像部署到集群中,为其指定部署节点,设置可迁移节点,并按需分配资源占有量。同时通过平台提供的监控视图,运维人员能够实时掌握集群中各组件(容器)CPU、内存、网络I/O等资源的使用情况,根据监控信息对集群节点进行扩容缩容操作。(3)建立日志监控管理系统。平台能够收集各节点组件的实时日志信息,并提供日志的查询、删除等功能。当集群意外宕机,日志不会随之消失,平台能够对其进行持久化存储。(4)配置管理。通过平台,工作人员能够对集群中大规模组件(容器)的环境变量、配置文件进行统一管理、在线修改,配置修改完成提交后能够即时生效。(5)持续集成。开发人员将代码提交至代码仓库后,平台能够及时对该代码进行集成,将代码整合到主干代码仓库上,并对其进行自动化编译、构建、测试、部署等操作,有利于快速验证代码合理性,提高代码集成效率,加快空中特种机分系统组件版本的迭代速度,并减少运维人员工作量。(6)优化平台自动伸缩性能。Kubernetes提供的原生自动伸缩策略具有一定局限性,它在面对突发大规模并发访问时表现欠佳,本文对原生策略进行了优化。本文使用在微服务与并发方面表现良好的Golang进行开发,通过GRPC框架来提高平台数据传输效率,加快系统响应速度。由于所有组件都被封装为镜像并以容器的形式在集群中运行,开发环境与运行环境的差异能够被很好地屏蔽,一键部署、“即插即用”是平台的重要优势。1.0版本平台系统在试用过程中证实了其实用性,用户拥有良好的使用体验,它能够满足空中特种机分系统工作人员开发运维的基本需求。
软件工程教育云平台构建部署子系统和题库子系统的设计与实现
这是一篇关于DevOps,自动构建,Jenkins,GitLab,Elasticsearch的论文, 主要内容为随着信息技术的不断发展与普及,互联网正在从各个方面影响着人们的生活,改变着人们的生活方式。在教育方面,出现了许多优秀的产品,如MOOC,Coursera,牛客网等,学生和想要学习的社会人士都可以通过这些产品获取到自己需要的教育资源。但是,现有的教育产品并不能很好的满足软件工程课程的教学的需求,无法让学生对工程化有所体会。为了能够让学生了解并参与一个软件产品从设计到最终上线的整个流程,从而更好的体会软件工程的工程思维,学习DevOps的模式,我们决定开发软件工程教育云平台。软件工程教育云平台按照功能被划分为了五个子系统,分别是考试作业管理子系统,课程支持子系统,题库子系统,构建部署子系统和基础容器平台子系统。其中,考试作业管理子系统包含了考试管理,作业管理,小组管理功能;课程支持子系统包括了课程管理,文档作业管理,文档互评的功能。题库子系统包含了对单选题,多选题,判断题,填空题,主观题,文档题和代码题多种题型的管理与查询功能。构建部署子系统包括了基于DevOps的对代码作业的自动构建,部署,单元测试和功能测试;基础容器云平台子系统提供了与其他软件进行交互的接口。本文主要介绍了构建部署子系统和题库子系统的需求分析,概要设计,详细设计和实现。软件工程教育云平台采用前后端分离的开发方式,前端使用了Vue作为开发框架,后台使用了SpringBoot框架,数据库使用MySql和Elasticsearch,并使用了Spring Data JPA实现后台对数据库的访问。对于本文所述的构建部署子系统,在实现自动构建,部署,单元测试与功能测试的功能的过程中,还结合了Jenkins,Docker,GitLab,Nexus等第三方软件,最终实现了构建部署子系统的功能。本项目已上线并投入使用一年有余,主要用于软件工程专业课程的教学中,运行情况稳定,满足老师与学生的基本需求,用户反馈良好。
H公司软件开发项目的质量管理研究
这是一篇关于DevOps,软件质量管理,软件项目开发,项目管理的论文, 主要内容为软件开发项目的质量管理一直是软件工程中非常重要的一环,是企业在软件行业中保持持续竞争力的有力保证。企业为了满足市场需求的不断变化,大力提升软件开发效率已成为一种趋势,然而在这个过程中,也带来了很多管理方面的问题,尤其是质量控制困难,快速开发可能导致开发过程中的测试和质量控制流程被忽略,导致软件的质量不稳定和不可靠。随着万物互联时代的到来,各行各业更加离不开软件,其质量的重要性更加凸显,稍有差池就可能牵一发而动全身,甚至导致不可挽回的重大故障。软件开发项目传统的质量管理主要依赖于软件测试,通过线性单一的测试来确定软件是否符合规范、是否满足客户需求。然而,随着软件行业的发展,传统软件项目的质量管理越来越难以应对频繁变更的需求,软件测试和交付周期之间的矛盾日益加剧。一方面,如果测试不够充分,交付的软件可能存在较多的缺陷和质量问题,对客户体验和公司声誉产生负面影响;另一方面,如果测试过于严格和冗长,会延长交付周期,增加开发成本,错失市场机会。为了解决这个问题,本论文以H公司软件开发项目的质量管理为研究主题,首先对国内外软件项目质量管理等研究和理论知识进行了认真的研究和梳理,为后文问题的分析和解决提供理论依据。其次,通过调查问卷收集H公司目前存在的软件项目质量管理问题,对H公司现有软件项目质量管理进行了深入的研究和分析。采用因果分析法对产生问题的根本因素进行识别,通过层次分析法对因素进行排序以确定改进方向,最后基于Dev Ops思想体系,设计了适合H公司的软件质量管理改进方案及保障措施,开发了一系列有效的质量管理工具和流程,使公司在确保交付周期的同时带来更高的软件质量。本论文的研究表明,传统的质量管理模式已经无法满足当前软件开发项目的快速变化需求和交付周期之间的矛盾。通过以H公司软件开发项目为案例,本研究提出了一种适应快速变化需求的质量管理改进方案和保障措施。实施这些方案和措施将有效提高软件开发项目的质量,并确保项目按时交付。此外,本研究的成果为其他企业在类似情境下改善质量管理提供了有益的借鉴和参考。综上所述,本论文的研究结果对于提升软件开发项目的质量和满足快速变化的需求具有重要意义,有助于企业在竞争激烈的市场环境中获得竞争优势并促进其可持续发展。
基于容器引擎的农产品电商云平台设计与实现
这是一篇关于云计算,Docker容器引擎,农产品电商,云平台,DevOps的论文, 主要内容为随着数字农业的蓬勃发展,云计算技术已经是服务新型农业信息的中坚力量,如今已在农业生产、供应链和销售过程中得到大量应用,例如智慧农业、农业信息化等,所提供的功能也在不断地完善。当下农业改革不断深入,“最后一公里”逐步打通,农产品电子商务平台已经成为了农业产业升级的重要手段。但是随着接入终端和业务量的迅速上升,业务性密集计算需求在传统虚拟机架构的农产品电商云平台上无法得到充分满足。针对这一问题,本文借助以Docker容器为代表的云计算技术,对实习单位的农产品电商云平台进行重构。以后期系统扩展、服务运行为出发点,通过需求分析与设计,实现了一个可移植性、灵活性较强的基于容器引擎的农产品电商云平台。主要工作内容如下:1、基于容器引擎的农产品电商云平台架构设计。对主节点、从节点和应用进行高可用设计,实现了整个集群的高可用性,保障了业务的连续性。同时对云平台数据库进行了设计与优化,并完成了集群管理功能和应用管理功能的设计,有利于对云平台集群节点扩容缩容和应用伸缩的控制,更好地满足高并发访问、负载均衡等场景的需求。2、基于持续集成的应用自动化部署模型构建。从应用构建、部署、监控、性能四个方面对应用程序提供支持,减少了传统应用开发模式的升级和维护成本,加速了应用程序开发和部署的效率,提高了平台的Dev Ops文化。通过c Advisor、Prometheus等开源监控技术,构建了云平台资源监控功能,能够实时监控云平台集群的运行状态和资源使用情况,通过可视化面板迅速直观地发现异常,并提供报警功能,主动通知到用户,为集群资源管理、运维排障提供了决策辅助。3、基于可插拔的动态调度组件设计及应用。针对原生调度策略没有充分考虑资源的动态更新,对其重新进行了优化。通过云平台资源监控功能监控节点资源的使用情况来进行动态调度,经过调度性能测试对比,检验了动态调度的性能及其可靠性,在一定程度上提高了资源利用率。同时考虑到平台有将业务与特定节点进行强制绑定的特殊需求,结合标签管理实现了定向调度功能。动态调度和定向调度两种调度方式可以配合原生的调度方法互补使用,大大满足了云平台容器调度的普适性。
基于知识图谱的智能运维系统
这是一篇关于知识图谱,智能运维,DevOps的论文, 主要内容为智能运维(Artificial Intelligence for IT Operations,AIOps)是人工智能快速发展的产物,也是人工智能在运维领域的应用,其目的是用机器学习算法从运维大数据中自动学习运维规则和模式,并在自动化运维的基础上增加自动决策大脑。目前的智能运维通过算法能够实现识别故障类型、根因分析以及业务流量预测等功能,但缺少推理机制,包括逻辑推理和不确定性推理,无法根据单点故障预测其它故障发生的概率以及发生故障的具体业务。本文引入知识图谱(Knowledge Graph,KG)技术来解决智能运维中的逻辑推理问题,并在知识图谱的不确定性推理方面采用了贝叶斯网络。知识图谱可以视为大规模的语义网络(Semantic Networks),它以复杂的图结构展现,提供了高效的计算和推理能力。本文主要研究使用OWL(Web Ontology Language)对运维资源类和事件类进行本体建模,并结合Dev Ops(Development And Operations)相关工具自动从资源管理配置数据库中抽取资源类实体和关系,构建资源拓扑图。同时使用大数据处理和机器学习对告警日志进行聚类和识别后得到的运维事件,由事件发生的时间顺序建立事件的因果关系,构造故障事件模型;并通过标记事件之间的条件概率,把事件类知识图谱转换成贝叶斯网络;使用贝叶斯网络循环信念传播算法,计算故障模型中各事件发生的边缘概率,结合事件关系可以分析事件发生的根因,并结合业务拓扑图可以预测业务中的某个故障发生的概率。在故障发生后根据不同的故障类型调用预先定制的自动化脚本实现故障的自愈,从而实现智能运维闭环。本文提出了一种以知识图谱为基础的智能运维系统架构,并构建了运维知识图谱本体,实现了实体和关系的自动识别。采用Rust语言开发了基于知识图谱的智能运维系统原型,实现了业务拓扑查询、业务依赖查询,故障根因分析以及故障自愈等功能。经过测试能够根据业务故障告警信息准确的推测出故障根因并调用自动化脚本进行故障自愈。
基于DevOps的A公司软件项目过程管理优化研究
这是一篇关于软件开发,DevOps,DevSecOps,项目过程管理的论文, 主要内容为在百年变局与世纪疫情交织的时刻,中国软件产业在疫情期间经历了一定的冲击,但整体上表现出了强大的适应能力和反应速度,疫情促进我国软件公司的高速、稳定、可持续的成长,也为我国软件公司的经营连续性与成长性提出了很高的要求。面对这些新的要求,企业除了要优化自己的软件,同时还需要加强管理能力提升交付率。为了应对不断变化的业务需求和技术发展,企业纷纷采用敏捷的方法对研发管理流程进行优化,作为敏捷开发的实践,DevOps也在演进变化,以此提高企业设计、生产、发布和维护高质量软件解决方案的能力本论文以提出、研究和解决问题为主线。首先,通过内部调查问卷发现A公司基于DevOps的项目过程管理的问题,对问题进行分析总结,使用帕累托图分析各个原因占比并得出根本原因,即缺乏有效的需求变更管理流程、研发管理工具不完善、缺少安全质量管理和缺乏业务设计文档管理。其次,针对上述根因结合A公司研发特点提出解决方案,对CMMI中的过程管理过程域和测试过程域进行剪裁,得出DevOps流程优化方案:在现有流程中引入需求变更管理、缺陷管理;在DevOps流程中融入DevSecOps工具进行安全能力实践,提高开发人员安全意识;建立组织级软件研发规范和技能业务培训体系,帮助开发人员快速掌握项目现状。最后收集优化方案实施前后的项目数据进行对比分析,通过优化效果数据评估得出优化方案的可行性和有效性。本文通过总结A公司的产品开发技术和产品开发要求特征,对CMMI、DevOps和DevSecOps进行了深入的分析,帮助A公司改善基于DevOps的项目过程管理流程,形成一个可以实现快速迭代安全交付的过程管理体系,为同类型企业提供新的优化思路,具有一定的参考价值。
DevOps云平台相关技术研究与实现
这是一篇关于DevOps,Kubernetes,弹性伸缩,预测模型的论文, 主要内容为随着互联网行业的快速发展,软件频繁的交互换代使得开发、运维工作任务繁重,业内通过实现运维自动化解决问题。DevOps(Development和Operations的组合)的思想就是强调运维工作的自动化,以统一环境的形式实现运维自动化,从而缓解运维和开发的压力。容器技术可以保证环境的一致性,是实现DevOps的最优选择。在容器技术中,以Docker和Kubernetes的组合实现运维自动化的方式成为各大企业部署业务的首选方式。Kubernetes内置的弹性伸缩策略采用基于阈值的弹性伸缩,通过监测业务的资源指标,与阈值对比,从而实现伸缩,属于响应式伸缩。弹性伸缩分为扩容和缩容两个阶段。在扩容阶段使用响应式伸缩,容易造成资源浪费、响应不及时的问题,若通过提前预测未来阈值,提前进行伸缩,这种预测式伸缩则可以规避响应不及时的问题,现有的预测模型多采用传统的算法预测负载,预测精度不高;在缩容阶段采用响应式伸缩不会出现响应不及时的问题,但是缩容时选择删除pod的因素考虑并不全面,集群的负载均衡状态可能因此受到影响,除了原有的状态优先缩容规则外,还应考虑加入集群负载状态的因素。基于以上分析,本文针对Kubernetes内置的弹性伸缩策略展开研究,在此基础上设计实现一个DevOps云平台。主要工作如下:1.为进一步提升负载预测的精度,提出一种混合多步预测模型SSA-Bi LG,首先将初始数据经过奇异谱分析(SSA)后分解成多个趋势分量,接着设计了双向长短神经网络(Bi LSTM)和双向门控循环单元(Bi GRU)的自动编码器网络结构,最后将多个趋势分量分别输入到相应的自动编码器中进行预测,将各预测值求和得到预测结果。在公开数据集上进行对比实验,实验结果表明SSA-Bi LG能够进一步提升预测精度。2.为优化弹性伸缩扩缩容阶段的性能,防止资源浪费、响应不及时等问题,提出一种优化的弹性伸缩策略SHPA,分别对扩容和缩容阶段进行设计和实现。在扩容阶段,使用预测式扩容代替响应式扩容,包括三部分:数据采集、负载预测以及扩容优化,其中负载预测的模型采用SSA-Bi LG。在缩容阶段,根据原有的状态优先缩容策略,设计加入负载均衡因素,优化缩容后集群的负载均衡状态。接着对扩容和缩容两阶段分别进行实验,实验表明SHPA能够解决资源浪费、响应不及时等问题。3.以前述研究为基础,结合某公司“基于Kubernetes的DevOps云平台”项目背景,设计并实现一个DevOps云平台,Kubernetes采用SHPA管理伸缩,实现运维自动化。平台按照软件工程开发规范进行设计和实现。首先对云平台进行需求分析,拟解决代码冗余、运维困难以及异常定位不及时的问题,然后根据需求分析进行总体架构设计以及数据库设计,架构设计包括技术架构和功能架构;功能架构包括三个模块:代码生成模块、项目与应用管理模块以及日志告警模块;其次进行详细设计以及实现,最后对云平台进行黑盒测试、性能测试以及兼容性测试,测试结果满足上线要求。云平台已在公司线上服务器部署运行一年,功能正常,响应速度快,兼容性良好。
DevOps云平台相关技术研究与实现
这是一篇关于DevOps,Kubernetes,弹性伸缩,预测模型的论文, 主要内容为随着互联网行业的快速发展,软件频繁的交互换代使得开发、运维工作任务繁重,业内通过实现运维自动化解决问题。DevOps(Development和Operations的组合)的思想就是强调运维工作的自动化,以统一环境的形式实现运维自动化,从而缓解运维和开发的压力。容器技术可以保证环境的一致性,是实现DevOps的最优选择。在容器技术中,以Docker和Kubernetes的组合实现运维自动化的方式成为各大企业部署业务的首选方式。Kubernetes内置的弹性伸缩策略采用基于阈值的弹性伸缩,通过监测业务的资源指标,与阈值对比,从而实现伸缩,属于响应式伸缩。弹性伸缩分为扩容和缩容两个阶段。在扩容阶段使用响应式伸缩,容易造成资源浪费、响应不及时的问题,若通过提前预测未来阈值,提前进行伸缩,这种预测式伸缩则可以规避响应不及时的问题,现有的预测模型多采用传统的算法预测负载,预测精度不高;在缩容阶段采用响应式伸缩不会出现响应不及时的问题,但是缩容时选择删除pod的因素考虑并不全面,集群的负载均衡状态可能因此受到影响,除了原有的状态优先缩容规则外,还应考虑加入集群负载状态的因素。基于以上分析,本文针对Kubernetes内置的弹性伸缩策略展开研究,在此基础上设计实现一个DevOps云平台。主要工作如下:1.为进一步提升负载预测的精度,提出一种混合多步预测模型SSA-Bi LG,首先将初始数据经过奇异谱分析(SSA)后分解成多个趋势分量,接着设计了双向长短神经网络(Bi LSTM)和双向门控循环单元(Bi GRU)的自动编码器网络结构,最后将多个趋势分量分别输入到相应的自动编码器中进行预测,将各预测值求和得到预测结果。在公开数据集上进行对比实验,实验结果表明SSA-Bi LG能够进一步提升预测精度。2.为优化弹性伸缩扩缩容阶段的性能,防止资源浪费、响应不及时等问题,提出一种优化的弹性伸缩策略SHPA,分别对扩容和缩容阶段进行设计和实现。在扩容阶段,使用预测式扩容代替响应式扩容,包括三部分:数据采集、负载预测以及扩容优化,其中负载预测的模型采用SSA-Bi LG。在缩容阶段,根据原有的状态优先缩容策略,设计加入负载均衡因素,优化缩容后集群的负载均衡状态。接着对扩容和缩容两阶段分别进行实验,实验表明SHPA能够解决资源浪费、响应不及时等问题。3.以前述研究为基础,结合某公司“基于Kubernetes的DevOps云平台”项目背景,设计并实现一个DevOps云平台,Kubernetes采用SHPA管理伸缩,实现运维自动化。平台按照软件工程开发规范进行设计和实现。首先对云平台进行需求分析,拟解决代码冗余、运维困难以及异常定位不及时的问题,然后根据需求分析进行总体架构设计以及数据库设计,架构设计包括技术架构和功能架构;功能架构包括三个模块:代码生成模块、项目与应用管理模块以及日志告警模块;其次进行详细设计以及实现,最后对云平台进行黑盒测试、性能测试以及兼容性测试,测试结果满足上线要求。云平台已在公司线上服务器部署运行一年,功能正常,响应速度快,兼容性良好。
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计工坊 ,原文地址:https://bishedaima.com/lunwen/46452.html