Cloud computing is a recent computing paradigm that is changing software engineering. It offers scalable virtual compute resources at low prices, thus attracting many software developers interested in reducing their infrastructure and operational costs. Even though using cloud solutions is simple, with many providers and resource types available, a common difficulty developers face is how to best configure their applications using a myriad of cloud services, specially when considering different attributes such as cost, scalability, performance and others. A wrong architectural decision can lead to a significant cost increase or a deployment option that does not meet the minimum required performance. This work presents an approach that relies on non-functional requirements as key drivers for assessing and selecting, based on a multi-criteria optimization method, the best architectural options for deploying applications in the cloud. Results from a real application (WordPress) deployed in a popular cloud provider (Amazon) are discussed to illustrate the use and benefits of the approach.
Cloud computing is an emerging computing paradigm that is changing software engineering. It offers scalable virtual compute resources at low prices, thus attracting many software developers interested in reducing their infrastructure and operational costs. Even though acquiring and using cloud solutions can be simple, a common difficulty developers face is how to best configure their applications at the architectural level, given a myriad of cloud services and resource types available, specially when considering different attributes such as cost, scalability, and performance. An inappropriate architectural decision can lead to a significant cost increase or a deployment option that does not meet the minimum required performance. This paper focuses on the problem of finding the best cloud deployment options for a given application that meet a given set of well-known nonfunctional requirements. To address this problem, the paper presents Cloud Application Architecture Appraiser (CA3), a multicriteria optimization approach and tool that relies on nonfunctional requirements as key drivers for assessing and selecting the best architectural options for deploying applications in the cloud. Results from the assessment of a real web application (WordPress), deployed using several different architectural options in a popular cloud provider (Amazon), are also presented to illustrate the use and benefits of the proposed method and tool.
KEYWORDSAHP, architectural assessment, cloud deployment option, multicriteria optimization
INTRODUCTIONCloud computing providers such as Amazon, Microsoft, and Google offer scalable low cost virtual computing resources that can be rapidly provisioned through the internet. 1 This model of computation is changing the way many organizations deliver their IT services and applications, as they can free themselves from the burden to build, manage, and continuously upgrade an in-house physical computing infrastructure.Despite of the many benefits offered by existing cloud computing solutions and the relative simplicity of acquiring cloud resources, many cloud users still have difficulties in selecting the cloud resources and services that best suit their 2278
Software testing and benchmarking are key components of the software development process. Nowadays, a good practice in large software projects is the continuous integration (CI) software development technique. The key idea of CI is to let developers integrate their work as they produce it, instead of performing the integration at the end of each software module. In this paper, we extend a previous work on a benchmark suite for the YAP Prolog system, and we propose a fully automated test bench environment for Prolog systems, named Yet Another Prolog Test Bench Environment (YAPTBE), aimed to assist developers in the development and CI of Prolog systems. YAPTBE is based on a cloud computing architecture and relies on the Jenkins framework as well as a new Jenkins plugin to manage the underlying infrastructure. We present the key design and implementation aspects of YAPTBE and show its most important features, such as its graphical user interface (GUI) and the automated process that builds and runs Prolog systems and benchmarks.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.