基于微服务的网络功能虚拟化编排架构重构与优化
这是一篇关于NFVO,微服务,负载预测,注意力机制,弹性伸缩的论文, 主要内容为随着网络技术的发展,网络的规模越来越大,同时对于灵活性的需求也愈发增加。网络功能虚拟化是网络架构发展的新方向,网络功能虚拟化编排器是其中的重要组成部分,负责编排、运维等基础性工作。本文对开源网络功能虚拟化编排器项目OPEN-O进行调研,发现其现有架构存在的问题。针对架构短板,设计实现了基于Spring Cloud微服务框架的重构方案。为了充分发挥微服务架构的优势,通常将微服务以容器的形式部署在服务器上,并借助容器编排系统管理微服务容器,通过调整微服务副本数实现弹性伸缩。本文分析了当前最为流行的容器编排系统Kubernetes的弹性伸缩原理,是基于阂值的响应式伸缩。为了提高系统性能,增强服务稳定性,本文对Kubernetes进行了增强,设计实现了基于负载预测的弹性伸缩模型。同时针对现有负载预测算法所存在的不足,文章提出了基于递归神经网络和多级注意力的负载预测算法模型RNNDA,算法综合考虑了CPU、内存、磁盘和网络收发等多种因素对负载的影响,并加入了自注意力和时域注意力机制,做到了消除噪声和学习到不同时刻数据对预测结果的重要性。经过测试,验证了相对于现有的负载预测算法,RNNDA具有更好的性能。本文通过对网络功能虚拟化编排器进行微服务化重构,设计RNNDA负载预测算法,并为Kubernetes设计并实现了基于RNNDA算法进行负载预测的弹性伸缩功能,使扩容行为根据预测值提前进行,避免了因为扩容过程的时延导致资源不足,从而发生服务质量下降的情况,增强了系统对外提供服务的质量与稳定性。
组合预测式容器弹性伸缩方案的研究与实现
这是一篇关于容器,监控,弹性伸缩,日志服务,组合预测算法的论文, 主要内容为随着云计算技术的进步和容器技术的快速发展,微服务架构的概念逐渐在业界流行起来,越来越多的微服务应用被部署到容器环境中。微服务的主要目的在于通过将一个大的功能模块分解为多个可单独运行的服务以降低功能之间的耦合度。运用容器技术将微服务及其运行环境进行统一打包处理,可以很好的降低平台的运维成本和资源成本,但这同时也给容器平台的管理带来了新的挑战。由于容器规模的扩大,平台的监控对象从单个服务应用变为容器以及在容器中运行的服务应用,这使容器平台的监控管理变得更加复杂。再者,由于在容器中运行的服务各不相同,对资源的需求量也不一致,因此如何对资源进行合理分配将是急需解决的一大难题。此外,由于各服务产生的日志数据格式多样且数据量呈指数级增长,如何对这些日志数据进行统一管理又将成为另一难题。针对这一系列问题,论文从以下三方面进行深入研究:第一,在spring mvc架构的基础上,本文应用prometheus技术、cAdvisor技术、flume技术实现对容器平台的性能监控和日志数据的统一管理功能。第二,针对容器平台的资源合理分配问题,对现有的响应式弹性伸缩方案和预测式弹性伸缩方案进行深入研究后提出了基于组合预测模型的容器弹性伸缩方案。结合ARIMA模型和SVM模型在短期时间序列预测上面的优点,设计了一种基于ARIMA和SVM的组合预测算法模型。在监控服务的基础上,将容器的性能数据作为数据源进行多次训练实验,相对于现有的预测算法模型而言,组合预测算法的准确率提高了近10个百分点,其准确率可达91.95%,这为实现预测式容器弹性伸缩提供了有力的判定条件。第三,结合监控服务提供的数据源和训练好的组合预测算法模型,设计并实现了预测式弹性伸缩功能。将监控服务、日志服务以及弹性伸缩服务部署到容器环境中进行测试。结果显示,相对于响应式弹性伸缩方案和基于ARIMA模型和SVM模型的预测式弹性伸缩方案而言,本文提出的组合预测式弹性伸缩方案在资源的合理利用上表现更优。此外,本文设计的监控服务、日志服务也很好的解决了当前容器平台面临的不易监控、信息分散的问题。这充分证明了本课题研究的理论意义和实用价值。
基于微服务的5G核心网管理与编排技术研究
这是一篇关于微服务架构,核心网,管理与编排,弹性伸缩,自动控制的论文, 主要内容为5G赋能千行百业,成为数字经济的新引擎。因此,与传统移动通信系统不同,5G将面对多种多样的应用场景,满足各类垂直行业迥异的性能需求。这对5G核心网的管理与编排(Management and Orchestration,MANO)提出了挑战。本文旨在设计与实现基于微服务的5G核心网管理与编排架构,并在其基础上实现对于5G核心网资源的弹性伸缩,从而按需部署5G核心网并提高资源利用率。本文的主要研究内容如下:(1)本文在5G核心网架构中引入微服务化的管理与编排面,实现了多种应用场景下5G核心网的按需部署。本文首先参考网络功能虚拟化(Network Function Virtualization,NFV)架构设计了包含应用面和管理与编排面的5G核心网系统架构,并提出基于微服务架构重构管理与编排面。其次,本文设计并实现了管理与编排面中的各个网络功能,并针对5G核心网生命周期的多个阶段设计了各个网络功能之间的调用流程,从而实现5G核心网实例的创建、实例化、扩缩容、终止及删除。最后,搭建实验平台,并对基于微服务的5G核心网管理与编排架构进行了功能验证以及性能测试。实验结果表明微服务化的管理与编排技术,具备较好的资源利用率和容灾能力。(2)本文对5G核心网管理与编排过程中的扩缩容过程进行了研究。针对移动通信运营商在5G核心网面对负载波动时如何动态调整资源分配这一问题,设计了一种水平伸缩与垂直伸缩结合的5G核心网弹性伸缩器。该弹性伸缩器设计基于自动控制理论,支持水平伸缩器和垂直伸缩器的同时运行,结合了水平伸缩范围广和垂直伸缩精度高的优点,并加入了负载预测机制以保证扩缩容的及时性。本文首先对弹性伸缩器的各个模块进行了详细设计,并对弹性伸缩器参数设置的合理范围进行了推导,并通过仿真给出了较为合理的参数配置。最后通过仿真验证了本文提出的弹性伸缩器的性能,仿真结果表明本文设计的弹性伸缩器相比于Kubernetes的水平Pod自动伸缩器(Horizontal Pod Autoscaler,HPA)具备更高的资源利用率。
面向微服务部署优化的动态Pod伸缩调度平台设计与实现
这是一篇关于微服务,弹性伸缩,Kubernetes,Pod的论文, 主要内容为信息技术发展迅速,技术创新不断涌现,各行各业面临着业务需求增加所带来的新挑战,这导致软件系统日益复杂、业务流程繁琐和管理运维成本高等问题。在此背景下,微服务的出现解决了系统的运维问题、降低了复杂度、拓展了相关业务范围。然而,政府数字化转型和企业业务上云的快速发展,使得响应式的资源调度容易产生滞后性和不确定性,出现资源利用率低、负载不均衡等问题,这既要求满足在线、持续运行微服务来保障关键业务,又要求在保持高可用性的同时保证资源的最优利用,这就需要对微服务实现弹性伸缩和柔性部署,以提供更加高效的管理。针对上述问题,本文设计并实现一个基于微服务负载和性能需求的动态Pod伸缩调度平台,通过负载监控和预测对Pod数量进行动态调整,从而实现对微服务的弹性伸缩和柔性部署,为用户微服务提供高可用、高QoS的运行环境。本文基于“平台+服务”的设计思路,提供了微服务容器化部署、负载监控与预测、Pod弹性伸缩和节点信息四大功能模块。具体工作如下:第一,利用Helm包管理工具实现微服务的容器化部署,对用户微服务进行封装,将应用和服务通过打包的方式移植到容器中,以此来实现虚拟化和应用的柔性部署与管理,主要包括容器模板制作、安装和容器模板实例管理,简化了应用部署版本控制、删除更新和打包发布等操作,实现了快速部署,并降低了开发和运维的复杂度。第二,通过确定负载预测指标,采用基于Attention的GRU算法以实现对下一周期工作负载的预测,从而有针对性地制定横向弹性伸缩策略。同时,平台从不同时间维度对微服务实例和用户的微服务负载指标等数据进行监控,为用户提供清晰的监控平台,从而为用户提供高可用、高效率和高QoS的平台服务。第三,基于负载预测的横向弹性伸缩策略,提前规划目标Pod的副本数量,增加或者减少Pod副本数,通过对Pod资源的动态调度来实现弹性伸缩。同样,针对用户的需求差异性,可以自动或手动伸缩Pod数量,从而在业务需求发生变化时提供对微服务的柔性支持。第四,通过节点信息模块实现对节点列表页和详情页的获取,以此来查看节点状态、Pod列表和资源使用情况量等信息,以便于在线操作接入集群的计算资源。本文基于Pod为微服务提供负载指标的监控、预测,进一步实现微服务的柔性部署和Pod的弹性伸缩,从而提高应用开发和管理的工作效率,降低系统维护成本,提升系统灵活度,优化服务水平,实现高可用高QoS来为用户提供持续运行的可靠服务环境。
基于云平台的高可靠微服务系统设计与实现
这是一篇关于容器云,多集群,微服务,弹性伸缩的论文, 主要内容为在信息技术飞速发展的时代下,互联网经济蓬勃发展,业务需求不断的增加,进而使得微服务应用的数量也越来越多。Kubernetes自身的机制非常契合微服务应用的部署,因此越来越多的微服务应用被部署运行在Kubernetes集群之上。然而在单个Kubernetes集群中部署大量的微服务应用会导致集群性能瓶颈以及集群出现故障时服务不可用的问题。此外随着互联网用户越来越多,应用服务随时有可能面对突发高流量请求的情况,然而Kubernetes自身的弹性伸缩不能够满足这种需求,而Kubernetes自身的负载均衡策略也无法合理的分配流量请求。最后Kubernetes缺乏对工作节点动态添加和删除的支持,需要人工手动进行操作才能提高单个集群的负载能力。针对上述问题,本文实现了一个多集群容器云平台来保障微服务应用在容器云上的可靠运行。多集群的管理和调度是本文的容器云平台的核心功能,首先本文设计了对多个集群进行统一管理和调度的接口,开发运维人员能够根据系统情况以及业务需要通过该接口完成添加和移除集群的操作,并且微服务应用可以选择多集群方式部署在多个集群上避免集群单点故障的问题。其次针对Kubernetes的弹性伸缩机制在面对突发高流量请求时的问题,设计了一种事件驱动的伸缩策略并与KEDA组件集成来增强和补充Kubernetes的弹性伸缩能力。在负载均衡方面,为了更进一步增强应用服务面对突发高流量请求的能力,设计了一种JSPP负载均衡策略,在流量平稳的情况下该策略会根据负载情况动态的调整应用副本的权重,在副本扩容出来后该策略能够将请求优先分配给刚扩容的副本,使其能够及时的分摊用户流量,能够快速应对突发高流量请求。容器云平台还支持工作节点的动态调整,通过监听集群的负载压力,监测到资源瓶颈或者空闲时触发添加或者删除节点的操作。通过实验测试,本文多集群容器云平台具有良好的可靠性,且各个模块功能都达到了预期设计的目标,有效的解决了单集群部署的问题,能够有效的保障微服务应用在平台上的可靠运行。
分布式流处理系统计算资源智能分配方法
这是一篇关于分布式流处理系统,动态数据流,自适应分区,弹性伸缩的论文, 主要内容为分布式流处理系统因具备实时数据处理的优点被广泛应用于医疗、金融和电商等场景。然而在实际应用中,仍然存在一些问题。一方面,当输入数据流的速率动态变化时,系统使用固定的资源配置产生了资源不足问题,进而造成了高延迟和低吞吐量问题。当数据流倾斜度变化时,用于解决倾斜问题的数据分区方法在均衡数据流上造成了资源浪费。另一方面,数据分区方法使用最少分配数量优先原则将数据通过网络分配到多个节点,导致系统出现明显的高状态存储开销和高数据传输开销问题。针对这些问题,本文从动态资源分配和均衡数据分区的角度,对分布式流处理系统计算资源智能分配方法展开研究,包括:分布式流处理中自适应分区的动态资源分配;分布式流处理中失衡感知的数据分区。本文的主要工作如下:(1)提出一种自适应分区的弹性伸缩算法ALPS,用于解决动态数据流产生的资源不足问题和输入倾斜问题以及在均衡数据流上分区造成的资源浪费问题。ALPS首先采集系统性能数据构建分区决策模型,再根据模型自适应地执行数据分区,减少了资源浪费。然后,使用系统性能数据构建系统性能模型用于动态调整系统资源配置,以解决资源不足问题。最后,实验使用不同速率和倾斜度的文本数据流和Reddit数据流,将ALPS和最新的弹性伸缩算法DS2对比。结果表明,ALPS不仅减少了资源浪费,而且将端到端延迟降低了2个数量级,吞吐量提高了1倍。(2)提出一种基于时空感知的数据分区算法TSA,用于解决数据分区算法产生的高状态存储开销和高数据传输开销问题。TSA首先鉴别冷热数据,然后使用最少分配数量优先原则实现均衡的分区。在数据分配过程中,TSA提出了失衡感知的增长策略和失衡感知的本地性策略,通过松弛失衡度约束,降低了状态存储开销和数据传输开销。最后,实验使用文本数据流,在不同的倾斜度和节点数量下,将TSA与HASH、RR、PKG、W-C和D-C对比。结果表明,相比于最新的数据分区算法D-C,TSA降低了71%的状态存储开销和3%的数据传输开销。(3)基于本文提出的ALPS和TSA,设计和实现了自适应分区弹性伸缩系统TS-ALPS,具有低延迟、高吞吐量和资源利用率高的特点。TS-ALPS主要设计了四个模块:(1)性能数据采集模块,用于采集系统运行时的真实性能数据;(2)分布式状态管理模块,用于管理数据分区产生的分布式状态;(3)自适应分区的弹性伸缩模块,实现了动态资源分配;(4)基于时空感知的数据分区模块,实现了均衡数据分区。最后,实验使用动态的文本数据流,对比了TS-ALPS和最新的分布式流处理系统Flink。结果表明,TS-ALPS在动态数据流上实现了更低的延迟、更高的吞吐量和更少的资源浪费。图41幅,表8个,参考文献58篇
基于Docker的智能Ops系统设计与实现
这是一篇关于Docker,智能运维系统,热更新,弹性伸缩,自动化部署的论文, 主要内容为随着互联网敏捷开发模式的流行,软件研发周期变短,迭代速度变快,传统的开发和运维方式难以有效支持。研发人员完成指定功能后,需要手动集成各模块代码,在代码集成后,需要人工编译、人工部署。然而,依赖人工操作的模式容易出错,发生错误时研发人员需要花费额外的时间和精力处理问题,导致项目延期。代码部署上线后,服务内部如果发生错误,研发人员无法快速感知。另外,用户访问流量具有不可控性,在流量高峰期间,服务资源可能无法支撑高并发访问,在流量低谷期间,富余的服务资源又会增加企业成本。在线上服务运行过程中,如果需要修复代码问题或者增加新功能,需要先停止服务,这样会影响用户体验并且降低企业收益。针对上述问题,本文提出并实现了一套智能Ops系统。系统将多种软件工程领域的新技术有机融合,从而实现高效的开发与运维协同:第一,使用Jenkins和Git Lab实现持续集成与构建功能;第二,使用Dockerfile制作镜像,通过镜像生成Docker容器,再使用自动化Bash脚本推送到Kubernetes集群,从而实现自动化部署;第三,使用Log Tail数据采集技术收集数据,再使用Grafana技术对数据进行可视化展示,并提供服务内部的监控报警功能;第四,使用弹性伸缩算法实现弹性伸缩功能,避免发生服务资源不足影响线上服务的问题;最后,使用Erlang热更新技术实现线上服务热加载功能。本系统采用前后端分离架构,前端部分使用Iddas技术进行权限校验,使用Vue.js和Phoniex框架渲染界面;后端系统采用了MVC架构,使用OTP框架进行开发。系统主要实现的功能包括权限与账号管理、自动化持续集成、自动化编译、自动化部署、监控报警、自动化弹性伸缩、热更新等。经过多轮测试,结果显示系统具有良好的稳定性。本系统已接入公司的即时聊天项目,经过多次调整和迭代,取得了较好的用户反馈。本系统能将研发人员从传统的开发和运维方式中彻底解放出来,使其专注于产品研发,有效提高了研发效率和产品质量,具有不错的实际经济效益。
基于微服务架构的容器弹性伸缩系统研究与实现
这是一篇关于弹性伸缩,XGBoost预测算法,Docker容器,微服务架构的论文, 主要内容为随着云计算相关技术不断地发展和变革,以虚拟化技术为核心的传统云计算模式发生了重大变化。Docker作为容器技术的代表,掀起了新一代资源计算模式的浪潮。现有的弹性伸缩方法或碍于物理机缺乏灵活性以致资源弹性供应困难的限制、或者碍于虚拟机资源供给时效性的限制,很难应对大规模动态变化的云环境。以Docker容器为代表的容器引擎技术,对解决上述问题提供了新思路。针对现有弹性伸缩策略存在弹性伸缩指标单一且弹性伸缩不合理造成资源浪费等问题,本文提出了基于机器学习XGBoost预测算法的容器弹性伸缩方法。该方法使用容器的资源指标和性能指标作为弹性伸缩的特征数据,通过使用预先训练的XGBoost预测模型,预测下一时间窗口内弹性伸缩的容器数量,然后使用Kubernetes容器编排工具完成扩容或缩容操作。本文提出的弹性伸缩方法与现有弹性伸缩方法相比,在动态变化的云环境中能保证服务及时响应,并且云服务违约率低于0.5%。此外在所提出的弹性伸缩方法的基础上设计了一个基于微服务架构的容器弹性伸缩系统。首先,采用微服务架构为设计理念对容器弹性伸缩系统进行了总体层次架构设计,将系统划分成4个部分,包括前端展示层、服务管理层、核心业务层和数据存储层。其次,根据业务需求对核心业务层的功能模块进行详细设计,主要包含四个模块,分别是系统管理模块、集群数据监控模块、弹性伸缩模块和集群管理模块。最后,对系统的微服务基础组件和各个核心模块进行了设计和编程实现,对系统的核心模块采用黑盒测试的方法,测试结果验证了本文的提出方法的有效性。
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:源码导航 ,原文地址:https://bishedaima.com/lunwen/47980.html