大型数据/质量模拟的实用 DevOps
介绍
使用大数据技术的 DIA 的质量保证仍然是一个开放性问题。我们已经定义了一个以 MDE 技术为基础的 DIA 开发质量驱动框架。在这里,我们提出了一个用于预测 DIA 质量的工具架构。特别是,我们感兴趣的质量维度是效率和可靠性。该工具架构解决了使用 Petri 网模型模拟 DIA 行为的问题。
在我们看来,软件非功能性属性遵循 ISO[1]/IEC[2] 标准的定义,可以概括如下
- 可靠性:软件产品保持指定性能水平的能力,包括可用性和容错性。
- 性能:软件产品提供适当性能的能力,相对于所用资源的数量,如时间行为和资源利用率所描述。术语“性能”和“效率”在整个过程中被认为是同义词。
本章介绍了与分析相关的可靠性和性能属性以及指标的定义。服务水平协议 (SLA) 可以通过预测这些数量来轻松确定。SLA 可以直接注释在 UML 模型中,因此我们不考虑其他形式的规范(例如,Web 服务 (WS) 标准[3])。
动机
本节回顾了有关性能预测指标的一些基本定义。这些是通常在排队模型上下文中使用的标准定义,但也适用于使用其他形式主义(如随机 Petri 网[4])获得的性能预测。我们给出了请求被认为是单一类型(即单类模型)的基本情况的定义。对多种类型的概括很简单,在大多数情况下只需要在每个指标中添加一个索引来指示它所指的请求类别[5]。
性能指标
考虑一个抽象系统,其中 T 是我们观察系统的持续时间,A 是进入系统的到达次数,C 是完成次数(用户离开系统),我们可以定义常用的度量[5]
- 到达率:A / T
- 吞吐量:X = C / T(只是请求完成的速率)
在一个只有一个资源的系统中,我们可以测量 Bk 作为观察到资源 k 处于繁忙状态的时间,并将 Ck 表示为到达该资源的次数。如果 Tk 是观察时间的长度,那么我们可以定义另外两个度量
- 利用率,Uk = Bk / Tk
- 每个请求的服务时间,Sk = Bk / Ck
从这些度量中,我们可以推导出利用率定律 U = XS。上述量可以针对给定资源进行具体化,例如 Uk 代表资源 k 的利用率。最有用的一条基本定律是 Little 定律[5],它指出 N,系统中的平均客户数量,等于 X 的乘积,系统的吞吐量,和 R,客户在系统中停留的平均响应时间。正式地,这给出:N = XR。如果考虑一个封闭模型,其中客户的数量固定为 N,则公式保持不变。排队系统 的另一个基本定律是强制流定律[5],它非正式地指出,系统所有部分的吞吐量必须成正比。正式地,强制流定律由下式给出:Xk = Vk X,其中 Xk 是资源 k 的吞吐量,Vk 是资源 k 的访问次数,即用户访问该资源的平均次数。结合 Little 定律和强制流定律,可以分析和解决各种场景以获得特定所需数量。例如,可以计算分布式网络中服务器 k 的利用率,直接计算为[5] Uk=X Dk,其中 Dk=VkSk 称为服务器 k 的服务需求。
可靠性指标
可靠性预测领域已建立,专注于确定许多标准指标的值,我们将在下面回顾这些指标。执行时间或日历时间适合将可靠性定义为 R(t)=Prob(𝞃>t},即时间 t 的可靠性是时间到故障 𝞃 大于 t 的概率,或者系统在时间间隔 (0,t] 期间正常运行的概率。考虑到 F(t)= 1-R(t)(即不可靠性)是一个概率分布函数,我们可以计算随机变量 𝞃 的期望值,为 . 这被称为平均故障间隔时间 (MTTF)[6],表示观察到下一次故障之前的预期时间。
故障率(也称为故障发生率)表示在 (t,dt) 之间出现故障的概率,假设该组件在时刻 t 之前幸存下来,并定义为 R(t) 的函数:. 累积故障函数表示与每个时间点相关的平均累积故障,E[N(t)]。
可维护性可以通过修复时间 (𝜽) 落入区间 (0,t] 的概率来衡量 [6] M(t) = Prob { 𝜽 ⪯ t } 同样,我们可以计算随机变量 𝜽 的期望值,即 ,称为 MTTR (平均修复时间),修复率为 .
对于可以修复或恢复的系统,一个关键的可靠性指标是 MTBF (平均故障间隔时间) [6],它表示系统两次连续故障之间预期的时间。系统的按需可靠性是在请求时服务成功完成的概率。当知道完成服务的平均时间时,可能可以在 MTBF 和按需可靠性之间进行转换。
可用性定义为系统在给定时刻正常运行的概率 A(t)=Prob{state=UP,time=t}。特别是,稳态可用性可以用 MTTF 和 MTTR (或 MTBF) 的函数表示: .
现有解决方案
虽然存在多种工具可以模拟软件模型并获得其质量属性,但没有工具能够从软件设计模型中模拟使用 DICE 中考虑的大数据技术的应用程序的质量。
工具的工作原理
下一张图片显示了仿真工具的可能架构和内部数据流。
接下来,我们将描述不同模块、它们共享的数据以及它们的性质。
- DICE-IDE 是一个基于 Eclipse 的环境,其中集成了不同的组件。
- 仿真过程从定义一组 DICE-Profiled UML 模型开始。在此阶段,使用现有的建模工具。Papyrus UML 是支持 MARTE 的开源 UML 建模工具之一,DICE 配置文件基于此。如技术报告 [7] 中所述,此组件/工具用于执行初始建模阶段。
- 当用户 (质量保证工程师) 想要模拟模型时,他/她使用 Simulator GUI 启动仿真。Simulator GUI 是一个专用的 Eclipse 组件,它为 DICE-IDE 提供了一组图形界面。这些界面与 DICE-IDE 紧密集成,为与底层分析工具交互提供了透明的方式。Simulation Configuration Component 是 Simulator GUI 的一个子组件。它负责:(i) 请求要模拟的模型 (使用 DICE-IDE 基础设施、对话框等);(ii) 请求模拟器所需的任何额外数据。
- 当用户完成仿真配置后,Configuration Tool 将两个不同的文件传递给模拟器:DICE-profiled UML 模型 (即要分析的模型) 和配置模型。模拟器是一个在后台运行的专用 OSGi 组件。它专门设计用于协调执行实际分析的不同工具之间的交互。
- 模拟器执行以下步骤:(i) 使用 M2M 转换工具将 UML 模型转换为 PNML 文件;(ii) 使用 M2T 转换工具将前面的 PNML 文件转换为 GreatSPN 可读文件;(iii) 使用 GreatSPN 工具评估 GreatSPN 可读文件;(iv) 从 GreatSPN 生成的工具特定文件构建工具无关的解决方案。为了执行 M2M 转换,我们选择了 eclipse QVTo 转换引擎。QVT [8] 是 OMG (UML 和 MARTE 标准背后的同一机构) 提出的定义 M2M 转换的标准语言。QVT 提出了三种可能的语言来定义模型转换:操作映射 (QVTo,命令式,低级)、核心 (QVTc,声明式,低级) 和关系 (QVTr,声明式,高级)。但是,虽然有重要的努力来为它们提供实现,但只有 QVTo 的实现已准备好投入生产,因此是选择使用 QVTo。为了执行 M2T 转换,我们选择了 Acceleo [9]。从 Acceleo 3 开始,用于定义 Acceleo 转换的语言是 OMG 提出的 MOFM2T 标准 [10] 的实现。从这个意义上说,我们选择了 Acceleo,使我们所有的工具链都符合 OMG 标准,从初始 (配置文件) UML 模型的定义到第三方分析工具 (使用专有格式)。分析是使用 GreatSPN 工具进行的。GreatSPN 是一个完整的框架,用于对 Petri 网进行建模、分析和仿真。该工具可以利用我们的仿真框架所需的那类 Petri 网,即广义随机 Petri 网 (GSPN) 及其彩色版本,即随机良构网 (SWN)。GreatSPN 包括各种 GSPN/SWN 求解器,用于计算性能和可靠性指标 (读者可以参考“最新分析”可交付成果 D1.1,了解有关 GreatSPN 功能的详细信息)。
- 最后,模拟器生成的工具无关报告在 DICE-IDE 中使用 Simulator GUI 的图形组件呈现。该组件提供了一个全面的性能和可靠性指标评估报告,以初始 UML 模型中定义的概念的形式呈现。
开放挑战
使用大数据技术的软件应用程序的仿真的开放挑战与软件系统的通用仿真共享。以下列表描述了三个主要挑战。
- 获得准确的模型参数:用户在 UML 模型中需要提供的一些信息不容易获得,例如活动的执行时间或条件运算符中每个分支的执行概率。例如,用户需要强大的监视器来测量模型参数的精确值,或者对运行应用程序的日志进行过程挖掘技术来发现它们,或者需要重要的专业知识来估计它们。虽然 Simulation Tool 实现了 *what-if* 分析以减轻用户了解某些参数的精确值的负担,但创建和评估单个精确/准确模型仍然是一个开放的挑战。
- 模型生成中的可用性:生成作为仿真工具输入的配置文件 UML 模型是通过 Papyrus 工具完成的。这些配置文件模型使用 DICE 配置文件,该配置文件又基于标准 MARTE 配置文件。对于不熟悉使用 MARTE 的用户来说,从一开始就可能不清楚 DICE 从 MARTE 构造型继承的一些属性的含义、目的和定义。使用标准配置文件可能会降低为工具创建正确输入的学习曲线坡度。
- 存在罕见事件的仿真:*罕见事件* 的存在阻碍了基于离散事件仿真的系统评估。例如,这可能发生在执行概率非常低的条件分支中。在这种情况下,该工具的当前实现将需要更多仿真时间才能生成具有高置信度的结果。在应对这一挑战方面已经取得了研究进展,并提出了在存在罕见事件的情况下进行仿真的技术。目前,为 Simulation Tool 配备这些技术中的一些技术是一个开放的挑战,也是未来工作的一部分。
应用领域:已知用途
通过已实现的 Simulation Tool 进行的质量仿真已应用于 BigBlu 应用程序。BigBlu 是为税务欺诈检测而开发的电子政务软件系统,它管理来自纳税人的大量数据。有关 BigBlu 的更详细描述,请参见 欺诈检测。
下一张图片描绘了使用 Papyrus 工具创建的 UML 活动和部署图,它们是 Simulation Tool 的输入。这些模型用 DICE [11] 和 MARTE 配置文件进行注释。更详细地说,部分 (a) 显示了应用程序的工作流程。它从一个初始节点开始,然后是一个决策节点,根据决策条件 (例如,第一个分支中的“欺诈指标创建”) 将执行工作流程划分为多个路径。每条路径都包含一些活动,这些活动代表特定的执行步骤。这些活动节点被构造型为 <<GaStep>>,这是 MARTE 的一个构造型。<<GaStep>> 允许捕获应用程序操作的性能属性,例如任务的预期执行时间或执行的概率。最后,每条路径都汇聚到一个合并节点,然后工作流程完成。
部分 (a) 中活动图的每个分区都映射到一个工件,该工件由部分 (b) 中的设备托管。因此,图 (b) 代表了应用程序在物理设备中的部署,也可以通过 MARTE 构造型 (例如,PaLogicalResource) 进行细化,以捕获硬件详细信息。
模拟工具已被用于评估 BigBlu 的预期性能 - 就执行请求的响应时间和资源利用率而言 - 针对应用程序的使用强度(即请求的到达率)和部署的大数据处理节点数量(见大数据处理节点是执行启动欺诈检测活动的计算节点)。获得的结果类型如下一幅图所示,其(a)部分描绘了 BigBlu 的预期响应时间随请求到达率和处理节点数量的变化而变化,(b)部分描绘了预期的资源利用率。更详细的研究、模型中的输入值和实验可以在[12]中找到。
结论
本章探讨了使用大数据技术的软件应用程序的模拟,以评估其性能和可靠性方面的质量。它还介绍了 DICE 模拟工具,这是一个实现此质量模拟的软件工具。DICE 模拟工具能够涵盖模拟工作流的所有步骤:从设计要模拟的模型,将其模型转换为可分析的模型,模拟可分析的模型以计算其属性,到通过用户友好的 GUI 将质量结果检索回设计模型域的用户。
参考文献
[edit | edit source]- ↑ "ISO 标准".
{{cite web}}
: Cite has empty unknown parameter:|1=
(help) - ↑ "IEC 标准".
{{cite web}}
: Cite has empty unknown parameter:|1=
(help) - ↑ "Web 服务标准列表".
- ↑ Molloy, M.K. (1981). 分布式处理模型中延迟和吞吐量度量的集成。博士论文. UCLA,洛杉矶(CA)。
- ↑ a b c d e Lazowska, E.D.; Zahorjan, J.; Sevcik, K.C. (1984). 定量系统性能:使用排队网络模型的计算机系统分析. Prentice-Hall Inc. ISBN 0-13-746975-6.
- ↑ a b c Johnson, B.W. (1989). 容错数字系统的设计与分析. Addison-Wesley. ISBN 0-201-07570-9.
- ↑ DICE 联盟 (2015). 技术现状分析 (报告). http://wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2015/08/D1.1_State-of-the-art-analysis1.pdf.
- ↑ 对象管理组 (OMG) (2011). 元对象设施 (MOF) 2.0 查询/视图/转换规范. 1.1. http://www.omg.org/spec/QVT/1.1/.
- ↑ Eclipse 基金会 & Obeo. "Acceleo". Retrieved 1 December 2015.
- ↑ 对象管理组 (OMG) (2008). MOF 模型到文本转换语言 (MOFM2T). 1.0. http://www.omg.org/spec/MOFM2T/1.0/.
- ↑ A.Gómez; J.Merseguer, E. Di Nitto, D.A. Tamburri (2016). "面向数据密集型应用程序的 UML 配置文件". 第二次质量感知 DevOps 国际研讨会 (QUDOS). ACM. pp. 18-23. doi:https://doi.org/10.1145/2945408.2945412. ISBN 978-1-4503-4411-1. https://zaguan.unizar.es/record/60722?ln=es.
- ↑ D. Perez-Palacin; Y.Ridene, J.Merseguer (2017). "DevOps 中的质量评估:税务欺诈检测系统的自动分析". 第 3 届质量感知 DevOps 国际研讨会 (QUDOS). ACM. pp. 133-138. doi:https://doi.org/10.1145/3053600.3053632. ISBN 978-1-4503-4899-7. https://zaguan.unizar.es/record/61309?ln=es.