Model Driven Provisioning in Multi-tenant Clouds (original) (raw)

Chauhan M.A., Probst C.W., “Architecturally Significant Requirements Identification, Classification and Change Management for Multi-tenant Cloud-based Systems”, in M. Ramachandran, Z. Mahmood (Eds.), “Requirements Engineering for Service and Cloud Computing”, Springer Book, 2017.

Involvement of numerous stakeholders in cloud-based systems' design and usage with varying degrees of non-functional requirements makes Architecturally Significant Requirements (ASRs) identification and management a challenging undertaking. The aim of the research presented in this chapter is to identify different types of design-time and run-time ASRs of the cloud-based systems, provide an ASRs classification scheme and present a framework to manage the re-quirements' variability during life cycle of the cloud-based systems. We have used a multifaceted research approach to address the ASRs identification, classification and change management challenges. We have explored findings from systematic as well as structured reviews of the literature on quality requirements of the cloud-based systems including but not limited to security, availability, scalability, privacy and multi-tenancy. We have presented a framework for requirements classification and change management focusing on distributed Platform as a Service (PaaS) and Software as a Service (SaaS) systems as well as complex software ecosystems that are built using PaaS and SaaS, such as Tools as a Service (TaaS). We have demonstrated applicability of the framework on a selected set of the requirements for the cloud-based systems. The results of the research presented in this chapter show that key quality requirements of the cloud-based systems, for example multi-tenancy and security, have a significant impact on how other quality requirements (such as scalability, reliability and interoperability) are handled in the overall architecture design of a cloud-based system. It is important to distinguish tenant specific run-time architecturally significant quality requirements and corresponding cloud-based sys-tems' components so that run-time status of the tenant specific architecture quality requirements can be monitored and system configurations can be adjusted accordingly. For the systems that can be used by multiple tenants, the requirements change management framework should consider if the addition or modification (triggered by a specific tenant) of a quality requirement can impact quality requirements of other tenants, and whether or not a trade-off point should be introduced in the architecture (corresponding to the requirements). The trade-off point can also be referred as a variability point, that is, a compromise has to be made among the number of quality requirements and only some of the requirements can be satisfied. System analysts and software architects can use the proposed taxonomy and the management framework for identifying relevant quality requirements for multi-tenant cloud-based systems, for analysing impact of changes in the requirements on the overall system architecture, and for managing variability of the architecturally significant requirements.

Software architecture definition for on-demand cloud provisioning

Cluster Computing, 2010

Cloud computing is a promising paradigm for the provisioning of IT services. Cloud computing infrastructures, such as those offered by the RESERVOIR project, aim to facilitate the deployment, management and execution of services across multiple physical locations in a seamless manner. In order for service providers to meet their quality of service objectives, it is important to examine how software architectures can be described to take full advantage of the capabilities introduced by such platforms. When dealing with software systems involving numerous loosely coupled components, architectural constraints need to be made explicit to ensure continuous operation when allocating and migrating services from one host in the Cloud to another. In addition, the need for optimising resources and minimising overprovisioning requires service providers to control the dynamic adjustment of capacity throughout the entire service lifecycle. We discuss the implications for software architecture definitions of distributed applications that are to be deployed on Clouds. In particular, we identify novel primitives to support service elasticity, co-location and other requirements, propose language abstractions for these primitives and define their behavioural semantics precisely by establishing constraints on the relationship between architecture definitions and Cloud management infrastructures using a model denotational approach in order to derive appropriate service management cycles. Using these primitives and semantic definition as a basis, we define a service management framework implementation that supports on demand cloud provisioning and present a novel monitoring framework that meets the demands of Cloud based applications.

Model building for dynamic multi-tenant provider environments

ACM SIGOPS Operating Systems Review, 2012

Increasingly, storage vendors are finding it difficult to leverage existing white-box and black-box modeling techniques to build robust system models that can predict system behavior in the emerging dynamic and multi-tenant data centers. White-box models are becoming brittle because the model builders are not able to keep up with the innovations in the storage system stack, and black-box models are becoming brittle because it is increasingly difficult to a priori train the model for the dynamic and multi-tenant data center environment. Thus, there is a need for innovation in system model building area.

Describing Cloud Applications Architectures

Lecture Notes in Computer Science, 2013

The architecture of cloud applications differs from traditional software architectures mainly regarding their basic architectural elements, the services, the metadata about the services for expressing information related to quality parameters and pricing models, and the constraints over the applications and the used services. This paper presents Cloud-ADL, a seamless extension of the ACME ADL to support the architectural representation of cloud applications by relying on the existing ACME abstractions. In addition, it defines contracts to modularly encapsulate typical contract information of cloud applications, such as quality parameters, pricing model of the services, and constraints. Finally, Cloud-ADL also supports the dynamic reconfiguration of cloud applications through programmed changes, which can be foreseen at design time and specified at the ADL level.

Modeling Cloud Software-As-A-Service: A Perspective

International Journal of Information and Electronics Engineering, 2012

Cloud computing, an emerging computing paradigm, is still in its stage of infancy. It can be considered as an amalgam of a variety of legacy and evolving technologies and concepts such as distributed computing, grid computing, virtualization, service-oriented architecture, software-as-aservice etc. to mention a few. It aims at optimally utilizing the distributed, dynamically-scalable and often virtualized resources such as processors, storage and software, which are made available to the users as services over a network, on a pay-per-use basis. These services can be easily accessed by the user through an interface, as simple as a browser. But as the technologies are in a state of flux, developing the software services in the cloud directly using existing technologies will make them obsolete as and when new technologies evolve.

Richer Requirements for Better Clouds

2013 IEEE 5th International Conference on Cloud Computing Technology and Science, 2013

Resource usage in Clouds can be improved by deploying applications with richer defined requirements. Such "richer requirements" involve wider application / user specific context capture expressed in interrelated models. The use of model based requirements is presented using input from testbeds monitoring resource use in terms of Trust, Risk, Eco-Efficiency and Cost (TREC) models. The results of this application illustrate the potential that richer requirements have for better management of resources in Clouds.

Cloud Computing : Designing Different System Architecture Depending On Real-World Examples

2014

We decided to focus on the categorization of cloud architectures by looking at the deployment and service models used to describe cloud computing. Researching which architectures are available is hard to do because cloud computing offerings are emerging at a rapid pace. It is not only hard to keep track of all the cloud computing offerings, the cloud computing paradigm itself is also rapidly evolving. Finding out which services are offered and deriving which architectures are used for each of these services, is an impossible goal to achieve in a market this big and developing this fast. As a result, creating a mapping of which security controls are implemented by each cloud provider is a goal aimed too high as well.

Modelling cloud computing infrastructure

… for Autonomous Management of Networks and …, 2010

We present a modelling approach for an adaptive cloud infrastructure consisting of secure pools of virtualized resources, in order to facilitate automated management tasks and interaction with the system by a human administrator, or programmatically by a higher level service. The topology of such a system is rapidly changing as, for example, it has the abilities to create, modify or destroy pools of virtual resources according to customer demand, as well as dynamically modify the mapping of virtual to physical resources. It is also highly distributed and management data needs to be compiled from disparate sources. Our modelling approach, based on the semantic web, allows us to represent complex topologies, model incomplete or erroneous systems and perform operations such as query, while still allowing validation of the models against system invariants and policies. It also supports distributed modelling, allowing sub-models to be combined, data merging, and shared vocabularies.

On Engineering Cloud Applications-State of the Art, Shortcomings Analysis, and Approach

Scalable Computing: Practice and Experience, 2012

Recently, Cloud Computing has become an emerging research topic in response to the shift from product-oriented economy to service-oriented economy and the move from focusing on software/system development to addressing business-IT alignment. From the IT perspectives, there is a proliferation of methods for cloud application development. Such methods have clearly shown considerable shortcomings to provide an efficient solution to deal with major aspects related to cloud applications. One of these major aspects is the ...