Analyze Growth Trends and Forecast Future Requirements

profilevickyshema2021
Print.pdf

Print

Cloud Service Selection

By Smrati Gupta, Peter Matthews, Victor Muntes-Muléro, and

Jacek Dominiak

Selecting Services for Agile Application Development

In the application economy, digital business initiatives are the

forefront of the growth strategy of many companies. Cloud-

based solutions offer a competitive advantage for both large

companies and micro-, small-, and medium-sized enterprises

(SMEs), and this has led to a rapid increase in the number of

cloud service providers (CSPs). CSPs aim to improve consumers'

experience through digital platforms that allow users to access

data and services from any location and through multiple

channels with assured performance and availability. This is

usually studied from a single provider perspective, ignoring the

growing number of multicloud applications that use different

cloud services from different cloud service providers.

Beyond the usual cloud services and providers, the interest in

the Internet of things (IoT) and fog computing is quickly growing

as those technologies are seen as an opportunity for innovative

new services. With the increase in components and applications

in modern systems, the complexity of software systems

implemented in multicloud environments increases. Making

decisions in the new era of multicloud applications becomes one

of the next challenges.

Software companies need to quickly move through innovation

cycles to be competitive. Using continuous delivery approaches

becomes essential, increasing the need for agile decisions. Like

many other IT platforms, multicloud applications face important

challenges related to security, availability, performance,

compliance, integration, purchasing, automation, and insight.

Selecting the best cloud service for a particular application

requires an understanding of application requirements as well as

the interoperability between this specific service and other

services offered by other CSPs used by the application. This

decision may have an effect not only on the performance and

user experience of the application but also the business

support.

The best service selection depends on multiple criteria including

cost, risk, and quality. Continuous delivery models require

involving different stakeholders in the system, providing

complementary perspectives, including business decision

makers, architects, and systems operators.

One of the challenges is to find an efficient mechanism that

allows translating these requirements into measurable metrics

that make it possible to evaluate the fitness of a particular set of

cloud services and providers for a particular application. We will

discuss the use of a decision support system (DSS) for cloud

service selection. In this reading, we discuss the main challenges

related to DSSs and present the tools implemented for this

purpose. We also discuss the evolution of these DSSs in the

future and consider next steps.

Decision Support Systems for Cloud Service Selection

Developing a recommendation system for selecting a cloud

service is an interesting challenge from both a conceptual and a

technical point of view. In this section, we highlight the

challenges required for a generic DSS that assists the cloud

service selection process from the heterogeneous nature of

services in a multicloud environment.

Cloud Service Selection for Continuous Delivery

Continuous delivery is a goal for IT departments. Creating the

kind of apps used on a smartphone has driven a change from

the traditional waterfall method of development to the agile

strategy. Agile development has moved the application

deployment bottleneck from development to operations, and

DevOps is a process that will remove the bottleneck to

continuous delivery. This process delivers apps that are

constantly refreshed with new features and fixes at a decreased

cost. Delivering new applications requires speed and flexibility

and is facilitated by creating applications from cloud services.

Composing services into new applications reduces the amount

of new developed code that needs to be written. The challenge

is to select services that match the required functionality without

sacrificing performance and availability.

Risk Analysis for Cloud Service Selection in Multiclouds

A DSS for cloud service selection requires a systematic

mechanism that allows the translation of the requirements of the

naïve users into tangible properties of the cloud services that

need to be assessed while making a selection. Furthermore, the

mechanism needs to ensure quality guarantees for the end

users. Risk analysis provides a solution for development of such

a mechanism. Risks pose a problem in selecting and adopting

appropriate cloud services. Consequently, identification,

definition, and quantification of these risks are important

considerations in DSS development.

Another advantage of adopting risk-based analysis in decision

support design for cloud service selection is the integration of

multiple stakeholders into the decision-making process. Risk

analysis provides a concrete method of translating the

requirements from multiple stakeholders into the properties of

cloud services in the desired domains.

Risk-based analysis provides a mechanism to systematically

analyze the quality of cloud services by assessing the risks they

impose on the critical domains as well as the cloud service

properties that can mitigate those risks, underpinning the

satisfaction of quality requirements.

The first step in risk-based analysis involves identifying risks in

cloud service selection. A common method is to allow the users

to present their requirements in terms of the assets they intend

to protect. Assets can be described as business-oriented or

technical, tangible or intangible, etc. The risks that the user

entails by "cloudifying" its assets can be then be systematically

determined. Some typical risks in multiple cloud domains are:

 unauthorized access from the IaaS provider

 insufficient isolation

 insufficient physical security

 data exposure to government authorities

 increase of infrastructure prices

 expensive support services

 change of price models

 storage system corruption

Desirable cloud services have properties that ensure mitigation

of those risks. For example, mitigating properties can include

the existence of sufficient support services, data location in

desirable geographical boundaries, sufficient certifications from

the cloud service providers, or financial stability conditions. The

risk-based analysis provides a map of user requirements defined

as assets into desirable cloud properties described as

treatments within a DSS.

There are additional risks associated with multicloud

environment service selection:

 vendor lock-in

 complex data migration

 interoperability

 security breaches

 cost unpredictability

These risks require additional properties to be satisfied in order

to mitigate them. These properties are not essentially associated

with the cloud service, but with the interaction between the

services. For example, since a user may select services from

different providers, that user faces the risk of interoperability

between the services—due to compatibility issues, service-level

agreement issues, or simple change in price models of a certain

service leveraging effect on other services. Such risks are

mitigated by imposing constraints on the selection of a set of

services rather than a single service.

Risk-based analysis provides a means of communicating user

requirements in a DSS development. It also provides a

mechanism for quality assessment and identification of

comparative domains among the different services in single

cloud and multicloud environments.

Cloud Service Description Standardization

The standardization activity relating to service description has

been patchy and incomplete. A form of service description using

common data types and structures is a precursor to service

matchmaking decisions. There have been a variety of service

descriptions and standardization efforts over the years, but few,

if any, have had any lasting impact.

One of these efforts that had initial promise was the Service

Measurement Index (SMI) (Siegel & Perdue, 2012). SMI was an

initiative started by CA Technologies and later adopted by

Carnegie Mellon University, which managed the Cloud Services

Measurement Index Consortium (CSMIC) (Adobe Spark, n.d.).

SMI was based on a theory of "relative goodness" that was used

to circumvent the more accurate but complex semantic solutions

for comparison. SMI was finally abandoned when filling even a

small portion of the database for describing services proved

problematic.

An approach taken by MODAClouds (Model-Driven Approach for

Design and Execution of Application on Multiple Clouds) has

been to use data that provides constraints or functional and

nonfunctional requirements and pragmatically evaluating that

data based on the method of gathering and the availability of

the data. The MODAClouds project leaders felt that there was

little point in mandating a metric that could not be gathered, or

one that relied on the goodwill and compliance of a wide

number of cloud solution providers (CSPs). Data acquisition is an

ongoing limitation to the description and comparison of cloud

services.

Data Gathering in Multicloud Environments

The quality of recommendations made by the DSS is dependent

on the quality of data used for cloud services comparison.

Quality data enhances the possibility of meeting requirements of

the users more closely, but it also provides the users more

dimensions in which to compare the cloud services. Data

gathering for comparison has a number of obstacles:

 Lack of interest or business value: CSPs are the primary

source of data about the cloud services. Small CSPs may

enter data into a DSS database as a potential dissemination

strategy. Larger CSPs such as Amazon have no incentive to

provide comparison data and expressly exclude the

possibility in their terms and conditions.

 Legal issues and accuracy from third-party portals: There

are multiple analytic portals (e.g., CloudHarmony, Cloudy

Metrics) that provide a comparative analysis of cloud

services. Data from these websites can be accessed through

application programming interfaces or simple parsing.

However, this incurs a risk of data accuracy being

dependent on a third party. Legal constraints such as

copyright and terms and conditions may also prevent the

use of third-party data.

 Crowdsourced data quality: Crowdsourcing is another

mechanism to gather cloud services data. Data provision by

individuals is subject to the same accuracy and subjective

opinions as travel recommendation and review sites.

 Procurement complexity: Parsed data may not follow any

commonly known structure. The most valuable data for

comparison purposes is often described in freehand

fashion such as reviews or articles.

 Lack of standards: Another example of the problem within

the data gathering process is lack of a clear JSON-based

standard or lack of validating structure, which is the base

of XML.

Data gathering is an integral component to decision support,

and the module must provide a mechanism to automatically

gather and update data ensuring its accuracy and currency.

Coping with Complexity in SaaS

An important consideration in the development of a DSS is the

clear identification of the paradigms of comparison among the

different cloud services. Risk-based analysis provides a

systematic procedure for defining the requirements for cloud

services, but it still creates a challenge to build a clear paradigm

of comparison for software as a service (SaaS). Infrastructure as

a service (IaaS) and platform as a service (PaaS) domains are

more simple due to the objective nature of paradigms

(comparison based on technical specifications, on nature of

platforms, etc.).

SaaS domains imply a higher user interaction, thereby providing

a more abstract quantification of paradigms to compare with. In

addition, the types of SaaS are varied and lack any

benchmarking and standardization. Therefore, for a DSS

development, it is complicated to provide a recommendation for

an SaaS domain. It is important to account for this complexity in

the design of a multicloud DSS.

Decision Support Tools for Cloud Service Selection

In order to address the challenges outlined in the previous

section, the MODAClouds DSS was developed as a generic

recommendation system to provide help with cloud service

selection, taking into account the multicloud environment and

heterogeneous domains of the services. The DSS prototype is

based on a risk analysis-based requirement generation, allowing

multiple stakeholder participation along with inherent data

gathering mechanisms. It provides recommendations by solving

the multicriteria decision-making problem. In this section, we

outline the conceptual backbone forming the DSS.

DSS is made up of three main processes: data gathering and

evaluation from the end user, data gathering and evaluation

from the cloud service providers, and service matchmaking (see

figure below).

Basic Building Blocks of DSS

The primary step is to assimilate data from end users and

process it in order to identify end-user requirements. In

addition, there is a requirement to gather the data about the

cloud services and their providers (directly or using third-party

services, e.g., websites that provide comparative analysis of a

cloud service provider), and evaluate that data. Finally, there is a

need for service matchmaking, where the processed data from

cloud service providers is fine-tuned or operated upon by the

end-user requirements to generate appropriate solutions.

A major challenge identified in the decision-making process is

the specification of the requirements from the end user. To

overcome this challenge, the proposed DSS helps users specify

their requirements by enabling them to define the assets-risk-

treatments. The end user can be the business decision maker,

the technical system architect, and the risk analyst and

requirements engineer in an enterprise.

End users are required to specify assets that they intend to

protect. These assets can be intangible or tangible. Intangible

assets are further subdivided as business-oriented or technical-

oriented assets. Typical examples of business-oriented

intangible assets (BSOIA) include customer loyalty, product

innovation, and sales rate. Similarly, typical examples of

technical-oriented intangible assets (TOIA) include data

integrity, service availability, and end user performance.

Furthermore, the system architect is also allowed to specify the

tangible assets that must be protected in order to protect the

business- and technical-oriented intangible assets. The tangible

assets describe the architectural elements intended to be

externalized using the cloud services. Typical examples of such

assets includes server (IaaS), database (PaaS), middleware (SaaS),

etc. Along with this specification, the end user is expected to

supply the "importance" of an asset on a risk acceptability scale,

which identifies how much risk a tangible asset can endure.

Each of the assets supplied by the end user is susceptible to

certain risks. Therefore, the DSS allows the users to map the

possible risks from which the asset needs to be protected. The

identification of these risks per asset is a progressive learning

process. The risks associated with different assets are identified

with each use of the DSS, and are stored in the database. As the

number of DSS users increases, the association of assets to risks

becomes richer and more concrete.

Identifying the risks per asset, the user also identifies the

likelihood and consequence of each risk, communicating the

impact that is associated with each risk on the asset to the DSS.

The scales of expressing these quantities are:

 Likelihood: rare (1), unlikely (2), possible (3), likely (4),

certain (5)

 Consequence: insignificant (1), minor (2), moderate (3),

major (4), catastrophic (5)

A joint function quantifies the risk from the inputs above. This

function is highly flexible in nature: it may be discrete or

continuous, variable or constant. An example of this function is

the use of a composite risk index, defined as a product of

likelihood and consequence value. For each asset, a risk

acceptance function specifies how much risk likelihood and

consequence is acceptable for that asset. Furthermore, when the

user specifies the associated risks along with the likelihood and

consequence of each of the risk, the acceptability of risk is

based on the predefined acceptable risk levels for each asset.

Should the risk be acceptable, the treatment is not required.

However, if the risk is unacceptable, treatment is required to

mitigate the risk. Hence, for all the risks to be mitigated, the

treatments are required. These treatments serve as

requirements for the cloud services that the user desires. Typical

examples of treatments are data location guaranteed in certain

geographical region, availability of customer support, and

guarantees of the provider's financial stability.

Based on the treatments, the required properties of the cloud

services are identified. The data-gathering module in DSS

evaluates the cloud services on the basis of the user-identified

treatments. The DSS then performs service matchmaking. This

process involves providing an aggregate score on the basis of all

the treatments chosen by the user and a grading of the cloud

services. The closest match to the user requirements forms the

most eligible recommendation. In the next section, we provide

the technical implementation of these concepts for the

development of DSS.

Technical Challenges and Implementation

Overview of Technology Supporting DSS

Implementation of the DSS design within the scope of

MODAClouds has been developed considering future data set

needs and with the assumption that the data set needs to be

easily exportable and adaptable to the nature of the domain that

it is exploring. Taking that into account, the core of the data

storage is modeled around the graph-capable database

ArangoDB. ArangoDB is a free and open-source database with a

flexible data model for documents, graphs, and key values

(ArangoDB, n.d.).

For the DSS, documents and graph capabilities of the database

are most frequently used. The user interface is developed as a

single page web application in JavaScript with technologies such

as AngularJS, used for all the user interactions and user

feedback mechanisms, and NodeJS, which is used for XML

validation against XSD plus additional end points to automate

the collection of data from other parts of the project. DSS main

automatic data collection modules are designed as standalone

tools written in Scala programming language. All the modules

developed for the data collection can be easily extended or

embedded as libraries in the existing application to be adapted

to the specific data-gathering process needs.

User Data Gathering Implementation

A set of coherent user interface elements have been used,

including standard and enhanced selections mechanisms. This

will gather the requirements in an organized, comprehensible

fashion and accommodate the fact that the selection

requirements are incremental sets specified by the multiple

actors.

The primary selection tool is a searchable single selection list

box. The list is populated based on the previous steps or the

internally specified connections. The select menu is presented

across all the selection steps. Other techniques such as a slider

represent the data type with predefined ranges. The slider allows

the user to see all the ranges at once and gives direct visual

feedback on scale construction.

The process by itself is constructed as a six-step wizard that

allows the user to see the current context across the full

selection.

Cloud Services Data Gathering Implementation

The automatic data gathering process of the decision support

tool is composed of two main modules: data import and data

save. Those modules are designed to work as a part of the

application as well as the standalone modules. The data import

module is responsible for the data extraction and data

transformation from the structured data sources. The module is

able to consume the structured data from the flat file local data

sources in JSON, XML, and XLSX formats and respective over the

network representations of such structures, such as REST,

ODATA, and WSDL HTTP end points. The output of this module

is JSON, which can be invoked as an input for the data saved

module. The data save module is designed to consume a

predefined modeled JSON input in order to represent and build

graph-based data structures used by the process service

matchmaking based on the user-specified requirements. This

module is able to build up or enrich the data set based on the

data specification.

 Sharing process: In order to enable optimal requirement

selection, the DSS allows multiple actors to participate

during the definition of the set of requirements the service

needs to provide. This approach for data gathering ensured

the development of the selection sharing process. It allows

an actor to save the current set of selected assets, risks,

and treatments along with the selected values and

representation selection. The export file allows the user to

share the fulfilled selection with other actors using the

preferred sharing medium. Multiple sets of predefined

selections can be saved and shared to more closely

targeted parts of the process to the appropriate actor.

 Visualization: The DSS has been equipped with multiple

data visualizations in order to simplify the overview and

understanding of the user process, the mechanisms of

understanding the selection criteria interaction, and data

connections.

 Multicloud-specific features: The DSS also supports the

mitigation of risks particular to the multicloud environment

by assessing the risks related to the selection of a group of

services. For example, the DSS warns users in the case of a

vendor lock-in in a selection of services by evaluating the

providers for all the services in the selection. The DSS also

provides an evaluation of migration out of any service by

assessing the dimensions that support migration

capabilities in a service. These properties provide a holistic

vision of the solution matched to a multicloud environment.

Evolution of Cloud Services, Decision Support, and Future

Work

This reading discusses the use of a DSS to simplify the choice of

services that match functional and nonfunctional requirements.

This DSS uniquely uses risk management techniques to

complement the requirements used to deliver a qualified list of

services for composition. Some of the decision criteria are

subjective, and the use of decision support to simplify choices

removes the need for service choices based on multifactor

optimized expert systems. Cloud services are evolving into a

wider architectural movement that includes containers and

microservices. Cloud services used in a multicloud environment

linked with microservices and container APIs lead to a

multiservice style of architecture, building applications based on

component-oriented development. This is more suitable to agile

and DevOps development, mapping services to agile user stories

and components.

The number of internal and external services available for

developers is already increasing, and there will be a need to

identify, classify, and describe services in a common way to

remove redundancy and improve development times. This

evolution demands service description, discovery, and

matchmaking capabilities that can benefit from decision support

of the type described in this reading. Data gathering remains a

legally and technically difficult area, potentially preventing all

but the most simplistic of services choices being made. This is

an area of future investigation, possibly in collaboration with

some of the cloud standardization initiatives and organizations

such as the Cloud Security Alliance and Cloud Industry Forum.

References

Adobe Spark. (n.d.). Selecting a cloud provider. Retrieved from

https://spark.adobe.com/page/PN39b/

ArangoDB. (n.d.). Why ArangoDB? Retrieved from

https://www.arangodb.com/why-arangodb/

Siegel, J., & Perdue, J. (2012). Cloud services measures for global

use: The service measurement index (SMI). In 2012 Annual SRRI

global conference, Carnegie Mellon University. Mountain View,

CA.

Licenses and Attributions

Chapter 2: Cloud Service Offer Selection by Gupta et al.

from Model-Driven Development and Operation of Multi-Cloud

Applications is available under a Creative Commons Attribution

4.0 International license. © 2017, The Authors. UMGC has

modified this work and it is available under the original license.