大型資料/質量模擬的實用 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.