The Theory And Practice of Testing Software Applications For Cloud Computing. Mark Grechanik University of Illinois at Chicago

Similar documents
Automatically Finding Performance Problems with Feedback-Directed Learning Software Testing

Dynamic Resource allocation in Cloud

Data Center Evolu.on and the Cloud. Paul A. Strassmann George Mason University November 5, 2008, 7:20 to 10:00 PM

FOREPOST: Finding Performance Problems Automatically with Feedback-Directed Learning Software Testing

How In-Memory Data Grids Can Analyze Fast-Changing Data in Real Time

CUMULUX WHICH CLOUD PLATFORM IS RIGHT FOR YOU? COMPARING CLOUD PLATFORMS. Review Business and Technology Series

Migration Scenario: Migrating Batch Processes to the AWS Cloud

Automatically Finding Performance Problems with Feedback-Directed Learning Software Testing

Administrative Issues

Today: Data Centers & Cloud Computing" Data Centers"

Topology Aware Analytics for Elastic Cloud Services

SQream Technologies Ltd - Confiden7al

Performance Testing of a Cloud Service

A Novel Cloud Based Elastic Framework for Big Data Preprocessing

Resource Provisioning of Web Applications in Heterogeneous Cloud. Jiang Dejun Supervisor: Guillaume Pierre

Characterizing Task Usage Shapes in Google s Compute Clusters

Multilevel Communication Aware Approach for Load Balancing

Cloud Computing Architecture: A Survey

What Is It? Business Architecture Research Challenges Bibliography. Cloud Computing. Research Challenges Overview. Carlos Eduardo Moreira dos Santos

Fixed Price Website Load Testing

A Middleware Strategy to Survive Compute Peak Loads in Cloud

Networking in the Hadoop Cluster

Optimal Service Pricing for a Cloud Cache

Web Application Hosting Cloud Architecture

Figure 1. The cloud scales: Amazon EC2 growth [2].

EXECUTIVE SUMMARY CONTENTS. 1. Summary 2. Objectives 3. Methodology and Approach 4. Results 5. Next Steps 6. Glossary 7. Appendix. 1.

Load Testing on Web Application using Automated Testing Tool: Load Complete

Neptune. A Domain Specific Language for Deploying HPC Software on Cloud Platforms. Chris Bunch Navraj Chohan Chandra Krintz Khawaja Shams

Dynamic Resource management with VM layer and Resource prediction algorithms in Cloud Architecture

Leveraging BlobSeer to boost up the deployment and execution of Hadoop applications in Nimbus cloud environments on Grid 5000

Where We Are. References. Cloud Computing. Levels of Service. Cloud Computing History. Introduction to Data Management CSE 344

DOCLITE: DOCKER CONTAINER-BASED LIGHTWEIGHT BENCHMARKING ON THE CLOUD

Performance Analysis of a Numerical Weather Prediction Application in Microsoft Azure

Managing and Conducting Biomedical Research on the Cloud Prasad Patil

Aneka Dynamic Provisioning

Data Management in the Cloud: Limitations and Opportunities. Annies Ductan

can you effectively plan for the migration and management of systems and applications on Vblock Platforms?

Exploiting Cloud Heterogeneity for Optimized Cost/Performance MapReduce Processing

Cloud Computing: Meet the Players. Performance Analysis of Cloud Providers

Cloud Computing Submitted By : Fahim Ilyas ( ) Submitted To : Martin Johnson Submitted On: 31 st May, 2009

Group Based Load Balancing Algorithm in Cloud Computing Virtualization

Auto-Scaling Model for Cloud Computing System

CLOUD COMPUTING. When It's smarter to rent than to buy

Managing Traditional Workloads Together with Cloud Computing Workloads

Cloud Computing project Report

Performance Management for Cloudbased STC 2012

Towards a New Model for the Infrastructure Grid

Reallocation and Allocation of Virtual Machines in Cloud Computing Manan D. Shah a, *, Harshad B. Prajapati b

How to Do/Evaluate Cloud Computing Research. Young Choon Lee

PERFORMANCE ANALYSIS OF PaaS CLOUD COMPUTING SYSTEM

Building Blocks of the Private Cloud

Bernie Velivis President, Performax Inc

Amazon EC2 Product Details Page 1 of 5

Boost your VDI Confidence with Monitoring and Load Testing

DESIGN OF A PLATFORM OF VIRTUAL SERVICE CONTAINERS FOR SERVICE ORIENTED CLOUD COMPUTING. Carlos de Alfonso Andrés García Vicente Hernández

Resource Provisioning of Web Applications in Heterogeneous Clouds

References. Introduction to Database Systems CSE 444. Motivation. Basic Features. Outline: Database in the Cloud. Outline

Introduction to Database Systems CSE 444

24/11/14. During this course. Internet is everywhere. Frequency barrier hit. Management costs increase. Advanced Distributed Systems Cloud Computing

Delivering Quality in Software Performance and Scalability Testing

STeP-IN SUMMIT June 18 21, 2013 at Bangalore, INDIA. Performance Testing of an IAAS Cloud Software (A CloudStack Use Case)

Using WebSphere Application Server on Amazon EC2. Speaker(s): Ed McCabe, Arthur Meloy

4/10/2012. Hall. Cherokee. Bartow. Forsyth. Barrow. Gwinnett. Paulding. Cobb. Walton. DeKalb. Douglas. Fulton. Rockdale. Carroll. Clayton.

Microsoft Private Cloud

IBM Platform Computing Cloud Service Ready to use Platform LSF & Symphony clusters in the SoftLayer cloud

Cloud computing - Architecting in the cloud

BASICS OF SCALING: LOAD BALANCERS

Towards the Magic Green Broker Jean-Louis Pazat IRISA 1/29. Jean-Louis Pazat. IRISA/INSA Rennes, FRANCE MYRIADS Project Team

Data Warehouse in the Cloud Marketing or Reality? Alexei Khalyako Sr. Program Manager Windows Azure Customer Advisory Team

Elastic Management of Cluster based Services in the Cloud

Return on Experience on Cloud Compu2ng Issues a stairway to clouds. Experts Workshop Nov. 21st, 2013

USING VIRTUAL MACHINE REPLICATION FOR DYNAMIC CONFIGURATION OF MULTI-TIER INTERNET SERVICES

Krishna Markande, Principal Architect Sridhar Murthy, Senior Architect. Unleashing the Potential of Cloud for Performance Testing

Benchmarking Amazon s EC2 Cloud Platform

Making Sense of the Numbers DOs and DON'Ts of Quality Performance Testing

White Paper on CLOUD COMPUTING

Five Trouble Spots When Moving Databases to VMware

How To Set Up Wiremock In Anhtml.Com On A Testnet On A Linux Server On A Microsoft Powerbook 2.5 (Powerbook) On A Powerbook 1.5 On A Macbook 2 (Powerbooks)

ENERGY EFFICIENT VIRTUAL MACHINE ASSIGNMENT BASED ON ENERGY CONSUMPTION AND RESOURCE UTILIZATION IN CLOUD NETWORK

MAGENTO HOSTING Progressive Server Performance Improvements

Splunk for VMware Virtualization. Marco Bizzantino Vmug - 05/10/2011

Migration Scenario: Migrating Backend Processing Pipeline to the AWS Cloud

BEST PRACTICES WHITE PAPER. Workload automation: helping cloud computing take flight

Ageneral truism is that SharePoint environments

Load and Performance Load Testing. RadView Software October

Microsoft Dynamics NAV 2013 R2 Sizing Guidelines for Multitenant Deployments

International Journal of Engineering Research & Management Technology

High Performance Computing Cloud Computing. Dr. Rami YARED

Cloud Computing Capacity Planning. Maximizing Cloud Value. Authors: Jose Vargas, Clint Sherwood. Organization: IBM Cloud Labs

HP Virtualization Performance Viewer

TECHNOLOGY WHITE PAPER Jun 2012

Infrastructure as a Service (IaaS)

Introduc)on of Pla/orm ISF. Weina Ma

Virtualization Technology using Virtual Machines for Cloud Computing

Testing Cloud Application System Resiliency by Wrecking the System

GigaSpaces Real-Time Analytics for Big Data

A Comparison of Oracle Performance on Physical and VMware Servers

Microsoft Private Cloud Fast Track

Performance TesTing expertise in case studies a Q & ing T es T

Transcription:

The Theory And Practice of Testing Software Applications For Cloud Computing Mark Grechanik University of Illinois at Chicago

Cloud Computing Is Everywhere Global spending on public cloud services estimated to reach $110.3Bil by 2016. Does it affect engineering software and in what way?

Software Engineers Are Not Sure What Cloud Computing Brings to Them

Testing In the Cloud OR Testing For the Cloud? Testing in the cloud means to run multiple test scripts in parallel in different virtual machines (VMs) Use cloud to speed up testing Testing for the cloud means that certain properties of the application are verified and validated to ensure that it works correctly when deployed in the cloud Test applications to ensure that they will work in the cloud

Is Cloud Computing Orthogonal To Software Testing?

Or The Cloud Will Get Ya If You Ignore It!

Software Engineering Requirements Gathering Design Development 1 2 3 Tes6ng 4 Maintenance and Evolu6on 5 Cloud Compu,ng Is Not A Part of So9ware Development Lifecycle

What does it mean to develop and test software applications for cloud platforms?

Understanding Fundamentals of Cloud Computing

Cloud Is Not A New Thing Distributed Computing Grid Computing P2P computing Internet computing Service-oriented computing Cloud computing

What Is The Fundamental Nature of Cloud Computing? Traditional Computing Forecast infrastructure needs Purchase infrastructure hardware Own and maintain infrastructure Infrastructure is rented Cloud Computing Resources are dynamically (de)allocated Applications are deployed in virtual machines

Cloud Is A Many Splendored Thing

Elasticity of Cloud Computing Cloud infrastructure re-allocate resources on demand and are considered elastic Scale out and up adding resources to VMs as demand increases Scale in and down releasing resources to VMs as demand decreases Highly elastic clouds can re-provision resources rapidly and automatically in response to demand Stakeholders pay only for using, rather than for owning and employing the hardware/software infrastructures and technical staff that support their applications

The Dream of Elastic Cloud I wish to significantly reduce the costs by renting rather than owning elastic cloud execution infrastructure!

What Google Offers

What Amazon AWS Offers Auto Scaling enables you to closely follow the demand curve for your applications, reducing the need to provision Amazon EC2 capacity in advance. For example, you can set a condition to add new Amazon EC2 instances in increments of 3 instances to the Auto Scaling Group when the average CPU utilization of your Amazon EC2 fleet goes above 70 percent; and similarly, you can set a condition to remove Amazon EC2 instances in the same increments when CPU Utilization falls below 10 percent. Often, you may want more time to allow your fleet to stabilize before Auto Scaling adds or removes more Amazon EC2 instances. You can configure a cool-down period for your Auto Scaling Group, which tells Auto Scaling to wait for some time after taking an action before it evaluates the conditions again. Auto Scaling enables you to run your Amazon EC2 fleet at optimal utilization. http://aws.amazon.com/autoscaling/

Google And Other Cloud Providers Offer Heuristics

Cost-Utilization Curve cost Lost customers Lost money A 1 O U O A 2 time

The Problem Application s behavior is difficult to predict Increased cost of the application deployment Cloud does not (de)allocate resources effectively Decreased performance of the application 60% or companies were not satisfied with performance and 46% cited deployment cost

Good Performance Is Important

Excellent Performance Is Even More Important!

Balancing Cost And Performance Resources cost money, per usage Precise cloud elasticity is an answer to the problem of providing sufficient resources to software applications while minimizing the cost of deployment

Connect Cloud Deployment With Performance Testing Cloud Deployment Provisioning Strategies Performance Testing

Cloud Computing And Software Engineering Software Engineering Lifecycle Modeling Testing Optimizing Maintaining Evolving Cloud Computing Hardware Load Balancer Virtual Machines Interfaces Provisioning Strategies Key Cloud Concepts Cost of Variability of Resources resources

Key Insights Key software and data artifacts are generated during different stages of the software engineering lifecycle could be, but are not currently being, used by the cloud infrastructures to improve predictive provisioning of resources. Applications running in the cloud do not provide important feedback to stakeholders about any performance problems their applications may have and that might ultimately require more resources and, thus, increase operational costs. There is no two-way flow of information between software development and cloud deployment of these applications.

Model of Cloud Computing VM 1 VM 5 P P P Load Balancer P P VM 4 P VM 2 P P P P VM 3

Provisioning Strategies

Provisioning Strategies

Performance Rules Descriptive rules for selecting test input data play a significant role in software testing, where these rules approximate the functionality of the application. Example rule: some customers will pose a high insurance risk if these customers have one or more prior insurance fraud convictions and deadbolt locks are not installed on their premises. Bottleneck

Putting Rules And Strategies Together For Cloud Computing Learn Performance Rules Synthesize Provisioning Strategies Use Provisioning Strategies

Provisioning Resources with performance Software Test automation (PRESTO) Learn Performance Rules Synthesize Provisioning Strategies Use Provisioning Strategies

Performance Rules Are Behavioral Models Behavioral model is a collection of workload profiles, constraints, performance counters, and various relations among components of the application. Performance rules are examples of applications behavioral models. Our goal is to obtain and use these models to synthesize provisioning strategies

Finding Rules That Describe Performance Problems A goal is to find situations when applications unexpectedly exhibit worsened characteristics for certain combinations of input values.

Finding This Situation Is Like Getting a Perfect Hand!

Example: Bottlenecks A slow component of the application A C B Bottlenecks or hot spots are phenomena where the performance of the application is limited by one or few components

Bottlenecks in Nontrivial Applications Inputs Output

Performance Testing Applications Client Client calls Server methods Server Server interacts with back-end data storages Data base The Client executes methods of the Server using different combination of input parameter values

Performance Testing Applications Client Client receives data from Server Server Server receives data from Database Data base Performance can be measured in the number of roundtrips per time unit

Automating Performance Testing Applications Client Client calls Server methods and receives data Server Server interacts with back-end data storages Data base Automated test scripts simulate clients who perform transactions against the Server, and they use input data from the backend database

Automating Performance Testing Applications Server Server interacts with back-end data storages Data base Automated test scripts simulate clients who perform transactions against the Server, and they use input data from the backend database

A Problem With Performance Testing of Large Applications A medium-size renters insurance application has a large universe of input data. For 78,000,000 customer profiles it would take close to 1,500 years to test this application on all profile inputs provided that it takes only 10mins per input. Just touching one customer profile entry for 1sec, it takes about 2.5 years to touch them all! Some customer profiles may lead to significant load on different resources.

A Problem With Performance Testing of Large Applications How to select a manageable subset of the input data without compromising the effectiveness of performance testing. We need an insight into selecting this subset!

An Example Most of the renters are good customers, have hardly any accident/claims or fraudulent activities. That s how insurance companies make money. Unfortunately, the data of these good customers are not always good for performance testing purpose. Randomly selecting customer profiles does not work well keep encountering good customers. Yet, exploratory performance testing is one of the main ways of performance testing applications in industry!

The Intuition Behind Performance Testing Trigger more computation More data to process in programs Bigger executing footprint Bigger database footprint Trigger more database queries

Core Idea Select only these customer inputs that trigger intensive computations. These computations most likely involve significant interactions with databases.

Performance Testing Is Laborious and Difficult And It Is Not Designed For The Cloud

A Computing Primitive in PRESTO - FOREPOST Feedback-ORiEnted PerfOrmance Software Testing (FOREPOST) finds performance problems automatically by learning and using rules that describe classes of input data that lead to intensive computations. FOREPOST is an adaptive, feedback-directed learning testing system that learns rules from execution traces and uses these learned rules to select test input data automatically to find more performance problems in applications when compared to exploratory random performance testing.

Compute a Function That Represents the Application FOREPOST CLOUD f: Input -> Performance

Components of FOREPOST Adap6ve Test Script Run6me Monitoring Machine Learning 1 2 3 Informa6on Compression 4 BoPleneck Detec6on Algorithm 5 Adap6ve test script uses rules that are issued by machine learning components to select input data that lead to more intensive computa6ons. When the test script executes the applica6on, its execu6on traces are collected as part of run6me monitoring, leading to (re)learning rules.

Some Statistics It takes about 10mins to execute the instrumented renters app end-2-end automatically using a test script. An average run invokes over 3,000 methods more than 3,000,000 times and it retrieves over 1Mb of data. An average execution traces contains over 1Gb of data. It takes less than 10mins on average to process and analyze one trace.

Constructing Data For a Learner and Learning Rules Input_1_Name Input_2_Name Input_k_Name Class Value_p Value_q Value_m Good Value_p Value_q Value_m Bad Value_p Value_q Value_m Good

Finding Bottlenecks A slow component of the application A C B Bottlenecks or hot spots are phenomena where the performance of the application is limited by one or few components

Finding Bottlenecks Cluster Execution Traces Rank Methods by Their Significance In Each Cluster Compute Logical Difference Between Clusters Good Bad Good Bad

FOREPOST Architecture Profiler Test Script Rules Learner Good test traces Method and data statistics ICA Advisor Bad test traces Method weights Execution Trace Analyzer Trace Statistics Trace Clustering

Result for Renters App

Result for JPetStore

PRESTO Architecture Customers 16 1 Auto Test Scripts 13 Load Balancer Resource Controller 15 17 2 App 8 12 5 Load Model 6 3 FOREPOST 9 Perturbation Operators 7 4 10 14 Provisioning Strategies 14 11 Performance Rules

Experimenting With CPU Bottlenecks Using CloudStack 3 2.5 Throughput (number of URLs per second) 2 1.5 1 0.5 Random Basic Δ1 Δ2 Δ3 Δ4 Δ5 0 JPetStore - 5 users JPetStore - 15 users JPetStore - 30 users Dell DVD Store - 5 users Dell DVD Store - Dell DVD Store - 15 users 30 users

Experimenting With Database Bottlenecks Using CloudStack 3 2.5 Throughput (number of URLs per second) 2 1.5 1 0.5 Random Basic Δ1 Δ2 Δ3 Δ4 Δ5 0 JPetStore - 5 users JPetStore - 15 users JPetStore - 30 users Dell DVD Store - 5 users Dell DVD Store - Dell DVD Store - 15 users 30 users

Conclusions This proposed research program is novel, as to the best of our knowledge, there exists no work that utilizes automatic feedback-directed adaptive test scripts to find improve cloud elasticity. The results of this work show that the proposed approach can effectively locate performance problems and guide stakeholders to improve the quality of software that is deployed in the cloud.

Email: drmark@uic.edu