英语原文共 26 页,剩余内容已隐藏,支付完成后下载完整资料
使用微服务和DevOps的连续架构:
系统的映射研究
1 介绍
软件变得越来越复杂,开发过程也在不断发展,以适应当前市场要求的快速变化,软件产品上市时间短,技术发展迅速。持续软件工程,尤其是DevOps,试图解决这些情况,用一套持续交付操作和工具来支持开发人员持续传值,提高交付效率并缩短发布之间时间间隔。然而,传统的单片式架构不容易适应这种环境,需要考虑新的架构风格。为了采用DevOps,所采用的体系结构风格必须以敏捷为中心进行设计;为此,微服务体系结构风格适合这种连续的体系结构环境。
微服务是相对较小的独立部署的自主服务,具有单一且明确定义的用途。由于其独立的部署能力,它们在连续交付方面有很多优势。它们可以用不同的编程语言开发,可以独立于其他服务进行扩展,并且可以部署在最适合其需要的硬件上。此外,由于它们的大小,它们更易于维护和容错,因为一个服务的故障不会破坏整个系统,而这样的灾难可能会发生在单片式系统中。
DevOps(Development and Operations)是一套持续交付操作,旨在减少交付时间、提高交付效率和在保持软件质量的前提下缩短发布时间。它结合了软件开发、质量保证和操作。DevOps包括开发过程(设计、编码、校验、打包)和操作过程(发布、配置、监视)的一组步骤,将开发团队、质量保证和操作团队通常执行的活动结合起来。为了采用DevOps战略,系统的体系结构风格必须以敏捷为中心进行设计,微服务体系结构风格是最适合处理这些问题的体系结构风格之一。
尽管微服务体系结构风格和DevOps在工业上得到了广泛的应用,但是在理解如何在一个连续的软件工程过程中开发这种体系结构方面仍然存在一些挑战。在这方面,我们扩展了以前对微服务体系结构模式的映射研究。
这项工作的目标有两个:首先,我们的目标是描述文献中报告的不同微服务体系结构风格,作为实现的建议和案例研究。然后,我们的目标是映射可应用于DevOps管道的基于微服务的技术,以确定现有的差距。因此,我们将这项工作设计成一项系统的映射研究。先前Pahl和Jamshidi已经发布了一个系统映射,旨在对现有的微服务研究内容进行分类和比较,主要收集来自网络博客的非同行意见内容。我们的研究在以下方面有所不同:
– 聚焦:我们专注于给推荐的架构风格定义、新兴模式以及将微服务开发映射到DevOps管道,同时专注于初步描述可用的研究主体,只专注于架构风格。
– 全面性:我们纳入了八个文献来源的结果和检索到的论文的引文,以增加论文库。此外,我们还包括截至2016年发表的论文;
– 系统方法:我们进行了一项系统的映射研究,实现了中定义的协议,然后使用论文中的所有参考文献进行了系统的滚雪球过程;
– 质量评估:虽然这不是一个系统的文献综述,但我们只囊括同行评议的贡献或非同行评议的论文,前提是它们在同行评议论文中的引用次数高于平均引用次数。
我们研究的贡献可以总结如下:
– 现有微服务架构风格和模式的分类;
– 根据文献中报告的实例,分析不同架构风格原则和模式的优缺点;
– 对基于DevOps的微服务技术进行分类;
– 确定研究差距和趋势。
论文结构如下。在第2节我们描述了所使用的方法论。在第3节显示了取得的结果。在第4节我们讨论了结果。在第5节确定了对系统有效性的威胁。第六节以一些结论收尾。
2 方法论
我们将彼得森定义的协议与系统的滚雪球过程结合使用。
2.1 目标和研究问题
我们的研究目标如下:
目标1:在云本地软件实现环境中,针对其优缺点,并以比较其与相关实现为目的,来分析架构风格的建议。
目标2:在云本地软件实现环境中,针对识别和比较不同阶段中的不同技术,并以将这些技术映射到DevOps进程中,来刻画微服务专长技术的特征。
关于目标1,我们提出以下研究问题:
– RQ1:哪些是不同的基于微服务的架构风格?
– RQ2:现有架构风格之间有什么不同?
– RQ3:文献中描述的已识别架构样式的实现突出了哪些优点和缺点?
关于目标2,我们提出了最后一个研究问题:
– RQ4:在微服务环境中应用了哪些不同的DevOps相关技术?
2.2 搜索策略
书目来源和搜索字符串。我们建议的八个书目来源中确定了相关作品:ACM数字图书馆、IEEE Xplore数字图书馆、Science Direct、Scopus、谷歌学术、Citeeser图书馆、Inspec和Springer Link。我们仅使用术语“总体”和“干预”,根据问题的PICO术语定义搜索字符串。我们没有使用结果和比较术语,以免降低所选搜索字符串的研究效率(表1)。我们应用了以下查询,使语法适应每个文献的来源:
RQ1-3:(microservice*或micro-service*)和(架构师*或迁移*或现代*或重新设计*或重新-设计*或重构*或重新-构建*或重新架构*或重新-架构*或进化*)。
RQ4:(microservice*或micro-service*)和(DevOps或开发*或创建*或代码*或验证*或测试*或检查*或打包*或编译*或归档*或发布*或配置*或部署*或监控*或性能*或基准*)。
符号“*”表示允许捕获搜索词中可能的变化,例如复数和动词变位。
表1。搜索字符串-PICO结构。
总体 |
干预-术语 |
P:微服务 |
微服务*;微服务* |
I:DevOps; 架构; 迁移 |
架构师*;迁移*;现代*;进化*;重新设计*;重新-设计*;重构*;重新-构建*;重新架构*;重新-架构*;DevOps; 开发*;创建*;代码*;验证*;测试*;检查*;打包*;编译*;归档*;发布*;配置*;部署*;监控*;性能*;基准; |
纳入和排除标准。我们根据我们的研究问题定义了选择标准,并考虑了以下纳入标准:
一般标准:我们只包括用英语写的论文。此外,我们排除了未经同行评审的论文。当然,如果同行评议论文的引用次数高于平均水平,我们也会考虑未经同行评审的论文的贡献。唯一引文的数量是从8个书目来源中提取的,去掉了非同行评议的来源。选定的作品涵盖最多两年,因此我们不期望有大量的引用。因此,即使没有经过同行评审,引用量大的作品也可以被认为是非常相关的。
按标题和摘要选择标准:我们删除了所有未提及微服务或将微服务一词用于不同目的或不同领域(例如电子、社会科学hellip;hellip;)的论文;
全文选择标准:我们排除了与我们的研究问题没有任何明显联系的论文或使用微服务但没有明确提及所采用的体系结构风格的论文,以及没有报告使用微服务的任何优点和缺点的基于微服务的实现的论文。对于前三个研究问题,我们考虑了基于微服务的体系结构风格的建议、基于微服务的云系统的实现、单片式系统到基于云的本地微服务系统的迁移、报告基于微服务的体系结构风格的优缺点的论文。对于第四个研究问题,我们考虑了关于DevOps技术在基于微服务的系统中的应用的论文,以及关于项目规划、编码、测试、发布、部署、操作和监控技术在基于微服务的系统中的应用的论文。
搜索和选择过程。搜索于2017年10月进行,包括在这个时间之前可用的所有出版物。应用这些检索词,我们检索到2754篇独特的论文。
测试纳入和排除标准适用性:在应用纳入和排除标准之前,我们对从检索到的30篇论文(每个作者10篇)的子集进行了适用性测试。在所选的30篇论文中,在30篇论文选出的8篇中,有两位作者意见不合,第三位作者参与了讨论,以消除分歧。
将纳入和排除标准应用于标题和摘要:我们将改进后的标准应用于其余的论文。每篇论文由两位作者阅读,如有分歧,第三位作者参与讨论以消除分歧。在七篇论文中,我们涉及到了第三位作者。在最初的2754篇论文中,我们按标题和摘要采用了85篇。
前后向滚雪球:我们进行了向后和向前滚雪球,考虑了85篇论文中的所有参考文献(858篇参考文献),并评估了引用检索到的所有论文,结果得到了一篇额外的相关论文。我们对于检索到的论文采用相同的过程。新选定的研究被纳入上述12篇论文中,以便组成最后一套出版物。
完成阅读:在两位作者阅读完全部的97篇论文后,论文鉴定过程产生了40篇同行评议论文和2篇非同行评审论文。从灰色文献中增加的两部作品与其余的作品相比,被引用的次数非常多,分别为18次和25次。(平均引文数=4.21)。相关引文与完整参考文献一起报告在附录中。在的案例中,我们还将获得的引文归因于同一工作,因为两个月后该网站发布了相同的信息。
表2 论文遴选过程。
选择过程 |
#采用论文 |
#被拒论文 |
验证 |
从书目中提取的论文 |
2754 |
|
由三位研究人员独立分类的10篇随机论文 |
基于标题和摘要的筛选 |
|
2669 |
初筛中良好的评议间协议(K-统计检验) |
确定的主要论文 |
85 |
|
|
二次论文收录 |
858 |
855 |
系统的滚雪球包括85篇主要论文中报告的所有引文,并根据标题和摘要进行筛选 |
供审查的完整论文 |
88 |
|
每一篇论文都被两位研究者完整阅读,并从参考文献中鉴定出858篇次级论文 |
基于完全阅读的筛选 |
|
46 |
根据纳入和排除标准被拒绝的论文 |
相关论文 |
42 |
|
|
遴选过程结果采纳了42篇2014年至2016年发表的论文。尽管“微服务”一词是在2011年引入的,但没有从2011年至2013年间的任何出版物中发现。超过65%的论文在会议上发表,另有23%的论文在研讨会上被接受。只有7%的论文作为期刊文章发表,近5%是非同行评审网站(灰色文献)(表2)。
3 结果
考虑到论文中最常提到的关注点往往很重要,我们现在根据其重要性总结基于微服务的解决方案的利弊。我们分析了论文中出现的最常见的建筑风格原则和模式,包括它们的优点和缺点。此外,我们还报告了与DevOps相关的技术。我们首先报告了文献中反映的微服务架构风格的原则,然后我们提取并给所调查的文献中定义的模式分类。
我们认为架构风格是一组原则和粗粒度模式,它们为一系列系统提供了一个抽象框架。架构风格由一系列架构原则和模式组成,这些原则和模式相互协调,使设计具有可识别性,设计活动具有可重复性:原则表达建筑设计意图,模式遵循原则,并在实践中普遍存在(经验证)。
3.1 微服务的一般优缺点和体系结构风格的原则
在所选作品中,微服务体系结构最常见的优点如下:
– 可维护性增强。所有论文都将基于微服务的实现作为最重要的考虑特征。
– 用不同的语言编写代码。强调使用不同语言的好处,与单片应用程序不一致。
– 灵活性。每个团队都可以根据自己的需要选择自己的技术。
– 重用。创建具有共享特性的组件可以通过减少维护工作量来提高可重用性,因为共
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[405548],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。