没有合适的资源?快使用搜索试试~ 我知道了~
软件X 17(2022)100947原始软件出版物用MAO和RenkuJosef Spillnera, Pagiotis Gkikopoulosa,Pamela Delgadob,Christine ChoiratbaZHAW School of Engineering,InIT,Techniques str. 9,PF,8401温特图尔,瑞士bSDSC、苏黎世联邦理工学院和瑞士ar t i cl e i nf o文章历史记录:收到2020年收到修订版,2021年10月17日接受,2021年保留字:软件技术数据科学复制a b st ra ct在软件工程中,开发人员对分解和重组基于微服务的应用程序的兴趣导致了微服务人工制品技术的巨大浪潮。 为了更好地理解它们,研究人员每年都要对它们进行数百次实验和实证研究。提高这些研究的重复使用性和可重复性需要两个要素:一个自动化重复实验的系统,以及一个强调研究可重复性的研究数据管理系统。这两个框架现在都可以通过微服务Artefact Observatory(MAO)和Renku获得。在本文中,我们解释了目前的能力,MAO作为一个全球性的联邦研究基础设施,确定软件质量特征。此外,我们强调了MAO与Renku的集成,以展示涉及全球分布的研究团队的可重复的端到端实验工作流程。版权所有©2021作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v21.09永久链接到代码/存储库使用的此代码版本https://github.com/ElsevierSoftwareX/SOFTX-D-20-00082法律代码许可证Apache-2.0使用git的代码版本控制系统使用python的软件代码语言、工具和服务,docker编译要求,操作环境依赖性etcd,postgresql如果可用,链接到开发人员文档/手册https://github.com/serviceprototypinglab/mao-orchestrator/tree/master/Docs问题支持电子邮件pang@zhaw.ch1. 动机和意义微服务工件是软件的基本单元,其组成是为了产生可执行,可分发和可扩展的应用程序。通常以单个(原子)文件或复合归档文件的形式出现,每个文件的特征都会影响运行时应用程序的整体特征。因此,软件技术研究人员对代码分析、工件级的静态属性确定、某个时间点的动态运行时评估以及部分由Swissuniquet P-5 Easy FAIR资助-*通讯作者。电子邮件地址:josef. zhaw.chpang@zhaw.ch(Josef Spillner),www.example.com(Panagiotis Gkikopoulos),pamela. epfl.ch(PamelaDelgado),christine. datascience.ch(Christine Choirat)。https://doi.org/10.1016/j.softx.2021.100947这些指标随着时间的推移。从大量已经发表的作品中,可以估计微服务研究的多维空间:1. 人工制品类型:每个编程语言(对于平台即服务或PaaS)都有传统的人工制品类型,例如Java通常,它们使用胶水代码设置为微服务。还有直接可执行的语言和提供商特定的云 函 数 工 件 ( 用 于 Function-as-a-Service 或 FaaS ) , 如Google Cloud Functions和AWS Lambda,以及智能合约( 用 于 Blockchain-as-a-Service 或 BCaaS ) , 如 Solidity[3]。Polyglot人工制品类型进一步编码-传递容器和虚拟机映像(例如,Docker,2352-7110/©2021作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxJosef Spillner,Panagiotis Gkikopoulos,Pamela Delgado et al.软件X 17(2022)1009472Fig. 1.再现光谱。资料来源:[1]。OVA)及其构建文档(例如Dockerfiles [4])。最后,有组合文档(例如Docker Composite,Kubernetes manifest)甚至捆绑的组合(例如Helm charts)。2. 伪像存储库:范围从通用软件托管(例如私有和公共GitLab/GitHub实例)到专业存储库(例如Docker Hub,Maven Central ) 到 混 合 解 决 方 案 ( 例 如 GitHub ) 。Artifactory)。通常,它们之间存在质量和活动差异,因此有必要将其中许多组合起来作为代表性样本。3. 注:有一些工作涉及设计和适当的抽象层次和因素[5],实现技术,代码转换,部署[6],实时迁移,基准测试[7]和自我管理。4. 研究方法:有访谈的实证研究[8],基于数据收集的定量研究[9],模拟[10],实验[11]以及设计科学方法[12]。5. 研究数据处理:一些作者根本没有发表其他人则指向数据集,在某些情况下甚至是可复制或可进化的数据集。它们属于再现性谱的不同类别。与其他社区相比,微服务没有标准的存储库,也没有被广泛接受的引用数据集。然而,将机器可读数据反馈到围绕微服务的开发和运行时工具中被认为是有用的,正如知识库的增殖所证明的那样[13]。此外,一些研究做出了广泛的假设,可以用代表性数据样本来收紧。微服务Artefact Observatory(MAO)旨在克服与微服务相关的研究数据的自动获取,聚合,验证和分析其主要特征是联邦制独立操作的节点,涉及几个研究机构,以建立基于共识的基础事实,可靠的操作,以确保数据分析管道无故障地工作,以及新的微服务技术的可扩展性。在单节点级别,与云原生空间中存在的其他数据管理和监控框架存在明显的重叠。然而,MAO的主要特点是它支持的分布式和协作环境。MAO集成了数据采集工具,但这些工具是计划用于自动化操作的通用工具,因此将其与SonarQube等监测框架区分开来[14]。虽然MAO有一个基本的数据工作流程自动化系统,类似于Airflow [15],Dagster [16]或Prefect [17]等框架,它主要是一个分布式协作工具,而不是一个自动化框架。MAO并且以可以容易地比较和交叉验证的方式排列所得到的再现数据,并且部分地自动化该验证。一旦所有数据汇总并确认,毛泽东结束了。本文在介绍《毛》本身的基础上,论证了《毛》如何与《人库》互补。与静态数据存储库相反,Renku不仅是一次性的接收器而是作为其他研究人员的长期平台,以策展,增强和参与由MAO连续注入的数据,以提高再现性(见图11)。①的人。2. 软件描述2.1. 微服务Artefact Observatory观察站的任务是以度量的形式收集关于软件工件的信息和见解,这些度量允许评估将这些工件用作微服务的整个软件应用程序。度量可以指元数据的完整性、代码质量、安全漏洞的存在、单元测试覆盖率、启动延迟、存在模糊测试或弹性的鲁棒性以及其他特性。这些指标的细节是用户定义的。要将用于部署的观测工具与所有自动化解决方案一样,长期目标是消除对每个研究进行孤立和容易出错的数据采集相反,研究人员可以只查询一组指标,在一个时间窗口内的人工制品库,并基于他们的分析,这是保证是稳定的,验证和可引用的查询结果。该观测站由一个通用的底层联邦基础设施组成,其中节点独立运行,并通过共识投票进行协调。节点通过聚合和分析获取新数据和/或创建新数据。所有操作都具有弹性、可自动化和可审计性,提供关于软件人工制品的基本事实知识的兴趣,具有来自可信运营商的最高可能级别的验证。然后,这些知识适合被引用,并用于研究人员的进一步研究。具体而言,《反洗钱法》针对这些因素:1. 自动化:重复的数据采集和勘探应该在固定的时间段内重复进行,以产生精确的表示。因此,任务调度器是一个关键组件,同时仍然允许早期实验的临时调用2. 弹性:如果网络连接失败或计划的任务没有产生或明显无法使用的结果,则应在最初计划的时间之后耐受更Josef Spillner,Panagiotis Gkikopoulos,Pamela Delgado et al.软件X 17(2022)1009473图二. Renku平台。资料来源:[18]。扩展的故障场景,冗余可以通过在多个节点上安排实验来实现。3. 投票:如果输出数据中存在差距或冲突, 在运行相同实验的节点中,基于简单投票算法的冲突解决系统将尝试提供充当基本事实的解决方案研究人员可以在他们的度量规范文件中指定他们希望用于此的算法。在这个阶段,原型实现支持多数表决、加权平均表决或列出所有分歧值的选项,而不是自动解决冲突。4. 审计:关于何时获取哪些数据或进行哪些实验的信息与关于节点的硬件信息一起记录,以便可以进一步研究例如不同运行时行为的比较。已经实现了一些专门针对微服务工件的观测模块。因此,每个MAO节点都能够安排从Docker Hub检索元数据的日常操作,或者从AWS Serverless Application Repository每周下载无服务器应用程序,以及其他类型的工件。聚合值的确定,例如每个工件的维护者的平均数量,是这些模块的一部分,但是也可以被实现为连续调度的专用聚合模块。此外,MAO确保所有度量都保持在时间轴中,以便可以随时间跟踪软件工件以及开发人员/调试人员活动的演变。MAO主要由苏黎世应用科学大学推动,尽管其他机构的感兴趣的研究人员也越来越多地参与其中,如其网站所示1可用的出版物包括框架本身[19,20]以及特定于工件类型的定量评估,包括Helm charts [21],SAM应用程序[22],DApps [23],Docker映像和Dockerfiles [24]。2.2. 仁库Renku平台由RenkuLab(基于Web的应用程序)和Renku(用于管理代码、数据、工作流和实际使用知识图谱的命令行工具)组成它1 毛 网址:https://mao-mao-research.github.io/。图三. 集成工作流。侧重于三个支柱:再现性、可重用性和协作。RenkuLab的公共实例可用2,但机构也可以托管自己的实例并将其联合。Renku项目被划分为多个项目,这些项目与数据集和交互式环境以及集成的GitLab实例进一步链接,其中Renku项目作为版本化的GitLab项目被持久化(图2 )。 2)的情况。提供了R Studio 、Xboxyter Notebooks和交互式shellRenku的主干是知识图,用于记录和查询数据与代码之间的关系。分析工作流程以以下方式与知识图链接:1.分析步骤的输入和输出在工作完成时被记录到知识图二、这些步骤可以2 RenkuLab网站:https://renkulab.io/。Josef Spillner,Panagiotis Gkikopoulos,Pamela Delgado et al.软件X 17(2022)1009474见图4。 数据管道。重复或集成到更复杂的工作流程中。3.所有数据产品的来源总是可以通过简单的工具访问。4.版本控制内置于数据、代码和工作流中。2.3. 集成系统将MAO与Renku集成有两种可选的设计:在Renku中运行MAO作为交互式环境,或者使用Renku由于松耦合的优势,我们实现了后一种设计MAO此外,MAO编排器将使用Renku3. 说明性示例我们通过端到端的数据分析管道展示了MAO的功能。我们从一个标准的管道开始,包括数据采集、聚合和分析。然后,我们概述了上述管道的转换,以利用MAO和Renku的自动化功能。3.1. 标准管道本示例的标准管道(图4)将包括以下阶段:1. 数据获取:执行收集原始数据的工具,例如软件工件和代码存储库的下载器或软件元数据的Web Scraper。这可以通过使用cron作业或类似工具定期进行调度。2. 聚合:一旦收集到足够的数据,用户提供的聚合脚本将从原始数据生成数据集,将其转换为可用的格式以供分析。3. 分析:数据集现在可以以各种方式用于分析,例如使用R脚本或Quixyter笔记本。3.2. 转换为Renku项目转换此管道的第一步是设置Renku项目。原始数据可以用作输入数据,并且可以将聚合和分析脚本添加到项目中。然后,可以将管道的聚合和分析步骤记录为Renku可再现的工作流程。这将允许重新生成数据集并更新分析,只要新的输入数据被推送到存储库。3.3. 使用MAO orchestrator进行数据采集研究人员将需要设置一个MAO协调器。虽然系统可以通过Docker- Compose独立启动,但它也可以配置为加入现有的MAO联邦,在这种情况下,它将可以访问数据采集工具的共享注册表(对应于上述管道的第1阶段)和联邦的数据集(对应于Renku项目)。数据采集工具需要容器化,以便协调器可以通过Docker API与之交互。之后,可以将工具注册到协调器中,协调器将其添加到注册表中,以便联合的其他成员也可以部署它。新工具现在可以通过orchestrator界面使用标准crontab语法定期运行。3.4. Renku可复制的工作流程一旦数据采集完成,协调器将使用新的输入数据更新Renku存储库然后,它可以自动调用Renku这意味着,数据采集工具的每次预定执行,从原始数据到分析结果的整个管道都将自动运行。 知识图谱(Fig. 5)在每次运行时更新。4. 影响虽然我们围绕MAO的研究保持了对微服务的关注,但底层框架也可以使通过网络定期检索的其他离散数据点的定量研究现代化。这包括财务数据(例如:外汇汇率或股票行情)、健康Josef Spillner,Panagiotis Gkikopoulos,Pamela Delgado et al.软件X 17(2022)1009475图五. MAO-Renku集成工作流程的可视化。数据(如每个行政区的大流行病例)、天气和社交网络。我们希望在目前的焦点之外,随着资助机构对数据管理计划的重视,重点将越来越多地转向高能力的研究基础设施和研究数据管理系统。有了MAO及其与Renku的接口选择,这一问题就可以得到解决。MAO另一方面,Renku可以以可重复的方式处理数据管理并自动化分析,从而轻松访问复制和验证研究以及协作。对于我们上面讨论的软件示例,MAO可以自动化采集,也允许任何人复制它,而Renku可以在获取新数据时自动化重复分析的过程,同时维护数据出处和版本。在合作的例子中,不同的机构可以使用MAO从他们自己的监测基础设施中汇集汇总数据(例如软件缺陷、天气或流行病相关数据),并轻松共享Renku工作流程,以相同的方式对其进行管理和分析。5. 结论MAO提供了一个联邦基础设施来执行独立的定量软件度量观察,通过比较观察结果来促进共享的基本事实,并通过可重复的实验获得见解。Renku确保了可重复性,其使用是透明集成的毛泽东对此软件工程研究人员正在寻找合适的工具来执行长期观察,演变/趋势研究和最近新兴的人工制品技术的评估,应该考虑使用MAO从这些特性中受益。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作引用[1]彭路计算科学中的可重复性研究。Science2011;334(6060):1226-7.[2]放大图片作者:J. Gemchecker:报告宝石在ruby铁路项目。在:2018年IEEE软件维护和演进国际会议,ICSME 2018,马德里,西班牙,9月(2018)23-29。IEEE Computer Society; 2018,p. 700-4.http://dx.doi.org/10.1109/ICSME.2018.00080.[3]张文,张文.Deviant:一个突变测试工具,Solidity智能合约在:IEEE区块链国际会议,区块链2019,亚特兰大,GA,美国,7月(2019)14-17。IEEE; 2019,p.319-24. http://dx.doi.org/10.1109/Blockchain.2019.00050网站。[4] Oumaziz MA , Falleri J , Blanc X , Bissyandé TF , Klein J. 处 理dockerfiles家族中的重复项:向专家学习。在:2019 IEEE软件维护和演进国际会议,ICSME 2019,Cleve- land,OH,美国,2019年9月29日至10月4日。IEEE;2019,第524-35页。http://dx.doi.org/10.1109/ICSME.2019.00086网站。[5]Al-Debagy O,Martinek P.评估微服务器的指标框架vice建筑设计. J Web Eng 2020;19(3-4):341-70. http://dx.doi的网站。org/10.13052/jwe1540-9589.19341。Josef Spillner,Panagiotis Gkikopoulos,Pamela Delgado et al.软件X 17(2022)1009476[6] Bravetti M,Giallorenzo S,Mauro J,Talevi I,Zavattaro G.微服务架构部署的 正 式 方 法 。 In : Bucchiarone A , Dragoni N , Dustdar S , Lago P ,Mazzara M , Rivera V , Sadovykh A , editors. 微 服 务 , 科 学 和 工 程 。Springer; 2020 , p. 183-208. http://dx.doi.org/10 的 网 站 。 1007/978-3-030-31646-4_8。[7] Gan Y,Zhang Y,Cheng D,Shetty A,Rathi P,Katarki N,Bruno A,Hu J,Ritchken B,Jackson B,Hu K,Pancholi M,He Y,Clancy B,Colen C,Wen F,Leung C,Wang S,Zaruvinsky L,Espinosa M,Lin R,Liu Z,Padilla J,Delimitrou C. 揭示微服务在云和边缘系统中的硬件和软件影响。IEEEMicro 2020;40(3):10-9. http://dx.doi.org/10.1109/MM.2020.2985960网站。[8] 吴伟杰,李伟杰.关于微服务设计领域的专家访谈研究。在:第11届IEEE面向服务的计算和应用会议,SOCA 2018,巴黎,法国,11月(2018)20-22。IEEEComputerSociety;2018,p.137-44.http://dx.doi.org/10.1109/SOCA.2018.00028.[9] 吴 伟 杰 , 王 伟 杰 . 2500 个 Docker Hub 镜 像 的 漏 洞 分 析 。 2020 , CoRRabs/2006.02932,arXiv:2006.02932,https://arxiv.org/abs/2006.02932。[10]Shadija D,Rezai M,Hill R. 微服务:粒度与性能。 In:Anjum A,SillA,Fox GC,Chen Y,editors.第10届公用事业和云计算国际会议的配套程序ACM; 2017,p. 215- 220. http://dx.doi.org/10.1145/3147234.3148093网站。[11]Malawski M,Gajek A,Zima A,Balis B,Figiela K. 科学工作流的无服务器执行:Hyperflow、AWS lambda和Google Cloud函数的实验。Future GenerComput Syst 2020;110:502网址://dx.doi.org/10.1016/j.future.2017.10.029网站。[12] 余东,金英,张英,郑晓.支持微服务的雾应用的服务通信安全问题调查。ConcurrComputPactExp2019;31(22).http://dx.doi.org/10.1002/cpe.4436网站。[13] Apel S,Hertrampf F,Späthe S.面向微服务和云计算的知识模型ConcurrComput Pact Exp 2020;32(13).http://dx.doi.org/10.1002/cpe.5414网站。[14] Joshi SL , Deshpande B , Punnekkat S. 软 件 产 品 可 靠 性 依 赖 因 子 的sonarqube实验分析见:Tarhan AK,Coskunçay A,编辑。软件测量国际研讨会和软件过程和产品测量国际会议(IWSM Menuum 2019)的联合会议记录,荷兰哈勒姆,10月(2019)7-9,CEUR研讨会会议记录2476。CEUR-WS.org; 2019年,第130-7页http://ceur-ws.org/Vol-2476/short5.pdf[15]辛格山口气流Berkeley,CA:A Press; 2019,p.67比84[16] 戴格斯特 2021,https://dagster.io/,访问时间:2021-10-07。[17] 长官 2021,https://www.prefect.io/,访问时间:2021-10-07。[18]雅布隆斯基急诊室。Renku平台2020年,在线:https://renkulab.io/gitlab/team-renku/easyfair/-/blob/master/imgs/renku_component_ecosystem。 png。[19]Gkikopoulos P.全球微服务人工制品观测站的数据分布和利用。第15届IEEE世界 服 务 大 会 ( SERVICES ) , 意 大 利 米 兰 。 2019 , p. 319-22.http://dx.doi.org/10.1109/SERVICES.2019的网站。00089。[20]Gkikopoulos P,Spillner J,Schiavoni V.在全球规模的微服务人工制品观测站监测数据分布和利用。2020年,arXiv:2006.01514。[21]Spillner J.基于Kubernetes的云应用程序的Helm Charts的质量评估和改进。2019年,arXiv:1901.00644。[22]Spillner J. AWS无服务器应用程序存储库中云功能演变的定量分析。2019年,arXiv:1905.04800。[23]Qasse IA,Spillner J,Bibrab MA,Nasir Q.关于DApps特性的研究,在:2020年第二届IEEE去中心化应用和基础设施国际会议上出现-会议因冠状病毒而转移。[24]Müller M,Rüdisüli M. DQA:Docker质量分析。2020年,Docker镜像:https://hub.docker.com/r/svl7/dqa-mao。
下载后可阅读完整内容,剩余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直接复制
信息提交成功