What is performance_engineering_v0.2

Trevor Warren
Trevor WarrenPrincipal, Tech Arch - Performance Engineering, Techonology Consulting at Accenture - http://www.accenture.com
Performance Engineering Fundamentals 
Practical Performance Analyst – 23rd June 2012 
http://www.practicalperformanceanalyst.com
Agenda 
What is Performance Engineering 
Why is Performance Engineering Important 
Performance Engineering Life Cycle 
Holistic View of Performance 
Activities involved in Performance Engineering 
What does Performance mean to different stake holders 
Roles performed by the Practical Performance Analyst 
What is Proactive Performance Management 
Cost of addressing Performance across the SDLC 
Challenges in addressing Performance Engineering
What Is Performance Engineering 
Definition - Performance Engineering (SPE) is a systematic and quantitative approach for the cost-effective development of software systems to meet stringent Non Functional Requirements (Performance - Capacity - Scalability - Availability - Reliability - etc). 
Dr. Connie Smith in her book on Software Performance Engineering (URL - http://www.perfeng.com/) advocates that, Performance Engineering is a software-oriented approach, focused on optimal selection of application architecture, design, and implementation choices with the objective of meeting Non Functional Requirements. 
Software Performance Engineering can also be defined functionally as the set of tasks or activities that need to be performed across the Software Development Life Cycle (SDLC) to meet the documented Non Functional Requirements. 
Software Performance Engineering is often viewed as the art of building systems that meeting Non Functional requirements within the allocated time frame and budget constraints.
Why Is Performance Engineering Imp 
Performance Engineering is important for the following reasons – 
Determine End User Experience desired by customer for the applications being developed 
Understand Non Functional Requirements for the applications 
Determine Performance Targets for the Developers across the various different application tiers 
Work proactively with Developers to ensure Performance Targets are addressed across the Build phase 
Ensure that the application architecture chosen will allow you to meet the Non Functional Requirements 
Determine the infrastructure capacity required to meet your Non Functional Requirements & IT SLA’s 
Identify any major architectural or platform concerns early in the SDLC 
Identify application bottlenecks through early Performance Testing (Before completion of SIT and start of UAT) 
Model the application performance at design stage to validate your Non Functional Requirements 
Proactively model application performance through Performance Test and once the application goes live 
Proactively manage application infrastructure requirements once the application goes live 
Proactively monitor application performance in production (OS, Application, Transactional) to track SLA’s and capture required metrics for purposes of Performance Modelling & Capacity Management 
Work closely with business to forecast application performance and associated infrastructure requirements to meet growth in business workload 
Prevent a meltdown on go live or in production 
Prevent fire fighting in production and rather focus your time and energy on building required application functionality
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
Holistic View Of Performance 
Txn Performance 
- Resp 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.
Activities Involved in PE 
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
What does PE mean to different stake holders 
User 
Expectation 
Business 
Gains the ability to grow services and provision additional customers onto the existing or new platform as business grows 
CTO 
Intends to see an application platform delivered that meets the organizational strategic requirements and scales as business workload grows 
CFO 
Intends to get the most bang for his buck 
Program Manager 
Is able to deliver an application on time, on budget while meeting the Non Functional Requirements as agreed with the customer 
Developer 
Intends to write code that meets the Performance Targets documented by the overall Non Functional Requirements 
Systems Administrator 
Expects to inherits an application that optimally uses infrastructure resources, doesn’t fall over in production, is easy to manage, doesn’t have performance bottlenecks, scales as expected to meet user workload and meets business & IT SLA’s 
Capacity Planner 
Recommends infrastructure requirements based on business workload and application architecture. Works proactively with application teams to recommends application optimization and additional infrastructure required 
Performance Tester 
Validates application performance based on defined Non Functional Requirements and expects to see the application meet defined Non Functional Requirements 
End Customer 
Expects to use an application that provides a great end user experience
Roles Performed by the Practical Performance Analyst 
Phase 
Role Performed 
Requirements Gathering 
Determine Business Volumes & Growth plans 
Determine Non Functional Requirements 
Design 
Validate Application Architecture 
Validate Infrastructure Architecture 
Validate Infrastructure Design 
Determine Infrastructure Capacity Requirements 
Build & Optimization 
Set performance targets for developers 
Validate outcome of Unit Performance Tests 
Recommend optimization to Code 
Recommend optimization to Application Design 
Recommend optimization to Infrastructure Design 
SIT & UAT 
Begin validating Application Performance for functionality that’s available 
Begin Tier Performance Tests for functionality that’s available 
Test, tune & optimize Performance for functionality that has been released 
SVT 
Execute End to End Performance Tests 
Validate Performance End to End 
Identify applicable bottlenecks 
Use Diagnostics tools to identify bottlenecks, tune & Optimize application 
Ensure application meets its Non Functional Requirements 
Evolve Performance Monitoring Requirements 
Pre-Go live 
Setup Performance Monitors for Network, OS, Application, Business Txn 
Set alerting for various Performance metrics 
Setup capture Performance metrics for purposes of Capacity Management 
Go-Live & Post Go Live 
Monitor application for potential breaches in SLA’s 
Identify hotspots using low overhead transactional tracing & diagnostics tools 
Model application performance and predict capacity impacts for growing business workload
What is Proactive Performance Management 
Performance Requirements Analysis 
Performance Modelling & Capacity Planning 
Build & Optimization 
Performance Testing 
Performance Monitoring 
Capacity Management
Costs of Addressing Performance Across the SDLC 
Requirements Gathering Phase – Lowest cost since you don’ t have designs yet and you are starting from a fresh slate. You’ve got the opportunity to document the appropriate Non Functional Requirements based on business requirements. 
Design Phase – The application designs and infrastructure designs are coming together. You still have an opportunity to influence Non Functional Requirements. You haven’t missed the bus and have the opportunity to influence the design process. 
Build Phase – Slight more expensive since the designs have been locked down, your developers have begun writing code according to specifications. Not having Non Functional Requirements means that you can’t really set developer performance targets. You will start feeling the pain once you get into SIT & UAT since you developers are only focussed on application functionality and don’t have visibility of any of the Non Functional Requirements 
Testing Phase – Defects found at this stage are expensive to fix since they require you to raise defects and go through the whole change management and QA process. Changes to application or infrastructure design are very expensive to fix. Re-design of any application components due to performance bottlenecks could set the program back by weeks or months. 
Go Live – The most expensive to fix. Your application is live, performance issues at this stage impact the business’s credibility, your credibility and the credibility of the whole QA process across the program. You should consider changing jobs and taking up something you are better at before you get fired.
Challenges in Addressing Performance 
Lack of understanding of Performance Engineering concepts 
Lack of willingness to invest in Performance Engineering tasks 
Lack of skills to support Performance Engineering roles 
Focus on application functional requirements and application design at the early stages of the program 
Expensive tools to perform tasks related to Performance Engineering across the Software Delivery Life Cycle 
Gaps between SVT & Production infrastructure 
Delays due to delayed code drops, delayed SIT/UAT phases that reduce effective Performance Testing 
Lack of diagnostics and monitoring frameworks to proactively identify performance bottlenecks 
Lack of Capacity Management tools to proactively manage performance and provision infrastructure capacity
Tooling for Performance 
Performance Requirements Gathering 
Capacity Planning 
Performance Modelling 
Performance Testing 
Performance Monitoring 
Capacity Management
Thank You 
trevor@practicalperformanceanalyst.com
1 of 14

Recommended

Performance Engineering Basics by
Performance Engineering BasicsPerformance Engineering Basics
Performance Engineering BasicsImpetus Technologies
9K views16 slides
An Introduction to Software Performance Engineering by
An Introduction to Software Performance EngineeringAn Introduction to Software Performance Engineering
An Introduction to Software Performance EngineeringCorrelsense
14K views45 slides
Testing Microservices by
Testing MicroservicesTesting Microservices
Testing MicroservicesNagarro
2.2K views13 slides
Performance and load testing by
Performance and load testingPerformance and load testing
Performance and load testingsonukalpana
22.4K views53 slides
Cigniti Independent Software Testing Services by
Cigniti Independent Software Testing ServicesCigniti Independent Software Testing Services
Cigniti Independent Software Testing ServicesCigniti Technologies Ltd
2.4K views8 slides
Performance Testing And Its Type | Benefits Of Performance Testing by
Performance Testing And Its Type | Benefits Of Performance TestingPerformance Testing And Its Type | Benefits Of Performance Testing
Performance Testing And Its Type | Benefits Of Performance TestingKostCare
564 views13 slides

More Related Content

What's hot

Introduction to Agile Testing by
Introduction to Agile TestingIntroduction to Agile Testing
Introduction to Agile TestingRaymond Adrian (Rad) Butalid
374 views43 slides
An Introduction to Performance Testing by
An Introduction to Performance TestingAn Introduction to Performance Testing
An Introduction to Performance TestingSWAAM Tech
18.3K views26 slides
Types of performance testing by
Types of performance testingTypes of performance testing
Types of performance testingNaveenKumar Namachivayam
14.3K views16 slides
Performance Testing using LoadRunner - Kamran Khan [chromeis.com] by
Performance Testing using LoadRunner - Kamran Khan [chromeis.com]Performance Testing using LoadRunner - Kamran Khan [chromeis.com]
Performance Testing using LoadRunner - Kamran Khan [chromeis.com]Kamran Khan
50.6K views200 slides
End-to-End Quality Approach: 14 Levels of Testing by
End-to-End Quality Approach: 14 Levels of TestingEnd-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of TestingJosiah Renaudin
1.1K views23 slides
Performance testing : An Overview by
Performance testing : An OverviewPerformance testing : An Overview
Performance testing : An Overviewsharadkjain
4.3K views23 slides

What's hot(20)

An Introduction to Performance Testing by SWAAM Tech
An Introduction to Performance TestingAn Introduction to Performance Testing
An Introduction to Performance Testing
SWAAM Tech18.3K views
Performance Testing using LoadRunner - Kamran Khan [chromeis.com] by Kamran Khan
Performance Testing using LoadRunner - Kamran Khan [chromeis.com]Performance Testing using LoadRunner - Kamran Khan [chromeis.com]
Performance Testing using LoadRunner - Kamran Khan [chromeis.com]
Kamran Khan50.6K views
End-to-End Quality Approach: 14 Levels of Testing by Josiah Renaudin
End-to-End Quality Approach: 14 Levels of TestingEnd-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of Testing
Josiah Renaudin1.1K views
Performance testing : An Overview by sharadkjain
Performance testing : An OverviewPerformance testing : An Overview
Performance testing : An Overview
sharadkjain4.3K views
Software Testing Process, Testing Automation and Software Testing Trends by KMS Technology
Software Testing Process, Testing Automation and Software Testing TrendsSoftware Testing Process, Testing Automation and Software Testing Trends
Software Testing Process, Testing Automation and Software Testing Trends
KMS Technology11.1K views
Load Testing Best Practices by Apica
Load Testing Best PracticesLoad Testing Best Practices
Load Testing Best Practices
Apica1.7K views
Sap test center of excellence by Infosys
Sap test center of excellenceSap test center of excellence
Sap test center of excellence
Infosys1.8K views
Testing capability ppt by anilreddyqa
Testing capability pptTesting capability ppt
Testing capability ppt
anilreddyqa8.9K views
Introduction to performance testing by Richard Bishop
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
Richard Bishop7K views
Quality Assurance/Testing Overview & Capability Deck by Sowmak Bardhan
Quality Assurance/Testing Overview & Capability DeckQuality Assurance/Testing Overview & Capability Deck
Quality Assurance/Testing Overview & Capability Deck
Sowmak Bardhan1.1K views
Applitools Framework by Applitools
Applitools  FrameworkApplitools  Framework
Applitools Framework
Applitools291 views
Manual testing concepts course 1 by Raghu Kiran
Manual testing concepts course 1Manual testing concepts course 1
Manual testing concepts course 1
Raghu Kiran14.9K views
Introduction to performance testing by Tharinda Liyanage
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
Tharinda Liyanage17.9K views
Getting start with Performance Testing by Yogesh Deshmukh
Getting start with Performance Testing Getting start with Performance Testing
Getting start with Performance Testing
Yogesh Deshmukh2.9K views

Similar to What is performance_engineering_v0.2

Primer on application_performance_testing_v0.2 by
Primer on application_performance_testing_v0.2Primer on application_performance_testing_v0.2
Primer on application_performance_testing_v0.2Trevor Warren
1.3K views15 slides
Primer on enterprise_performance_maturity_v0.2 by
Primer on enterprise_performance_maturity_v0.2Primer on enterprise_performance_maturity_v0.2
Primer on enterprise_performance_maturity_v0.2Trevor Warren
549 views12 slides
Primer on performance_requirements_gathering_v0.3 by
Primer on performance_requirements_gathering_v0.3Primer on performance_requirements_gathering_v0.3
Primer on performance_requirements_gathering_v0.3Trevor Warren
1K views12 slides
Primer on application_performance_modelling_v0.1 by
Primer on application_performance_modelling_v0.1Primer on application_performance_modelling_v0.1
Primer on application_performance_modelling_v0.1Trevor Warren
378 views13 slides
Software Performance Engineering-01 by
Software Performance Engineering-01Software Performance Engineering-01
Software Performance Engineering-01V pathirana
309 views12 slides
Software Development Lifecycle: What works for you? by
Software Development Lifecycle: What works for you?Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Jauhari Ismail
1.1K views69 slides

Similar to What is performance_engineering_v0.2(20)

Primer on application_performance_testing_v0.2 by Trevor Warren
Primer on application_performance_testing_v0.2Primer on application_performance_testing_v0.2
Primer on application_performance_testing_v0.2
Trevor Warren1.3K views
Primer on enterprise_performance_maturity_v0.2 by Trevor Warren
Primer on enterprise_performance_maturity_v0.2Primer on enterprise_performance_maturity_v0.2
Primer on enterprise_performance_maturity_v0.2
Trevor Warren549 views
Primer on performance_requirements_gathering_v0.3 by Trevor Warren
Primer on performance_requirements_gathering_v0.3Primer on performance_requirements_gathering_v0.3
Primer on performance_requirements_gathering_v0.3
Trevor Warren1K views
Primer on application_performance_modelling_v0.1 by Trevor Warren
Primer on application_performance_modelling_v0.1Primer on application_performance_modelling_v0.1
Primer on application_performance_modelling_v0.1
Trevor Warren378 views
Software Performance Engineering-01 by V pathirana
Software Performance Engineering-01Software Performance Engineering-01
Software Performance Engineering-01
V pathirana309 views
Software Development Lifecycle: What works for you? by Jauhari Ismail
Software Development Lifecycle: What works for you?Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?
Jauhari Ismail1.1K views
aneeshSeniorTestProfessional by Aneesh Khalid
aneeshSeniorTestProfessionalaneeshSeniorTestProfessional
aneeshSeniorTestProfessional
Aneesh Khalid126 views
Jaya_Joshi_Software_Testing by jaya joshi
Jaya_Joshi_Software_TestingJaya_Joshi_Software_Testing
Jaya_Joshi_Software_Testing
jaya joshi241 views
aneeshSeniorTestProfessional by Aneesh Khalid
aneeshSeniorTestProfessionalaneeshSeniorTestProfessional
aneeshSeniorTestProfessional
Aneesh Khalid157 views
aneeshSeniorTestProfessional by Aneesh Khalid
aneeshSeniorTestProfessionalaneeshSeniorTestProfessional
aneeshSeniorTestProfessional
Aneesh Khalid182 views
Automate Your Software Development Life Cycle Using the Right Tools by Info-Tech Research Group
Automate Your Software Development Life Cycle Using the Right ToolsAutomate Your Software Development Life Cycle Using the Right Tools
Automate Your Software Development Life Cycle Using the Right Tools

More from Trevor Warren

Delivering A Great End User Experience by
Delivering A Great End User ExperienceDelivering A Great End User Experience
Delivering A Great End User ExperienceTrevor Warren
211 views18 slides
Engineering Systems For The Cloud by
Engineering Systems For The CloudEngineering Systems For The Cloud
Engineering Systems For The CloudTrevor Warren
264 views50 slides
Primer on workload_modelling_v0.2 by
Primer on workload_modelling_v0.2Primer on workload_modelling_v0.2
Primer on workload_modelling_v0.2Trevor Warren
717 views14 slides
What is our_mission_v0.2 by
What is our_mission_v0.2What is our_mission_v0.2
What is our_mission_v0.2Trevor Warren
537 views9 slides
Proactive performance management_what_is_all_about_v0.3 by
Proactive performance management_what_is_all_about_v0.3Proactive performance management_what_is_all_about_v0.3
Proactive performance management_what_is_all_about_v0.3Trevor Warren
653 views13 slides
Mistakes we make_and_howto_avoid_them_v0.12 by
Mistakes we make_and_howto_avoid_them_v0.12Mistakes we make_and_howto_avoid_them_v0.12
Mistakes we make_and_howto_avoid_them_v0.12Trevor Warren
763 views12 slides

More from Trevor Warren(7)

Delivering A Great End User Experience by Trevor Warren
Delivering A Great End User ExperienceDelivering A Great End User Experience
Delivering A Great End User Experience
Trevor Warren211 views
Engineering Systems For The Cloud by Trevor Warren
Engineering Systems For The CloudEngineering Systems For The Cloud
Engineering Systems For The Cloud
Trevor Warren264 views
Primer on workload_modelling_v0.2 by Trevor Warren
Primer on workload_modelling_v0.2Primer on workload_modelling_v0.2
Primer on workload_modelling_v0.2
Trevor Warren717 views
What is our_mission_v0.2 by Trevor Warren
What is our_mission_v0.2What is our_mission_v0.2
What is our_mission_v0.2
Trevor Warren537 views
Proactive performance management_what_is_all_about_v0.3 by Trevor Warren
Proactive performance management_what_is_all_about_v0.3Proactive performance management_what_is_all_about_v0.3
Proactive performance management_what_is_all_about_v0.3
Trevor Warren653 views
Mistakes we make_and_howto_avoid_them_v0.12 by Trevor Warren
Mistakes we make_and_howto_avoid_them_v0.12Mistakes we make_and_howto_avoid_them_v0.12
Mistakes we make_and_howto_avoid_them_v0.12
Trevor Warren763 views
CMG Australia Industry Day 2014 by Trevor Warren
CMG Australia Industry Day 2014CMG Australia Industry Day 2014
CMG Australia Industry Day 2014
Trevor Warren366 views

Recently uploaded

"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ... by
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ..."Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...Fwdays
33 views39 slides
Data-centric AI and the convergence of data and model engineering: opportunit... by
Data-centric AI and the convergence of data and model engineering:opportunit...Data-centric AI and the convergence of data and model engineering:opportunit...
Data-centric AI and the convergence of data and model engineering: opportunit...Paolo Missier
29 views40 slides
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad... by
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad..."Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...Fwdays
40 views30 slides
MemVerge: Memory Viewer Software by
MemVerge: Memory Viewer SoftwareMemVerge: Memory Viewer Software
MemVerge: Memory Viewer SoftwareCXL Forum
118 views10 slides
Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa... by
Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa...Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa...
Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa...The Digital Insurer
28 views18 slides
"Fast Start to Building on AWS", Igor Ivaniuk by
"Fast Start to Building on AWS", Igor Ivaniuk"Fast Start to Building on AWS", Igor Ivaniuk
"Fast Start to Building on AWS", Igor IvaniukFwdays
36 views76 slides

Recently uploaded(20)

"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ... by Fwdays
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ..."Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
Fwdays33 views
Data-centric AI and the convergence of data and model engineering: opportunit... by Paolo Missier
Data-centric AI and the convergence of data and model engineering:opportunit...Data-centric AI and the convergence of data and model engineering:opportunit...
Data-centric AI and the convergence of data and model engineering: opportunit...
Paolo Missier29 views
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad... by Fwdays
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad..."Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...
Fwdays40 views
MemVerge: Memory Viewer Software by CXL Forum
MemVerge: Memory Viewer SoftwareMemVerge: Memory Viewer Software
MemVerge: Memory Viewer Software
CXL Forum118 views
Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa... by The Digital Insurer
Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa...Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa...
Webinar : Competing for tomorrow’s leaders – How MENA insurers can win the wa...
"Fast Start to Building on AWS", Igor Ivaniuk by Fwdays
"Fast Start to Building on AWS", Igor Ivaniuk"Fast Start to Building on AWS", Igor Ivaniuk
"Fast Start to Building on AWS", Igor Ivaniuk
Fwdays36 views
Future of Learning - Yap Aye Wee.pdf by NUS-ISS
Future of Learning - Yap Aye Wee.pdfFuture of Learning - Yap Aye Wee.pdf
Future of Learning - Yap Aye Wee.pdf
NUS-ISS38 views
The Importance of Cybersecurity for Digital Transformation by NUS-ISS
The Importance of Cybersecurity for Digital TransformationThe Importance of Cybersecurity for Digital Transformation
The Importance of Cybersecurity for Digital Transformation
NUS-ISS25 views
MemVerge: Past Present and Future of CXL by CXL Forum
MemVerge: Past Present and Future of CXLMemVerge: Past Present and Future of CXL
MemVerge: Past Present and Future of CXL
CXL Forum110 views
[2023] Putting the R! in R&D.pdf by Eleanor McHugh
[2023] Putting the R! in R&D.pdf[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdf
Eleanor McHugh38 views
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum... by NUS-ISS
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
NUS-ISS28 views
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen... by NUS-ISS
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
NUS-ISS23 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10165 views
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV by Splunk
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
Splunk86 views
.conf Go 2023 - Data analysis as a routine by Splunk
.conf Go 2023 - Data analysis as a routine.conf Go 2023 - Data analysis as a routine
.conf Go 2023 - Data analysis as a routine
Splunk90 views
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor... by Vadym Kazulkin
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
Vadym Kazulkin70 views
Micron CXL product and architecture update by CXL Forum
Micron CXL product and architecture updateMicron CXL product and architecture update
Micron CXL product and architecture update
CXL Forum27 views

What is performance_engineering_v0.2

  • 1. Performance Engineering Fundamentals Practical Performance Analyst – 23rd June 2012 http://www.practicalperformanceanalyst.com
  • 2. Agenda What is Performance Engineering Why is Performance Engineering Important Performance Engineering Life Cycle Holistic View of Performance Activities involved in Performance Engineering What does Performance mean to different stake holders Roles performed by the Practical Performance Analyst What is Proactive Performance Management Cost of addressing Performance across the SDLC Challenges in addressing Performance Engineering
  • 3. What Is Performance Engineering Definition - Performance Engineering (SPE) is a systematic and quantitative approach for the cost-effective development of software systems to meet stringent Non Functional Requirements (Performance - Capacity - Scalability - Availability - Reliability - etc). Dr. Connie Smith in her book on Software Performance Engineering (URL - http://www.perfeng.com/) advocates that, Performance Engineering is a software-oriented approach, focused on optimal selection of application architecture, design, and implementation choices with the objective of meeting Non Functional Requirements. Software Performance Engineering can also be defined functionally as the set of tasks or activities that need to be performed across the Software Development Life Cycle (SDLC) to meet the documented Non Functional Requirements. Software Performance Engineering is often viewed as the art of building systems that meeting Non Functional requirements within the allocated time frame and budget constraints.
  • 4. Why Is Performance Engineering Imp Performance Engineering is important for the following reasons – Determine End User Experience desired by customer for the applications being developed Understand Non Functional Requirements for the applications Determine Performance Targets for the Developers across the various different application tiers Work proactively with Developers to ensure Performance Targets are addressed across the Build phase Ensure that the application architecture chosen will allow you to meet the Non Functional Requirements Determine the infrastructure capacity required to meet your Non Functional Requirements & IT SLA’s Identify any major architectural or platform concerns early in the SDLC Identify application bottlenecks through early Performance Testing (Before completion of SIT and start of UAT) Model the application performance at design stage to validate your Non Functional Requirements Proactively model application performance through Performance Test and once the application goes live Proactively manage application infrastructure requirements once the application goes live Proactively monitor application performance in production (OS, Application, Transactional) to track SLA’s and capture required metrics for purposes of Performance Modelling & Capacity Management Work closely with business to forecast application performance and associated infrastructure requirements to meet growth in business workload Prevent a meltdown on go live or in production Prevent fire fighting in production and rather focus your time and energy on building required application functionality
  • 5. 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
  • 6. Holistic View Of Performance Txn Performance - Resp 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.
  • 7. Activities Involved in PE 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
  • 8. What does PE mean to different stake holders User Expectation Business Gains the ability to grow services and provision additional customers onto the existing or new platform as business grows CTO Intends to see an application platform delivered that meets the organizational strategic requirements and scales as business workload grows CFO Intends to get the most bang for his buck Program Manager Is able to deliver an application on time, on budget while meeting the Non Functional Requirements as agreed with the customer Developer Intends to write code that meets the Performance Targets documented by the overall Non Functional Requirements Systems Administrator Expects to inherits an application that optimally uses infrastructure resources, doesn’t fall over in production, is easy to manage, doesn’t have performance bottlenecks, scales as expected to meet user workload and meets business & IT SLA’s Capacity Planner Recommends infrastructure requirements based on business workload and application architecture. Works proactively with application teams to recommends application optimization and additional infrastructure required Performance Tester Validates application performance based on defined Non Functional Requirements and expects to see the application meet defined Non Functional Requirements End Customer Expects to use an application that provides a great end user experience
  • 9. Roles Performed by the Practical Performance Analyst Phase Role Performed Requirements Gathering Determine Business Volumes & Growth plans Determine Non Functional Requirements Design Validate Application Architecture Validate Infrastructure Architecture Validate Infrastructure Design Determine Infrastructure Capacity Requirements Build & Optimization Set performance targets for developers Validate outcome of Unit Performance Tests Recommend optimization to Code Recommend optimization to Application Design Recommend optimization to Infrastructure Design SIT & UAT Begin validating Application Performance for functionality that’s available Begin Tier Performance Tests for functionality that’s available Test, tune & optimize Performance for functionality that has been released SVT Execute End to End Performance Tests Validate Performance End to End Identify applicable bottlenecks Use Diagnostics tools to identify bottlenecks, tune & Optimize application Ensure application meets its Non Functional Requirements Evolve Performance Monitoring Requirements Pre-Go live Setup Performance Monitors for Network, OS, Application, Business Txn Set alerting for various Performance metrics Setup capture Performance metrics for purposes of Capacity Management Go-Live & Post Go Live Monitor application for potential breaches in SLA’s Identify hotspots using low overhead transactional tracing & diagnostics tools Model application performance and predict capacity impacts for growing business workload
  • 10. What is Proactive Performance Management Performance Requirements Analysis Performance Modelling & Capacity Planning Build & Optimization Performance Testing Performance Monitoring Capacity Management
  • 11. Costs of Addressing Performance Across the SDLC Requirements Gathering Phase – Lowest cost since you don’ t have designs yet and you are starting from a fresh slate. You’ve got the opportunity to document the appropriate Non Functional Requirements based on business requirements. Design Phase – The application designs and infrastructure designs are coming together. You still have an opportunity to influence Non Functional Requirements. You haven’t missed the bus and have the opportunity to influence the design process. Build Phase – Slight more expensive since the designs have been locked down, your developers have begun writing code according to specifications. Not having Non Functional Requirements means that you can’t really set developer performance targets. You will start feeling the pain once you get into SIT & UAT since you developers are only focussed on application functionality and don’t have visibility of any of the Non Functional Requirements Testing Phase – Defects found at this stage are expensive to fix since they require you to raise defects and go through the whole change management and QA process. Changes to application or infrastructure design are very expensive to fix. Re-design of any application components due to performance bottlenecks could set the program back by weeks or months. Go Live – The most expensive to fix. Your application is live, performance issues at this stage impact the business’s credibility, your credibility and the credibility of the whole QA process across the program. You should consider changing jobs and taking up something you are better at before you get fired.
  • 12. Challenges in Addressing Performance Lack of understanding of Performance Engineering concepts Lack of willingness to invest in Performance Engineering tasks Lack of skills to support Performance Engineering roles Focus on application functional requirements and application design at the early stages of the program Expensive tools to perform tasks related to Performance Engineering across the Software Delivery Life Cycle Gaps between SVT & Production infrastructure Delays due to delayed code drops, delayed SIT/UAT phases that reduce effective Performance Testing Lack of diagnostics and monitoring frameworks to proactively identify performance bottlenecks Lack of Capacity Management tools to proactively manage performance and provision infrastructure capacity
  • 13. Tooling for Performance Performance Requirements Gathering Capacity Planning Performance Modelling Performance Testing Performance Monitoring Capacity Management