云环境下微服务的动态部署研究
这是一篇关于云计算,容器技术,微服务,动态部署,微服务池,SLA的论文, 主要内容为随着互联网和云计算的快速发展,企业应用逐渐从单机迁移至云平台,云计算环境高可用、弹性伸缩的特点推动着Web应用架构模式从最初的单机架构变为现在流行的微服务架构,有效降低了企业应用的开发时间,提高了应用的容错性、扩展性及按需部署的能力。但随着业务的复杂和微服务数量的不断增加,微服务在云环境的动态部署过程中也存在诸多问题:1.由于微服务架构的松耦合性,每个微服务都可使用团队擅长的开发语言开发并独立部署和扩展,在部署时不可避免地处理对软硬件环境的依赖。2.为了降低微服务间的耦合度,一般采用轻量级的消息传递机制(如RESTful风格的HTTP API方式通信),由于微服务架构的粒度较小,一次业务请求通常会对多个微服务进行调用,这种远程通信机制可能出现响应延迟、服务繁忙或目标不可用等故障问题。3.微服务在物理上是一种小粒度的独立模块,但在逻辑上存在依赖关系,且通常为多层次依赖。为了保障用户的体验,服务提供商一般会在负载较高时动态部署一定的冗余服务,并在负载较小时减少一定的服务以节约资源。但多层次的依赖的微服务架构下这种机制难以掌控,何时增加或减少微服务的数量及增加或减少多少微服务的数量难以确定,由此可能会导致系统频繁地增加或减少微服务的动态部署,而频繁的动态部署会降低整个系统的稳定性,进而SLA难以得到保障,同时也存在一定的资源浪费。本文分析了云平台的特点并深入研究了微服务部署时的关键技术以及部署过程中存在的难点,提出的算法通过结合云计算和容器化技术的优势可在用户无觉察的情况下合理、有效、自动地对微服务进行动态部署,在微服务出现故障时能够及时发现并将其修复,在最大程度上保证了系统的稳定性并降低了企业成本。本文的主要工作如下:1.为了降低微服务对软件环境的依赖,使用Docker容器包装微服务及其运行时环境,在此基础上提出微服务池模型。池模型的建立保证了微服务实例一定数量上的冗余,也可在部分微服务繁忙或不可用的时候及时发现并快速修复故障,解决了远程通信机制带来的局部微服务不可用问题。2.为了解决云计算环境中微服务在负载改变时频繁动态部署的问题,提出了一种面向SLA的微服务动态部署方法。建立微服务动态部署描述模型,在微服务与其依赖之间赋予依赖权值,并给出依赖权值的动态更新机制,通过监测依赖权值的变化准确定位需要动态部署的时机,然后根据依赖权值部署相应数量的多层依赖。该方法提升了SLA的服务保障,降低了服务提供商违约的风险。最后通过实验验证文中相关模型及算法的有效性,分析并对比了实际部署效果,在理论上本文提出的模型及算法可作为云环境下微服务动态部署的技术支撑,在实际应用上可降低企业的运维难度和成本。
基于容器的算法开发系统的设计与实现
这是一篇关于容器技术,算法开发,Kubernetes的论文, 主要内容为随着大数据时代的到来,算法相关技术领域的研究备受关注,针对算法开发的工具与开源技术也越来越多,算法开发却没有一个可通用、功能较完善的平台。基于以上背景,本文设计实现的基于容器的算法开发系统,为算法的开发部署,提供了一个较为完整的解决方案。本文从算法开发的用户角度出发,对系统进行分析与设计,使用Gitlab、Kubernetes、Ceph和SSM框架等技术,研发了基于容器的算法开发系统。系统主要包括六个功能模块,用户管理模块主要包含用户自我管理、团队管理等功能;数据集管理包含数据集的录入、分享和基本信息管理功能;模型管理主要是模型录入、模型信息管理、模型发布与模型分享等功能;算法管理包含对算法进行调试、编辑、管理与分享的功能;实验结果追踪包含对算法结果的管理、追踪以及可视化对比等功能;任务监控主要是对算法运行的资源消耗进行监控的功能,包括内存、CPU、存储等。系统的核心功能提供算法编辑调试、算法快速发布、结果跟踪管理以及算法资源消耗监控,提供隔离的算法开发环境,支持算法计算资源的动态扩展,为用户提供了一个可靠的、高效的算法开发平台。该系统已经过测试与线上使用,系统能够支持用户对算法调试、算法发布以及结果跟踪等功能的需要,方便用户进行算法开发。
基于容器的算法开发系统的设计与实现
这是一篇关于容器技术,算法开发,Kubernetes的论文, 主要内容为随着大数据时代的到来,算法相关技术领域的研究备受关注,针对算法开发的工具与开源技术也越来越多,算法开发却没有一个可通用、功能较完善的平台。基于以上背景,本文设计实现的基于容器的算法开发系统,为算法的开发部署,提供了一个较为完整的解决方案。本文从算法开发的用户角度出发,对系统进行分析与设计,使用Gitlab、Kubernetes、Ceph和SSM框架等技术,研发了基于容器的算法开发系统。系统主要包括六个功能模块,用户管理模块主要包含用户自我管理、团队管理等功能;数据集管理包含数据集的录入、分享和基本信息管理功能;模型管理主要是模型录入、模型信息管理、模型发布与模型分享等功能;算法管理包含对算法进行调试、编辑、管理与分享的功能;实验结果追踪包含对算法结果的管理、追踪以及可视化对比等功能;任务监控主要是对算法运行的资源消耗进行监控的功能,包括内存、CPU、存储等。系统的核心功能提供算法编辑调试、算法快速发布、结果跟踪管理以及算法资源消耗监控,提供隔离的算法开发环境,支持算法计算资源的动态扩展,为用户提供了一个可靠的、高效的算法开发平台。该系统已经过测试与线上使用,系统能够支持用户对算法调试、算法发布以及结果跟踪等功能的需要,方便用户进行算法开发。
基于微服务的游戏道具销售平台设计与实现
这是一篇关于微服务,Spring Cloud Alibaba技术,持续集成技术,容器技术的论文, 主要内容为游戏商城是游戏企业吸纳用户、增加流量,带来持续收益的有效手段,但是,随着游戏业务场景的规模不断增大,游戏用户规模持续增加导致的高并发访问需求,开发部门内部关系复杂导致功能集成难度不断增大,现有的游戏商城开发技术手段和模型越来越难以适应这些变化的需求。道聚城系统为腾讯公司推出,对接内部各大游戏工作室以及外部合作伙伴的上百款PC、手游端游戏,服务于数亿用户的游戏道具售卖平台。平台对内需定制化游戏接入,功能集成困难;对外需接入合作伙伴,业务场景复杂;节假日活动日均流量均在数百万之上。微服务技术具备松耦合、扩展性强、易技术创新等特性,容器技术拥有高自动化、快速集成等特点,因此采用微服务、容器技术设计实现一个满足需求的游戏商城系统。系统在架构设计方面采用Spring Cloud相关组件和Spring Cloud Alibaba微服务技术,解决传统单体应用架构中代码复用性低、扩展性差、模块耦合度高以及单体应用架构中调用链路过长而导致的服务雪崩现象。同时,面对不同的业务场景,在微服务基础之上对并发有较高要求的服务使用Golang作为开发语言,做到技术选型的灵活多变。在系统功能持续集成方面,针对商城系统版本更迭较快,服务体量增长迅速,人工运维难度呈现几何系数上升的问题,采用容器技术将整个微服务应用通过Jenkins技术拉取服务代码打包成Docker镜像部署于Kubernetes集群,进而实现服务的一键式打包、部署和发布,提升持续集成效率。系统实现表明采用的微服务技术既解决了应用架构的可用性、稳定性问题,同时又免去了冗余配置,缩短了软件开发周期,降低了企业开发成本。使用容器技术极大程度降低了企业运维的人力成本,促进产业升级,使企业运维向着自动化、智能化方向迈进。
基于微服务的多租户城镇人口住宅管理系统的设计与实现
这是一篇关于微服务,容器技术,服务分割模型,多租户,城镇人口住宅的论文, 主要内容为随着敏捷开发和应用复杂度的不断增加,对应用功能的横向扩展及解耦合等需求提出了更高的挑战。面向服务的软件开发架构由于其规范化、松耦合和去中心等诸多优势,可以很好的解决以上问题。本文在研究面向城镇的人口住宅管理系统的应用需求时发现,原系统是基于MVC软件架构且服务于单个城镇的应用,随着应用推广到多个城镇,各使用机构需求不断变化,对系统功能的敏捷迭代和智能维护给出了更高的要求。因此本文迫切需要将单体式集中应用转变为分布式服务应用,以便充分利用云平台的资源同时为多个机构提供应用服务和功能维护。本文深入剖析了分布式应用的设计思路,基于领域驱动设计原则构建了用于辅助分布式应用设计的服务分割模型;然后结合微服务架构利用Spring Cloud实现了城镇人口住宅管理的Saa S系统;最后为了系统具有服务实例的智能维护功能,本文采用容器技术和容器编排框架实现了服务的多实例化和动态扩缩容部署。具体工作内容主要有以下四点:1)研究了分布式应用的设计原则,根据微服务在系统中所担当的功能角色将其分为四类,包括管理监控微服务、辅助性微服务、业务逻辑微服务和复用性微服务;再结合领域驱动设计原则构建了服务分割模型。2)基于微服务架构和服务分割模型,对城镇人口住宅管理系统的功能进行服务架构设计。通过服务注册中心来进行服务请求的通讯从而解除服务之间的依赖,并采用Spring Cloud的子项目来开发相应的服务。3)通过数据库中间件的水平和垂直切分完成对多租户数据的安全隔离;使用Redis缓存数据库来进行数据请求的优化;搭建Harbor私人镜像仓库来存储镜像文件,同时让容器编排集群拉取其中的镜像生成服务实例。4)结合Docker容器技术和Kubernetes容器编排框架来实现服务实例崩溃时,系统快速恢复对应的服务实例;当服务的资源利用率增加或者减少时,系统对相应实例进行动态扩缩容以提高系统的负载能力。本文设计实现的多租户城镇人口住宅管理系统,采用微服务架构解耦合了功能应用,提高了该系统的可维护性和扩展性;结合容器技术让该系统在高低访问量下具有较好的稳定性。
面向商业银行的分布式任务调度与管理系统设计与实现
这是一篇关于任务调度,分布式系统,消息队列系统,容器技术的论文, 主要内容为随着中国经济高速增长,银行业的发展速度也明显加快,国内除了中国工商银行、中国农业银行、中国建设银行、中国银行、中国交通银行五大国有银行外,近些年新成立了大量的城市商业银行。城市商业银行规模虽然远小于国有银行,但业务范围涵盖了国有银行的80%以上,因此也需要大量的后台IT系统来支撑运营。银行业常见的IT系统可以分为4类,分别是业务支撑类、经营分析类、监管报送类和保障维护类。本课题是面向商业银行的分布式任务调度与管理系统,此城市商业银行的IT系统大约在200个左右,中等规模的城市商业银行的后台IT系统规模基本与此相近。在这200个IT系统中,大部分属于前3类。银行在每日营业结束后会对IT系统内的数据汇总、分析及进行迁移,这样的操作称为每日批量作业。银行大部分的IT系统每天都需要执行自身的批量作业。目前,银行大多数IT系统的批量作业采用串行执行的方式,逐步完成每日批量作业执行。但随着业务量的不断上涨,对时效性的要求也越来越高。传统的串行执行批量作业的方式已经不能满足未来发展的需求。同时,各个IT系统之间也存在着比较紧密的依赖关系。所以本课题设计并实现的系统能够最大化批量作业并行执行的能力,并且能够同时调度多个IT系统的批量作业任务。银行对于数据安全的要求相对较高,本系统借助开源分布式消息队列系统Rabbit MQ作为任务数据的传递渠道,最大限度降低了程序间网络连接的复杂程度,通过策略使数据冗余存储,同时也提高了本系统的横向扩展能力。本课题所设计的系统主要包含4个功能模块,数据库存储及计算功能模块、任务调度服务模块、分布式消息队列模块和任务执行模块。其中任务调度服务模块和任务执行模块使用C/C++语言实现的独立后台程序。数据库存储及计算功能模块使用SQL语言实现相关功能。分布式消息队列模块主要通过配置实现数据冗余存储及负载均衡功能。任务调度服务端程序采用分布式架构设计,以主从模式运行,能够动态增减服务节点,自动进行故障转移操作,提高了本系统的并行能力和横向扩展能力。另外,任务调度服务端程序使用容器技术进行封装,便于程序部署和迁移。本课题实现的系统在数据库、任务调度服务端程序和分布式消息队列系统均能够实现无单点故障的能力。
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设小屋 ,原文地址:https://bishedaima.com/lunwen/48280.html