Pervasive mobility and an exponential increase in the number of connected devices are adding to IT complexity. Users are bypassing traditional IT to access cloud-based services. Boundaries between computing systems, people, and things are disappearing. New approaches are required to manage today's and tomorrow's increasingly connected and heterogeneous ecosystems of people, computing processes, and things. We envision future elastic systems driven by business requirements, integrating computing, people, and things in open dynamic ecosystems in which all entities collaborate towards common goals. We introduce elasticity as a means of integrating computing processes, people, and things. We identify the core computing fields enabling future elastic systems: (i) hardware and software reusability, (ii) smart things, (iv) adaptation, and (v) human-based computing. We look at the development of these fields, and identify fundamental properties for building future elastic systems. We further envision a new field of research: Elastic Computing. We identify and discuss challenges to be addressed by this field towards realizing future elastic systems: Are existing programming languages and models sufficient for designing and managing future elastic systems? How important are the interactions between people, computers, and things? Can people and things be monitored and controlled like computing resources?
Modern Cyber-Physical Systems (CPS) and Internet of Things (IoT) systems consist of both loosely and tightly interactions among various resources in IoT networks, edge servers and cloud data centers. These elements are being built atop virtualization layers and deployed in both edge and cloud infrastructures. They also deal with a lot of data through the interconnection of different types of networks and services. Therefore, several new types of uncertainties are emerging, such as data, actuation, and elasticity uncertainties. This triggers several challenges for testing uncertainty in such systems. However, there is a lack of novel ways to model and prepare the right infrastructural elements covering requirements for testing emerging uncertainties. In this paper, first we present techniques for modeling CPS/IoT Systems and their uncertainties to be tested. Second, we introduce techniques for determining and generating deployment configuration for testing in different IoT and cloud infrastructures. We illustrate our work with a real-world use case for monitoring and analysis of Base Transceiver Stations.
Abstract Advancements in the areas of Cloud Computing, Internet of Things (IoT), and hybrid Human-Computer systems have made feasible the creation of a highly integrated human-machine world. The concept of elasticity plays a crucial role in fulfilling this vision, enabling systems to address various requirements reflecting performance, security, and business concerns. However, elastic systems are still in their inception, and numerous challenges need to be addressed in their development and management. In this article we present an overview of our experience on elastic systems, with a focus on elastic cloud systems. In the quest for designing and managing elastic systems, several challenges need to be addressed, such as: (i) enabling the systems to fulfill different requirements from multiple involved stakeholders, (ii) designing elastic systems considering various degrees of elasticity capabilities provided by different technologies and environments, (iii) understanding behavioral relationships in elastic systems, and their effects on stakeholder requirements, (iv) monitoring costs and analyzing cost efficiency of elastic systems, (v) controlling the elasticity of such systems at runtime in order to fulfill stakeholders' requirements, and (vi) supporting system elasticity through operations management. We present the techniques we have adopted in order to tackle the above challenges. We introduce our solution for creating elastic systems, following their complete lifecycle, from design-time to operations management.
Cloud applications can benefit from the on-demand capacity of cloud infrastructures, which offer computing and data resources with diverse capabilities, pricing, and quality models. However, state-of-the-art tools mainly enable the user to specify “if-then-else” policies concerning resource usage and size, resulting in a cumbersome specification process that lacks expressiveness for enabling the control of complex multilevel elasticity requirements. In this article, first we propose SYBL, a novel language for specifying elasticity requirements at multiple levels of abstraction. Second, we design and develop the rSYBL framework for controlling cloud services at multiple levels of abstractions. To enforce user-specified requirements, we develop a multilevel elasticity control mechanism enhanced with conflict resolution. rSYBL supports different cloud providers and is highly extensible, allowing service providers or developers to define their own connectors to the desired infrastructures or tools. We validate it through experiments with two distinct services, evaluating rSYBL over two distinct cloud infrastructures, and showing the importance of multilevel elasticity control.
In cloud service provisioning scenarios with a changing demand from consumers, it is appealing for cloud providers to leverage only a limited amount of the virtualized resources required to provide the service. However, it is not easy to determine how much resources are required to satisfy consumers expectations in terms of Quality of Service (QoS). Some existing frameworks provide mechanisms to adapt the required cloud resources in the service delivery, also called an elastic service, but only for consumers with the same QoS expectations. The problem arises when the service provider must deal with several consumers, each demanding a different QoS for the service. In such an scenario, cloud resources provisioning must deal with trade-offs between different QoS, while fulfilling these QoS, within the same service deployment. In this paper we propose an elasticity-aware governance platform for cloud service delivery that reacts to the dynamic service load introduced by consumers demand. Such a reaction consists of provisioning the required amount of cloud resources to satisfy the different QoS that is offered to the consumers by means of several service level agreements. The proposed platform aims to keep under control the QoS experienced by multiple service consumers while maintaining a controlled cost.
Developing IoT cloud platforms is very challenging, as IoT cloud platforms consist of a mix of cloud services and IoT elements, e.g., for sensor management, near-realtime events handling, and data analytics. Developers need several tools for deployment, control, governance and analytics actions to test and evaluate designs of software components and optimize the operation of different design configurations. In this paper, we describe requirements and our techniques on supporting the development and testing of IoT cloud platforms. We present our choices of tools and engineering actions that help the developer to design, test and evaluate IoT cloud platforms in multi-cloud environments.
Today's complex cloud applications are composed of multiple components executed in multi-cloud environments. For such applications, the possibility to manage and control their cost, quality, and resource elasticity is of paramount importance. However, given that the cost of different services offered by cloud providers can vary a lot with their quality/performance, elasticity controllers must consider not only complex, multi-dimensional preferences and provisioning capabilities from stakeholders but also various runtime information regarding cloud applications and their execution environments. In this chapter, the authors present the elasticity control approach of the EU CELAR Project, which deals with multi-dimensional elasticity requirements and ensures multi-level elasticity control for fulfilling user requirements. They show the elasticity control mechanisms of the CELAR project, from application description to multi-level elasticity control. The authors highlight the usefulness of CELAR's mechanisms for users, who can use an intuitive, user-friendly interface to describe and then to follow their application elasticity behavior controlled by CELAR.
In cloud service provisioning scenarios with a changing demand from consumers, it is appealing for cloud providers to leverage only a limited amount of the virtualized resources required to provide the service. However, it is not easy to determine how much resources are required to satisfy consumers expectations in terms of Quality of Service (QoS). Some existing frameworks provide mechanisms to adapt the required cloud resources in the service delivery, also called an elastic service, but only for consumers with the same QoS expectations. The problem arises when the service provider must deal with several consumers, each demanding a different QoS for the service. In such an scenario, cloud resources provisioning must deal with trade-offs between different QoS, while fulfilling these QoS, within the same service deployment. In this paper we propose an elasticity-aware governance platform for cloud service delivery that reacts to the dynamic service load introduced by consumers demand. Such a reaction consists of provisioning the required amount of cloud resources to satisfy the different QoS that is offered to the consumers by means of several service level agreements. The proposed platform aims to keep under control the QoS experienced by multiple service consumers while maintaining a controlled cost.
In this paper, we explore the benefits of automatically determining the degree of parallelism used to perform genetic mutation calling in a hybrid cloud environment. We propose algorithms to automatically control both the hiring of hybrid cloud resources and the selection of the degree of parallelism employed in analysis tasks executed against that cloud. Using the Broad Institute's Genome Analysis Toolkit as a case study, we then conduct profile-driven simulation studies to characterise the circumstances in which our algorithms are beneficial or deleterious compared to simple, conventional baseline algorithms. We find that there are a wide range of cloud workload scenarios where our algorithms outperform the baselines, and thereby argue that automatic control of cloud scaling and task parallelism, using techniques like those proposed, are likely to be beneficially applicable to real-world biocomputing.
While cloud computing has enabled applications to be designed as elastic cloud services, there is a lack of tools and techniques for monitoring and analysing their elasticity at multiple levels, from the service level to the underlying virtual infrastructure. In this paper, we focus on monitoring and evaluating elasticity of cloud services, crucial for supporting users and automatic elasticity controllers, to understand the services’ behaviour, and to develop smarter mechanisms for controlling their elasticity. We define novel concepts, namely elasticity space for describing the elastic behaviour of cloud services, and elasticity pathway for characterising the service’s evolution through the elasticity space. We introduce techniques for enriching monitoring information and determining the elasticity space and pathway. Based on the above, we introduce MELA, an elasticity analytics as a service, providing features for monitoring and analysing the elasticity of cloud services in multi-cloud environments. To ...
The Data-as-a-Service (DaaS) model enables data analytics providers to provision and offer data assets to their consumers. To achieve quality of results for the data assets, we need to enable DaaS elasticity by trading off quality and cost of resource usage. However, most of the current work on DaaS is focused on infrastructure elasticity, such as scaling in/out data nodes and virtual machines based on performance and usage, without considering the data assets' quality of results. In this paper, we introduce an elastic data asset model for provisioning data enriched with quality of results. Based on this model, we present techniques to generate and operate data elasticity management process that is used to monitor, evaluate and enforce expected quality of results. We develop a runtime system to guarantee the quality of resulting data assets provisioned on-demand. We present several experiments to demonstrate the usefulness of our proposed techniques.
Emerging IoT cloud systems create unified IoT cloud infrastructures that offer large pools of elastic resources, which need to be governed through their entire lifecycle. However, numerous uncertainties are inherently present in such infrastructures, mainly due to the novel interactions of IoT elements, network elements, cloud resources and humans. They pose a plethora of challenges for the governance of such IoT cloud systems. In this paper we introduce U-GovOps -- a novel framework for dynamic, on-demand governance of elastic IoT cloud systems under uncertainty. We introduce a declarative policy language to simplifythe development of uncertainty-and elasticity-aware governance strategies. Based on that we develop runtime mechanisms, which enable mitigating the uncertainties by monitoring and governing the IoT cloud systems through specified strategies. We evaluate our approach using a real-life case study in the domain of predictive maintenance.
Complex cloud services rely on various IaaS, PaaS, and SaaS cloud offerings. Fast (re) deployment and testing cycles, and the rapidity of changes of various dependent infrastructures and services, imply a need for continuous adaptation. Although software-based elasticity control solutions can automate various decisions through intelligent decision-making processes, in many cases, such adaptation requires interactions among different cloud service provider employees and among different providers. However, decisions from stakeholders and elasticity software controllers should be seamlessly integrated.In this paper, we analyze the needs of service providers and the possible interactions in elasticity operations management that should be supported. We focus on interactions between service provider employees and elasticity controllers, and propose novel interaction protocols considering various organization roles and their concerns from the elasticity control point of view. We introduce the elasticity Operations Management Platform (eOMP) which supports seamless interactions among service provider employees and software controllers. eOMP provides elasticity directives to enable notifications for complex elasticity issues to be solved by service provider employees, and the necessary mechanisms for managing cloud service elasticity. Our experiments show that service provider employees can easily interact with elasticity controllers, and, according to their responsibilities, take part in the elasticity control to address issues which may arise at runtime for complex software services.
To optimize the cost and performance of complex cloud services under dynamic requirements, workflows and diverse cloud offerings, we rely on different elasticity control processes. An elasticity control process, when being enforced, produces effects in different parts of the cloud service. These effects normally evolve in time and depend on workload characteristics, and on the actions within the elasticity control process enforced. Therefore, understanding the effects on the behavior of the cloud service is of utter importance for runtime decision-making process, when controlling cloud service elasticity. In this paper, we present a novel methodology and a framework for estimating and evaluating cloud service elasticity behaviors. To estimate the elasticity behavior, we collect information concerning service structure, deployment, service runtime, control processes, and cloud infrastructure. Based on this information, we utilize clustering techniques to identify cloud service elasticity behavior, in time, and for different parts of the service. Knowledge about such behavior is utilized within a cloud service elasticity controller to substantially improve the selection and execution of elasticity control processes. These elasticity behavior estimations are successfully being used by our elasticity controller, in order to improve runtime decision quality. We evaluate our framework with three real-world cloud services in different application domains. Experiments show that we are able to estimate the behavior in 89.5% of the cases. Moreover, we have observed improvements in our elasticity controller, which takes better control decisions, and does not exhibit control oscillations.
Developing and operating IoT cloud systems require novel features for deploying, controlling, monitoring and testing both IoT units and cloud services in an integrated environment spanning different infrastructures. In this paper, we demonstrate iCOMOT -- a novel toolset offering these features. Using iCOMOT we can perform various activities, such as dynamically reconfiguration of sensors, communication protocols, and cloud services in an elastic manner, suitable for testing and assuring quality of IoT cloud systems configurations. We will demonstrate our iCOMOT with a real-world predictive maintenance case study.
Enabling and controlling elasticity of cloud computing applications is a challenging issue. Elasticity programming directives have been introduced to delegate elasticity control to infrastructures and to separate elasticity control from application logic. Since coordination models provide a general approach to manage interaction and elasticity control entails interactions among cloud infrastructure components, we present a coordination-based approach to elasticity control, supporting delegation and separation of concerns at design and run-time, paving the way towards coordination-aware elasticity.
Various complex cloud services have to be deployed in multiple heterogeneous clouds, due to the service requirements for particular functionalities from specific clouds. In order to control these cloud services, we need to monitor and control the various units deployed across multiple clouds, dealing with cloud-specific protocols to support an end-to-end cloud service perspective. In this paper we present an approach for multi-cloud control, which evaluates relationships among different units deployed across heterogeneous clouds, and generates action plans necessary for controlling service elasticity. We show experiments of the end-to-end control and sensitivity analysis for a service deployed across two different types of clouds.
Platform-as-a-Service (PaaS) should support the design, deployment, execution, test and monitoring of native elastic systems constructed from elastic service units based on multi-dimensional elasticity requirements. In this paper, we discuss fundamental building blocks for enabling multi-dimensional elasticity programming of software-defined elastic systems. We describe CoMoT, a novel PaaS for elasticity in the cloud that is developed based on these fundamental building blocks.
Complex cloud services rely on different elasticity control processes to deal with dynamic requirement changes and workloads. However, enforcing an elasticity control process to a cloud service does not always lead to an optimal gain in terms of quality or cost, due to the complexity of service structures, deployment strategies, and underlying infrastructure dynamics. Therefore, being able, a priori, to estimate and evaluate the relation between cloud service elasticity behavior and elasticity control processes is crucial for runtime choices of appropriate elasticity control processes. In this paper we present ADVISE, a framework for estimating and evaluating cloud service elasticity behavior. ADVISE gathers service structure, deployment, service runtime, control processes, and cloud infrastructure information. Based on this information, ADVISE utilizes clustering techniques to identify cloud elasticity behavior produced by elasticity control. Our experiments show that ADVISE can estimate the expected elasticity behavior, in time, for different cloud services thus being a useful tool to elasticity controllers for improving the quality of runtime elasticity control decisions.