Primer on application_performance_modelling_v0.1

13
Fundamentals of Application Performance Modelling Practical Performance Analyst – 7 th July 2012 http://www.practicalperformanceanalyst.com

Transcript of Primer on application_performance_modelling_v0.1

Page 1: Primer on application_performance_modelling_v0.1

Fundamentals of Application Performance Modelling

Practical Performance Analyst – 7th July 2012

http://www.practicalperformanceanalyst.com

Page 2: Primer on application_performance_modelling_v0.1

Agenda

Performance Engineering Life Cycle

What is Proactive Performance Management

What is Application Performance Modelling

Why is Application Performance Modelling Important

Holistic View of Performance

Process for Application Performance Modelling

Techniques for Application Performance Modelling

Challenges involved in Application Performance Modelling

Deliverables for the Application Performance Modelling process

Resources & tools to assist with Application Performance Modelling process

Page 3: Primer on application_performance_modelling_v0.1

Performance Engineering Life Cycle

Software Development Life Cycle

Functional Requirements Gathering

Architecture & Design

Build Application

System Test,

System Integrated Test & UAT

Deploy Into Production

Performance Engineering Life Cycle

Non Functional Requirements Gathering

Design for Performance &

Performance Modelling

Unit Performance Test &

Code Optimization

Performance Test

Monitoring & Capacity Management

Page 4: Primer on application_performance_modelling_v0.1

What is Proactive Performance Management

Performance Requirements

Analysis

Performance Modelling &

Capacity Planning

Build & Optimization

Performance Testing

Performance Monitoring

Capacity Management

Page 5: Primer on application_performance_modelling_v0.1

What Is Application Performance Modelling

Performance Modelling is the art of forecasting application performance using a combination of different modelling techniques

Performance Modelling gives you the ability to validate application architecture & designs assumptions from a Non Functional Requirements standpoint

Performance Modelling gives you the ability to perform what-if analysis for different design assumptions and identify a suitable design patterns that meets your Non Functional Requirements

Performance Modelling gives you the ability to validate infrastructure specifications from an Non Functional Requirements standpoint

Performance Modelling should be initially performed at design to validate design specifications. These models should then be refined as you move through build into SVT and then into production where changes in modelling techniques will help you predict application performance with greater accuracy.

Performance Modelling is one of the methods available to you as a Practical Performance Analyst to proactively predict application performance and determine infrastructure capacity impacts before the code actually built or deployed into production

Page 6: Primer on application_performance_modelling_v0.1

Why Is Application Performance Modelling Important

Performance Modelling is important to the Practical Performance Analyst for the following reasons –

Gives you the ability to validate design decision early in the Software Development Life Cycle

Gives you the ability to validate infrastructure capacity assumptions early in the procurement cycle

Gives you the ability to forecast infrastructure capacity impacts for increase in business workload

Give you the ability to work with the customer proactively on procuring additional infrastructure to meet growth in business workload

Gives you the ability to forecast changes in application performance before the application is deployed into production

Gives you the ability to forecast potential performance issues early in the Software Development Life Cycle

Performance Modelling offers a suite of techniques that can be used to proactively predict and manage application performance across the Software Development Life Cycle i.e. From Design, to Build, to SVT, to production

Page 7: Primer on application_performance_modelling_v0.1

Txn Performance

- Response Times, etc.

Application Performance – Operations/Sec, Messages/Sec,

Transactions/Sec, etc.

Infrastructure Performance – CPU Utilization, Memory Utilization, Disk IOPS, etc.

Network Performance – Packet Loss, Jitter, Packet Re-ordering, Delay, etc.

Holistic View of Performance

Page 8: Primer on application_performance_modelling_v0.1

Application Performance Modelling Process

Understand Business Objectives & Program

Goals

Review Business Requirements Document

Document Non Functional Requirements

Review Application Designs

Review Infrastructure Capacity Designs

Decide on Modelling techniques to be used

Create Performance Models (Analytical or

Simulation)

Execute Performance Models for different What-If Scenarios

Validate outcome of Performance Models

Tweak Application Design Assumptions,

Infra Design Assumptions & Re-

execute Models

Document Learning from What-If Analysis

Provide Recommendations to Application Design & Infrastructure Design

teams

Page 9: Primer on application_performance_modelling_v0.1

Techniques for Performance Modelling

Analytical or Mathematical Modelling techniques

Queuing Theory

Queuing Networks

Universal Scalability Law

Operational Theory

Little’s Law

Simulation Modelling techniques

Discrete Event Simulation

Markov’s chains

Petri Nets

Statistical Modelling techniques

Time Series Data Visualization & Analysis

Time Series Forecasting using Exponential Smoothing techniques

Time Series Forecasting using Moving Average techniques

Time Series Forecasting using ARIMA techniques

Simple Regression Modelling

Multiple Regression Modelling

Page 10: Primer on application_performance_modelling_v0.1

Challenges involved in Performance Modelling

Challenges obtaining Non Functional Requirements for the given application

Challenge obtaining resources from the application design and infrastructure design teams to assist with modelling and what-if analysis

Challenges obtaining tools for Performance Modelling (Analytical or Simulation)

Lack of Industry standard tools to analyse, model and visualize data for purposes of Performance Modelling

Challenge convincing people on the usefulness of Performance Modelling techniques

Lack of Capable Resources to assist with data extraction, visualization, analysis & Performance Modelling

Page 11: Primer on application_performance_modelling_v0.1

Deliverables – Performance Modelling

Performance modelling report that –

Validates Non Functional Requirements

Validates Application Designs and its ability to meet overall Non Functional Requirements

Validates Infrastructure Capacity Assumptions and it’s ability to meet overall Non Functional Requirements

Design recommendations to the Application Design teams

Infrastructure recommendations to the Infrastructure Design teams

Recommendations on Performance Testing, Performance Monitoring & Capacity Management

Page 12: Primer on application_performance_modelling_v0.1

Resources & Tools

JMT – Java Modelling Tools (jmt.sourceforge.net)

Queuing Networks

Mean Value Analysis of Queuing Network

Markov’s Chains based Simulation

Simpy (Simpy.sourceforge.net)

Discrete Event Simulation Modelling

R-Project

Time Series Modelling

Regression Modelling

Time Series Forecasting

Page 13: Primer on application_performance_modelling_v0.1

Thank You

Please support us by taking a moment and sharing this content using the Social Media Links at Practical Performance Analyst

[email protected]