没有合适的资源?快使用搜索试试~ 我知道了~
基于微服务的应用程序的建模和安全动态更新
基于微服务的应用程序的发展:建模和安全动态更新王玉伟引用此版本:王雨薇基于微服务的应用程序的演变:建模和安全动态更新。人工智能[cs.AI]。巴黎理工学院,2022年。英语NNT:2022IPPAS009。电话:03937239HAL Id:tel-03937239https://theses.hal.science/tel-039372392023年1月13日提交HAL是一个多学科的开放获取档案馆,用于存放和传播科学研究文件,无论它们是否已这些文件可能来自法国或国外的教学和研究机构,或来自公共或私人研究中心。L’archive ouverte pluridisciplinaire626基于微服务的应用程序的发展:建模和安全动态更新巴黎综合理工学院博士论文巴黎南部电信巴黎综合理工学院博士学校Spécialité de doctorat:InformatiqueThèse présentée et soutenue à Palaiseau,France,le27 October 2022,par王幼评审团组成:托马斯·勒杜Ampleseur,IMT实验室(LS2N实验室)主席安托万·博尼亚IMT实验室特别报告员莱昂内尔·塞因蒂里耶里尔大学(水晶实验室)讲师特别报告员法比安·博耶会议硕士(人类发展报告),格勒诺布尔大学(LIG实验室)索菲·查布里登考试Directrice丹尼斯·柯南会议主持人(人类发展报告)、IPP/TSP(SAMOVAR实验室)卡沃斯·博伊努尔迪研究工程师,EDF研发共同负责人(Invité)马敬轩研究工程师,EDF R DCo-encadrante(Invitée)NNT:2022IPPAS009i确认首先,我想对我的研究导师索菲·查布里登和丹尼斯·柯南表示深深的感谢,感谢他们在我的博士学习期间对我的指导和他们的耐心、动力和渊博的知识引导我走上了研究之路。 我无法想象有更好的顾问和导师为我的博士研究。我还要衷心感谢我的行业顾问Kavoos Bojnourdi和Jingxuan Ma,感谢他们在我攻读博士学位期间分享他们的专业知识并给予我宝贵的指导。我要感谢教授。Antoine Beugnard和Prof.感谢莱昂内尔·塞图里耶花时间审阅我的论文。他们在小型答辩中提出的有见地的意见和建议帮助我改进了我的论文,并从多个角度拓宽了我的研究。我还要感谢我的其他论文委员会成员,教授。Thomas Ledoux和Fabienne Boyer教授。此外,我想提及Viktor Colas、Tsimafei Liashkevich和Julio Guzmán Barraza,他们对原型的实现做出了贡献。我借此机会感谢SAMOVAR实验室ACMES小组和EDF I2A小组的所有成员,感谢他们与我在实验室和公司度过的宝贵时光非常感谢Télécom Sudparis计算机科学部门和EDF Seido实验室的每个人,特别是Alexei Mikchevitch在行政事务方面的帮助。我也感谢我的朋友们的时间,建议和道义上的支持,以及我们在过去几年中的所有乐趣感谢张思伦给了我力量和希望,感谢董怡芳给了我们七年的法国留学经历。最后,我要感谢我的父母,陈桂红和王宏彪,他们在我生命中的每一刻都给予我无条件的爱和鼓励还有我的祖父陈定春和王文泰,他们从天堂陪伴着我这一切都离不开家人的大力支持特别感谢我的狗点所有的娱乐和情感支持。ii摘要微服务架构有助于将复杂的分布式系统构建为独立的微服务集。分布式微服务的解耦和模块化有助于它们的独立替换和可扩展性。自敏捷DevOps和CI/CD出现以来,运行中的基于微服务的应用程序有一种更频繁和快速的演化变化趋势,以响应各种演化需求。将更改应用到微服务架构是通过从当前应用程序版本移动到新版本的演进过程来执行的。这些分布式系统的维护和演进成本随着微服务的数量迅速增加。本文的研究目标是解决以下问题:如何帮助工程师为微服务构建统一高效的版本管理,以及如何跟踪基于微服务的应用程序中的更改?基于微服务的应用程序,特别是那些具有长时间运行活动的应用程序,何时可以在不停止整个系统执行的情况下进行动态更新,以及应该如何进行安全更新以确保服务连续性和维护系统一致性?针对这些问题,本文提出了两个主要贡献。第一个贡献是运行时模型和演化图,用于建模和跟踪微服务的版本管理,这些模型和演化图在设计时构建并在运行时使用。它可以帮助工程师抽象架构的演变,以管理重新配置部署,它提供了知识库的自主管理器中间件在各种演变活动中进行第二个贡献是基于快照的微服务动态软件更新(DSU)方法构建了运行中微服务应用的一致性分布式快照,用于确定服务的连续性、评估安全更新条件和实现更新策略。DSU算法的消息复杂度不是分布式应用的消息复杂度,而是一致性分布式快照算法的消息复杂度。关键词:微服务架构;软件演化;版本管理;运行时模型;动态软件更新;基于快照的更新条件检测。iii法语简介该大纲与1994年法律关于法语使用的规定相一致他代表了主题的结构,并将章节改为一个。第1章:导言基于微服务的架构有助于构建独立的微服务集成系统。微服务的模块化使许多独立的和复杂的服务得以重新安置,这使得DevOps敏捷的应用和不断的进化得以继续。La modélisation et la gestion des changements évolutifs rapides des applicationsbaséessur les microservices constituent la base des solutions permettant这是一项由法国电力公司合作的研究工业公约(Cifre)提出的,我们可以确定许多工业企业,包括— 在企业生态系统中微服务存在的理由中,微服务架构的全球性和统一性将由架构师、开发人员和管理人员共同参与— l’évolution du logiciel pour les architectures de microservices devrait êtremodélisée et suivre des règles bien définies lorsqu’un microservice change, ouque certaines— 该系统能够生成过时的微服务版本,以解放无用资源;— 该系统应允许系统变化的可处理性,并使之有可能通过一个特定版本或一个预先版本;iv- le système doit fournir un service continuu et minimiser autant que possible laduréedes interruptions du client.Il ne doit pas non plus bloquer les parties dusystème non affectées par les reconfigurationsNousrépondons à une partie de ces besoins dans nos deux contributions visant,d'onepart,àaiderlesingénieuresetlesingénieursàréaliserdesactivitésdemodélisationetdegestiondeversionspourlesmicroservices,etd'autrepart,àaméliberationlacontinuitédeservicelorsdeladourdynamiquedesapplicationsbaséessurlesmicroservices. Un prototype enlogiciel libre été réalisé pour valider la première contribution:MIMOSAE(pourhttps://gitlabev.imtbs-tsp.eu/mimosae/mimosaeUne version préliminairehttps://gitlabev.imtbs-tsp.eu/mimosae/arbore上下载。Chapitre 2:État deL’architecture 它是对全球结构、逻辑系统的构成和属性的一种抽象。Lesarchitectures logicielles ont évolué depuis les architectures monolithiques versdifférentes granularités de modularité:des objets aux composants et services,etmaintenant aux microservices. La modularité del'architecturelogicielledégréauquellesélémentsarchitecturauxpeuventêtreséparésetrecombinésdanslebutdecréeretdemaintenirdesmodulesexecutablesindépendammentafindemaximiserla重新利用密码。Les architectures logicielles des applicationsd'entreprise deviennent de plus enplus grandes et complex,et de nombreux efforts ont été faits pour répondre àcette augmentation d'échelle.基于微服务的体系结构是一 种可以 实现、部 署和部署灵活系统的体系结构模式。L’évolution 在应对紧急情况、业绩等变化的逻辑发展过程中,修改和遗漏是不可避免的 Un domaine de recherche actif concerne la manière de gérer et de controller lestâches d'évolutionenlimitantl'interventionhumaineetenv逮捕时间最短。在这 方 面 , 我 们 专 注 于 动 态 演 进 , 该 演 进 通 过 系 统 逻 辑 适配 器 来 实 现 , 并 通 过 两 种 方 法 实 现 : M A P E - K 自 动 化 控 制 模 块 和 应 用模 块 - 执 行 模 块 , 以 实 现 应 用 程 序 的 架 构 自 动 化 。L'approche MAPE-Kpermetd'automatisercestâchesenproposantunmodèlegénériqued'uneboucledecontrôletourique. Un gestionnaire autoique organises le processus de controlôle autour dequestionactivités : “Surveiller” , “Analyser” , “Planifier”et“Executer”qui partagentune“Base de connaissances”. 计划化活动反映了调整的决定,并确定了配置或必要的部署行动。在适当的时候执行适应一般制度的计划。知识的基础是维护和划分规则、财产和模式。Notre travail est applied àUnmodèle d'exécution fournit une représentation réduite des éléments logicielshétérogènes qui sont disponibles dans le référentiel d'implémentation et deséléments gérés de l'application en cours d'exécution.在一般应用程序中,在执行之前,逻辑上的调整应适用于模型的维护。通过对执行模式的高级应用的抽象,可以统一管理模式,并通过控制环帮助建立认知基础。Les architectures de microservices mettent然而,微服务体系结构的动态校正仍 然 是一 个 研 究 领 域 , 并 构 成 了 这 一 目 标 。微服务执行之日应对多项需求,包括服务的连续性、纠正、整合和系统的一致性在我们的工作中,我们实现了以下假设:(i)我们在各个在进行变革之后,我们继续推行SemVer的政策,以探讨在这些国家中所做的各种版本的内容的数量,vi微服务架构。Nous complétons SemVer avec la classification des évolutions enchangementsessentielsornonessentielsentenantcomptedesaspectscomportementaux du modèle du microservice.Les solutions DSU(pourDynamic Software Updating en anglais)de所有这些解决办法都是为了实现全球一致性(关于适用的整体性),并实现关于制度的一致性,这是在当天程序之前提出的一个先决条件Notre solution suit également cetteapproche,mais elle se différencie par la manièreDSU在文学中的所有算法都是基于离散性的,而我们的贡献则是提出了一种基于瞬时性(或快照)的新方法。Chapitre 3:ModèlesCe chapitre presente notre première contribution : la construction demodèlesd'exécution et de graphes d'évolution pour(i)aider les ingénieures et ingénieurs àgérer la gestion des versions d'applications de microservices,et(ii)abstraire l'évolutionarchitecturale afin de gérer les deploiements de reconfiguration.更确切地说,这些需求可能与工业背景下确定的需求类型相似:(1)逻辑解决方案的概念和维护的合理化,生态系统的全球化和统一化的价值,由建筑师、管理者和行政人员共同实现,以及(2)在配置无效或其他异常的情况下,系统的变化可能是可操作的,也可能是无效的。Notre modélisation sévue la vue des types de celle des instances,ajoute la gestiondes versions à chaque élément du modèle et prend en compte les modes decommunication synchrones et schools. Notre modèle est réifié au moment del'exécution pour faire partie de la base de connaissances de la boucle de controlleMAPE-K.在执行模式中,一般情况下都是这样随着Notre grapheChaque fois que les artefactsvii在实施过程中出现或退出的情况下,类型模型可能会演变为计算进化,而一种新类型在进化过程中是创造和发展的如果微服务的类型不能实例化,则验证是不可能的。Lenouveau nÜud représentel'ensemble des artefacts logiciels(microservices,connections,contrats,etc.)whi peuvent être utilisés pour acquire le système géré.La deuxièmepartie du graphe如果微服务的实例不可用,则验证是因为一个决策是逻辑架构师的价值,一个新的实例是在进化的过程中产生和发展的Un tel unnÜud représente因此,重新配置计划的计算和执行都是为了修改有关应用程序的效力最后,我们的解决方案在原型MIMOSAE(“用于带有Evo- lution graph的版本管理的微服务模型 ” ) 中 得 到 了 验 证 , 可 在 www.example.com 上 找 到 https://gitlabev.imtbs-tsp.eu/mimosae/mimosae在发展的图表中包含一个新的发展结构,一个规划师计算一个发展行动计划,以使系统适应这种新的结构。该计划是自动执行的,以实现发展。Chapitre4 : Miseàjourlogicielledynamiquedesmicroservices basée sur les instantanésCe chapitre presente notre deuxième contribution,à savoir quand et commentla reconfiguration pour la dénà jour des microservices peut être effectuée demanière cohérente alors que les appels de services clients continuent 动 态 逻 辑(DSU)的日常维护问题可能会被分解为两个系统问题:(i)对相关应用程序和版本变更进行建模,并在日常维护模式中对日常维护条件进行分析,因为日常维护不包括不一致的方面:例如,相关应用程序的体系结构如何,服务客户端的需求如何,以及服务客户端的微服务需求如何(ii)指定我们解决了一个问题,那就是,viiiconfiguration pour les applications basées sur les microservices.在使用执行模式时,微服务的管理集成服务决定了微服务的正确性,并对微服务的影响进行了评论。此外,电话服务可以采用不同的策略来解决变化的影响(例如,它们不是必需的或非必需的)和最大限度地减少中断的持续时间DSU算法在文学中的存在主要是基于传播的:即在日常生活中或在日常生活中,它通过控制信息来完成日常生活条件的检测另外,这些算法在实际应用中是最优的。对于基于微服务的体系结构,我们采用了一种不同的方法:通过对当前版本的修改和重新配置的需求,我们的算法DSU提供了一种实时的全球应用程序的方法这种选择的理由是:(1)微服务的应用程序可以在消息中实现,在某些情况下,消息的复杂性是有限的,(2) 优先权的双向性不可能直接通过类型选择器-souscrire的连接获得,也没有理由假设这些朝臣是在这个鳍上配置的,(3)可能的条件是对系统的全局相关性进行访问,这是对相关的瞬时性的直接描述,以及(4)算法DSU,它利用了微服务的暂停/重复、执行、创建和抑制、微服务的联络和分离等原语,这是基于阶段的分类,它不是由系统的整体状态所限定的,而是由各部分的瞬时状态所限定的事实上,这种情况存在于一种特殊的情况下,这种情况是与其他人一起组成的,而两种情况是相互影响的某些工程存在问题,但要考虑到实施的价值我们在具体化时考虑到情况,并确定继续提供服务的权利。 此外,为继续提供服务而设立的安置小组使蓝/绿或接近加那利的发展战略的执行系统的管理人员感到兴趣。我 们 的 解 决 方 案 DSU est burien oeuvre dans une version préliminaire duprototypeARBORE(https://gitlabev.imtbs-tsp.eu/mimosae/arboreix第五章:结论我们的贡献是为了帮助工程师和工程师更好地促进和提高基于微服务的应用程序版本的管理,并确保一个动态的逻辑系统。我们的建议都是原创的Specécification et modélisation d'une application basée sur des microservices pour la gesis- tionde versions. Le modèle de type décritl'abstraction structurelle des architectures demicroservices , et le modèle d'instance capture les configurations de déploiementspécifiques des applications basées sur les microservices. Chaque instance est conforme àun type valide. 在类型模型中,我们验证了微服务的类型是可实例化的。在实例模型中,我们验证了微服务的实例是可部署的这些模型必须在工程师的构思阶段进行,并在执行阶段进行利用,以消除在应用中产生的变化,而不是采用执行模型。这些版本的建筑设计要素是通过一个标识和一个版本号的类型模型来实现的,它明确地适合于SemVer适当的平面结构。此外,在实例模式中的可使用元素是类型的实例,它们是语法版 本 Nos modèles d'exécution prennent également en charge deux mécanismes decommunication couramment utilisés dans les architectures de microservices,à savoir lacommunication synchrone client-serveur et la communication synchrone de typetransferer-souscrire.Tracer les changements évolutifs dans les architectures de microservices. Un grapheIl estcomposé de deux parties:la première est constituée在我们的进化史中,版本的变化是 应 用 的 , 新 的 配 置 类 型 和 配 置 实 例 是 创 造 和 登 记 的 Chaque instantané 在MIMOSAE原型中,一个MAPE-K半自动控制环被安装在我们现有的用于基础知识的 模 型 中 。 Un planificateur IA est utilisé pour calculer un plan contant unensemblex基于瞬时的动态日公式。Un modèled'exé-cutiondemicroservicesestmisenplacepourindiquerlesliensdedependanceentrelesmicroservicesreprésentantlesrelationsd'appelentrelesmicroservicesdansune configuration,et les dependances entre les types of messages whi sont utilisées pour suivre laprogressiondeséchangesdemessagestoutenrépondantauxappelsdesclients.此外,微服务的更改在使用执行模式时是基本的或不基本的:一个更改是基本的,因为它会对消息的更改产生影响。关于服务的连续性,我们引入了两个替代系统(微服务实例和通信留置权实例),并在客户端和微服务之间建立了一个门面(前端),以便于将旧版本的实例传递给新版本的实例接着,在引入了即时关联概念之后,我们将动态关联的修正形式化,因为文学的动态关联的条件是(静态、自由(英语),允许版本的关联,以及自由本质,在考虑到本质和非本质变化的情况下进行因此,il est possible这解释了为什么我们的第二个贡献是在快照或即时概念之后命名的我的DSU条款含糊不清。L’algorithme DSU assure la correction des mises à jourdynamiques en préservant l’achèvement correct des appels de service client(collaborations) DSU算法的基础是一种基于相关瞬时的相关终端检测算法微服务包含应用消息,这些消息是为进行协作而发送和接收的,并在即时通信框架中提供这些消息。此外,该管理机构还提供一个即时的联系人,并利用这些联系人来检测终端。 重要的是要注意到,对于当前条件的关注,DSU算法的作用在于,管理层可以重新配置系统,以使当前条件变得稳定xi重新配置的执行条件。此外,我们还整合了文学之日的质量策略(«版本并发»,«消息块»,«协作块»,以及«注意(au plus t secondes)»)。Une première versionde这些都是多人的观点。对微服务进行基准测试。我们将原型现实化,以验证我们的建议的可行性,并提出我们的解决方案。Prise en charge d'autres modèles d'interaction tools. 圣母工作le modeNos modèlespeuvent êtreaffinés pour ajouter微服务行业的演变。 在这一点上,我们认为微服务是一种职业,而不是系统其他各方的职业。此外,我们还将考虑对双绞线型连接器的底座或连接器的版本进行修改。这些变化的特殊性在于,基础设施的基本要素一般是基于外部平台或第发 展 战 略 。 La connaissance des ensembles de remplacement pour exprimer lacontinuité de service devrait intéresser les administrateurs de systèmes pourpermettre des strategies de déploiement telles que le déploiementblue/greenouCertains outils de gestion existants permettent de gérer automati- quement ledéploiement et但这些都不符合应用程序的要求Un point de départ seraitxii宽容错误 我们的贡献假设该系统是免除故障。我们可以重新考虑一下在联合国最早的时候取消法郎的简单错误。因此,微服务的缺陷是通过对一个不同分支的开发和复兴过程中的返回过程进行管理来实现的为了解决DSU算法执行过程中出现的问题,我们对DSU算法的一个模糊的预处理进行了重新设计xiii内容鸣谢i摘要二内容xiii图表一览表清单十八1介绍11.1研究背景21.2行业要求41.3论文贡献61.4曼彻斯特组织72微服务架构的动态软件演化技术现状92.1基于微服务的应用102.1.1软件架构的定义102.1.2从整体到模块化112.1.3从对象到组件、服务和微服务122.1.4微服务架构142.2软件体系结构的软件演化162.2.1软件演化的基本概念162.2.2运行时的自主计算和模型182.2.3软件体系结构在演化中的作用202.2.4微服务架构的软件演进21xiv2.3动态软件更新222.3.1DSU23的目标2.3.2变化的特征242.3.3DSU25的分布式应用模型2.3.4一致的更新条件282.3.5达成战略322.3.6分布式终止算法332.4结论343用于微服务版本管理的UML模型和演化图363.1案例研究GDE373.2型号383.2.1型号393.2.1.1配置类型视图393.2.1.2微服务类型视图403.2.1.3合同类型视图423.2.2实例模型463.3进化图483.3.1图表构建过程概述493.3.2说明性情景503.3.2.1贴片更换523.3.2.2小改动533.3.2.3重大变更543.4在MIMOSAE55中实施3.4.1PDDLplanner563.4.2执行人593.5讨论.603.6结论624基于快照的微服务64动态软件更新4.1DSU问题664.1.1GDE用例664.1.2DSU算法的作用4.1.3更新条件684.2分布式系统和应用模型694.2.1分布式系统模型4.2.2分布式应用模型724.3基于快照的更新设置74xv4.3.1微服务执行模型744.3.1.1应用程序消息的路径744.3.1.2Linkdependencies链接依赖754.3.1.3消息类型依赖性764.3.2增加服务的4.3.3基本和非基本变化814.3.4正确的动态更新834.3.5更新条件的基于快照的定义844.3.5.1安静844.3.5.2Freeness自由854.3.5.3基本自由度854.4基于快照的DSU算法4.4.1协作终止检测864.4.2DSU算法和更新策略884.4.2.1DSU算法概述894.4.2.2静态DSU算法894.4.2.3基本游离度和游离度4.5讨论. 924.6结论.945结论与展望955.1贡献摘要955.2今后的工作98参考书目100附录111MIMOSAE111中计划器和执行器的实现细节A.1 MIMOSAE111的完整PDDL文件A.2 MIMOSAE116自治管理器中执行器的结构A.3 建议的软件演进过程117xvi图目录2.1MAPE-K控制回路192.2运行时模型与被管理系统20之间的因果关系2.3序列图中的事务示例262.4将事务建模为工作流272.5组件的状态机图282.6静态状态机图292.7转换到宁静属性的状态机图302.8说明同一组件的几个激活周期的示例。313.1GDE说明性应用程序的全局视图383.2类型模型:配置类型视图393.3类型模型:微服务类型视图413.4应用于GDE的类型模型的对象图:微服务类型视图433.5类型模型:客户端-服务器合同类型视图443.6类型模型:订阅合约类型视图453.7发布-订阅合约类型视图:基于频道和基于主题。473.8实例........................3.9配置快照和配置类型493.10 可能有微小变化的类型模型的对象图示例533.11 具有可能的主要变化的类型模型的对象图示例553.12 在MIMOSAE58中实施的情景4.1用例AttachFileToProject的序列图-订阅通信674.2微服务DSU算法的全局视图68xvii4.3用例AttachFileToProject的序列图-客户端-服务器通信704.4用例场景的消息类型依赖关系的多重图AttachFileToProject79A.1执行器一般功能的通信图A.2软件演化过程118
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功