• No results found

Application of the Goals Model

6.4 Runtime Goals Modelling for Stability

6.5.2 Application of the Goals Model

We define, hereunder, stability goals and runtime tactics determined above using our runtime goals modelling. Then, we provide an example of a runtime goal instance.

Stability goals Performance and QualityOfAdaptation are dedined as follows.

Goal Achieve [Performance] Informal Definition

For every request received, the request processing should be accom- plished within the performance parameters defined in the SLA of the client issuing the request.

Formal Definition

∀ r:Request, c:Client

ExecuteRequest (r) ⇒ ♦ ≤ c.SLA(ResponseTime)

Node identifier n1:Self-awareArchitectureNode

Weight w = 1.0

Metric ResponseTime: Request → Time

def: the duration of processing request starting from client submit-

ting the request till submitting the response back to the client

Objective

ResponseTime = ResponseTime ≤ c.SLA(ResponseTime)

Tactics T1: VerticalScaling T3: HorizontalScaling T6: Concurrency T7: DynamicScheduling

Goal Achieve [QualityOfAdaptation] Informal Definition

Any quality attribute should not be worse than 20% of the threshold in SLA for more than 300 seconds.

Formal Definition

∀ r:Request, c:Client

QualityAttributes(r) ⇒ ♦5min≤ 20% c.SLA(QualityAttributes)

Node identifier n1:Self-awareArchitectureNode

Weight w = 0.7

Metric QualityAttribute: Request → Time

def: the quality attributes of processing requests should not be worse

than 20% of the threshold in the client SLA for more than 300ms.

Objective

ResponseTime = ResponseTime ♦300sec≤ 20% c.SLA(ResponseTime)

Tactics T1: VerticalScaling T3: HorizontalScaling T6: Concurrency T7: DynamicScheduling

Tactic VerticalScaling Unique identifier T1 Informal Definition

increase the number of VMs or their capacities

Object VMs Pre-condition

T otalCP U capacity of running VMs ≤

T otalCP U capacity of hosts running in the datacenter

Limits max(T otalCP U capacity) of hosts running in the datacenter Functionality

increaseCPUCapacity(vm: VM) ∨ increaseCoresNum(vm: VM) ∨ runNewVM()

Post-condition Waiting Requests are migrated to the new VM Variations T1.1: increase CPU capacity of 1 running VM

T1.2: increase the number of cores of 1 running VM T1.3: add 1 VM to running VMs

Tactic VMsConsolidation Unique identifier T4 Informal Definition

shut down hosts running least number of VMs and migrate their VMs to other hosts

Object Hosts, VMs

Pre-condition number of hosts running in the datacenter ≥ 2 Limits min 1 host running in the datacenter ∧

min 1 VM running

Functionality

migrateVMs(host: Host) ∨ shutdown(host: Host)

Post-condition Requests are migrated to VMs Variations T4.1: shutdown 1 host

An instance of the Runtime Goal Performance is defined as follows.

Goal G1(n1, ti)

Client c:Client Request r:Request

Objective ResponseTimec= ResponseTime(r) ≤ 15ms

AdaptationAction T1.3

SatisfactionDegree v = 14ms

Environment Runtime Goals Ge(ti) = {G1(N2, ti), G1(N3, ti), ...}

Environment Runtime Tactics Te(ti) = {N2.T4.1, N3.T1.3}

6.6

Experimental Evaluation

The main objective of the experimental evaluation to examine the stability goals and assess associated overhead when using the instantiated architecture and goals modelling in comparison with a foundational self-adaptive architecture (described in section 5.4.2.1).

6.6.1

Experiments Setup

To conduct the experimental evaluation, we implemented the instantiated architecture using the widely adopted CloudSim simulation platform for cloud environments [5]. The benchmarks and testbed configuration of these experiments are as described in section 5.5.1.1 and 5.4.2.2 respectively. The initial deployment of the experiments is: 10 hosts running 15 VMs (5 x m4.large, 5 x m4.xlarge, 5 x m4.2xlarge). Initially, the VMs are allocated according to the resource requirements of the VM types. However, VMs utilise fewer resources according to the workload data during runtime, creating opportunities for dynamic consolidation.

We set the runtime goals model with stability attributes from the stability analysis results (section 4.4). Regarding the quality of adaptation, we challenge the experiments with the settling time (the time required by the adaptation system to achieve the adap- tation goal to assure stable provision of attributes) and the accuracy of adaptation (how well the adaptation converges towards adaptation goals) [25]. The stability objectives and weights are hypothetical to stress the architecture, as defined in Table 6.2.

Table 6.2: Settings of Stability Goals

Attribute Description Weight Metric Objective

Performance Response time 0.50 ms 25

Greenability amount of energy consumed for operating hosts

0.20 kWh 25

Operational cost cost of computational resources (CPUs, memory, storage, bandwidth)

0.20 $ 50

Settling time time required by the

adaptation system to achieve stability goals

0.10 ms

Accuracy of adaptation

how close adaptation goals are met within given tolerances

0.10 %

6.6.2

Results of Stability Goals

We report, first, on the average of stability goals at each time interval. The average response time results for service types 1 and 2 are depicted in Figure 6.5. As shown in the figure, the self-aware architecture was able to result in more stable response time compared with the self-adaptive architecture in both service types, while the latter caused violation in response time in early time intervals when the peak workload started. At the same time, the self-aware architecture was also capable of stabilising the operational cost for longer time intervals than the self-adaptive architecture. It is worth noting that stabilising response time with energy consumption and cost at the same time is very challenging in case of peak workload, that is why the self-aware architecture had some violations during the highest peak load.

Next, we report the results of stability goals on average 30 runs of the experiments total results in Table 6.3. The average response time of all requests for each service type

Figure 6.5: Average Response Time of Service Types 1 and 2 during Time Intervals is much better achieved by the self-aware architecture (average 62.85 ms compared to 20.02 ms). This came with the price of higher operational cost (168.94 $ vs. 205.84 $) and adaptation overhead (as shown below). In such case, the self-aware architecture considered keeping the response time without violations while not fully stabilising the cost within the constraint, as the response time weight is higher. Meanwhile, the difference in response time is much bigger than the difference in cost and energy. While the energy consumption in self-adaptive architecture was less (24.96 kWh), the self-aware architecture was capable of keeping it within the stability goal (28.52 khW).

Table 6.3: Average Results of Stability Attributes

Stability Attributes S# Architecture Pattern

Self-adaptive Self-aware Response time (ms) 1 73.73 16.00 2 63.49 22.92 3 58.41 18.56 4 58.90 21.10 5 59.74 21.54 avg. 62.85 20.02 Energy consumption (kWh) 1 23.80 28.52 2 25.33 28.52 3 25.02 28.52 4 25.33 28.52 5 25.33 28.52 avg. 24.96 28.52 Operational cost ($) 1 137.18 193.44 2 184.08 230.88 3 159.02 199.38 4 180.66 199.68 avg. 168.94 205.84

6.6.3

Results of Adaptation Properties and Overhead

Table 6.4 shows the average results of adaptation properties. The accuracy of adaptation is shown in terms of the violation percentage in response time for all service types, and the settling time is shown as total time periods where the response time was violated. As shown in the table, the percentage of violations in response time is slightly higher in the case of self-aware architecture in all service types. But regarding the total periods of time where the response time was violated, the self-aware architecture was capable of keeping it much less than the self-adaptive architecture. For instance, response time violation in the case of service type 1 was 12.96% and 14.23% for the self-adaptive and self-aware architectures respectively, while the total time of violations was 11232 sec compared to 4320 sec. Meanwhile, the self-aware architecture violations were less for service types 2 and 4, with better settling time. This reflects the higher quality of adaptations and tactics selection.

With respect to the associated adaptation overhead (calculated by the time spent in the adaptation process), the average overhead of self-aware architecture is 251.62 sec on average of all service types, compared to 164.90 sec of the self-adaptive architecture. Yet, the difference in response time is much bigger than the difference in overhead (compared with Table 6.3).

Table 6.4: Average Results of Adaptation Properties

Adaptation Property S# Architecture Pattern

Self-adaptive Self-aware Accuracy of adaptation (%) 1 12.96 14.23 2 26.44 24.40 3 15.78 17.19 4 20.90 20.91 5 27.51 28.31 avg. 20.72 21.01 Settling time (ms) 1 11232 4320 2 24192 9504 3 13824 5184 4 19872 6048 5 19008 8640 avg. 72921.60 6739.20

Adaptation overhead (sec) 1 157.80 247.40

2 168.50 260.60 3 162.70 249.00 4 167.40 249.60 5 168.10 251.50 avg. 164.90 251.62

6.6.4

Discussion

The proposed architecture with its generic components to embed runtime tactics have successfully instantiated many tactics for different quality and stability attributes and

enriched the self-aware patterns with self-management quality capabilities to meet the changing workload and stabilise quality requirements during runtime. Applied to the evaluation case, the hypothetical case has shown the potential to deliver values on the following attributes:

• Efficiency. The ability to incorporate a range of tactics for different stability at- tributes into the patterns diversify the catalogue space from which the adaptation actions could be selected and implemented during runtime to meet stability require- ments under a dynamic workload.

• Ease of application and use. The structure of the tactics for different quality at- tributes was embedded efficiently within the generic components of the reference architecture. Their interaction specification also took place within the process flow while taking advantage of the self-awareness knowledge available from different self- awareness levels.

• Multiple uses. The generic approach for instantiating the architecture allowed fea- turing different combinations of self-awareness capabilities. Thus, incorporating tac- tics approach could be used in any of these patterns according to the requirements of the system, without unnecessary overhead caused by self-awareness components. Generally, the proposed architecture and goals modelling for stability have proven feasibility when embedding tactics for different stability attributes. The proposed archi- tecture tends to diversify the possible adaptation actions to be taken during runtime. The quantitative evaluation has proven the ability of the architecture and goals model to efficiently realise stability and enhance the quality of adaptation.

6.7

Related Work

In this section, we discuss related work in the context of architecture patterns and goals modelling.