SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Welcome to the API Economy: Developing Your API Strategy
Welcome to the API Economy: Developing Your API StrategyWelcome to the API Economy: Developing Your API Strategy
Welcome to the API Economy: Developing Your API StrategyMuleSoft
 
Test effort estimation
Test effort estimationTest effort estimation
Test effort estimationramesh kumar
 
Cigniti Independent Software Testing Services
Cigniti Independent Software Testing ServicesCigniti Independent Software Testing Services
Cigniti Independent Software Testing ServicesCigniti Technologies Ltd
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testingTharinda Liyanage
 
Idexcel Independent Testing Services Presentation
Idexcel Independent Testing Services PresentationIdexcel Independent Testing Services Presentation
Idexcel Independent Testing Services PresentationIdexcel
 
Getting start with Performance Testing
Getting start with Performance Testing Getting start with Performance Testing
Getting start with Performance Testing Yogesh Deshmukh
 
Loadrunner vs Jmeter
Loadrunner vs JmeterLoadrunner vs Jmeter
Loadrunner vs JmeterAtul Pant
 
Full Stack Developer with ( .Net Core + Angular 4 ) having 5 years of experi...
Full Stack Developer with ( .Net Core + Angular 4 ) having 5  years of experi...Full Stack Developer with ( .Net Core + Angular 4 ) having 5  years of experi...
Full Stack Developer with ( .Net Core + Angular 4 ) having 5 years of experi...Pranay Sagar
 
Resume_QA Analyst_Projects__VurukutiNarasingaRao
Resume_QA Analyst_Projects__VurukutiNarasingaRaoResume_QA Analyst_Projects__VurukutiNarasingaRao
Resume_QA Analyst_Projects__VurukutiNarasingaRaoNARASINGA RAO VURUKUTI
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testingSoftheme
 
Test automation framework
Test automation frameworkTest automation framework
Test automation frameworkQACampus
 
Planejamento de Testes
Planejamento de TestesPlanejamento de Testes
Planejamento de Testeselliando dias
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application TestingSWAAM Tech
 
Bhavana Singh_Manual Testing Resume
Bhavana Singh_Manual Testing ResumeBhavana Singh_Manual Testing Resume
Bhavana Singh_Manual Testing ResumeBhavana Singh
 
RajeswaraRao_Resume_3years
RajeswaraRao_Resume_3yearsRajeswaraRao_Resume_3years
RajeswaraRao_Resume_3yearsRajeswara K
 
Effective Test Estimation
Effective Test EstimationEffective Test Estimation
Effective Test EstimationTechWell
 

Was ist angesagt? (20)

Welcome to the API Economy: Developing Your API Strategy
Welcome to the API Economy: Developing Your API StrategyWelcome to the API Economy: Developing Your API Strategy
Welcome to the API Economy: Developing Your API Strategy
 
Test effort estimation
Test effort estimationTest effort estimation
Test effort estimation
 
Resume-UI developer
Resume-UI developerResume-UI developer
Resume-UI developer
 
Cigniti Independent Software Testing Services
Cigniti Independent Software Testing ServicesCigniti Independent Software Testing Services
Cigniti Independent Software Testing Services
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
 
Idexcel Independent Testing Services Presentation
Idexcel Independent Testing Services PresentationIdexcel Independent Testing Services Presentation
Idexcel Independent Testing Services Presentation
 
Getting start with Performance Testing
Getting start with Performance Testing Getting start with Performance Testing
Getting start with Performance Testing
 
Loadrunner vs Jmeter
Loadrunner vs JmeterLoadrunner vs Jmeter
Loadrunner vs Jmeter
 
Full Stack Developer with ( .Net Core + Angular 4 ) having 5 years of experi...
Full Stack Developer with ( .Net Core + Angular 4 ) having 5  years of experi...Full Stack Developer with ( .Net Core + Angular 4 ) having 5  years of experi...
Full Stack Developer with ( .Net Core + Angular 4 ) having 5 years of experi...
 
Resume_QA Analyst_Projects__VurukutiNarasingaRao
Resume_QA Analyst_Projects__VurukutiNarasingaRaoResume_QA Analyst_Projects__VurukutiNarasingaRao
Resume_QA Analyst_Projects__VurukutiNarasingaRao
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
 
selenium resume
selenium resumeselenium resume
selenium resume
 
Test automation framework
Test automation frameworkTest automation framework
Test automation framework
 
Load Runner
Load RunnerLoad Runner
Load Runner
 
Srinivas_Pujari_Profile
Srinivas_Pujari_ProfileSrinivas_Pujari_Profile
Srinivas_Pujari_Profile
 
Planejamento de Testes
Planejamento de TestesPlanejamento de Testes
Planejamento de Testes
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Bhavana Singh_Manual Testing Resume
Bhavana Singh_Manual Testing ResumeBhavana Singh_Manual Testing Resume
Bhavana Singh_Manual Testing Resume
 
RajeswaraRao_Resume_3years
RajeswaraRao_Resume_3yearsRajeswaraRao_Resume_3years
RajeswaraRao_Resume_3years
 
Effective Test Estimation
Effective Test EstimationEffective Test Estimation
Effective Test Estimation
 

Ähnlich wie What is performance_engineering_v0.2

Primer on application_performance_testing_v0.2
Primer on application_performance_testing_v0.2Primer on application_performance_testing_v0.2
Primer on application_performance_testing_v0.2Trevor Warren
 
Primer on enterprise_performance_maturity_v0.2
Primer on enterprise_performance_maturity_v0.2Primer on enterprise_performance_maturity_v0.2
Primer on enterprise_performance_maturity_v0.2Trevor Warren
 
Primer on performance_requirements_gathering_v0.3
Primer on performance_requirements_gathering_v0.3Primer on performance_requirements_gathering_v0.3
Primer on performance_requirements_gathering_v0.3Trevor Warren
 
Primer on application_performance_modelling_v0.1
Primer on application_performance_modelling_v0.1Primer on application_performance_modelling_v0.1
Primer on application_performance_modelling_v0.1Trevor Warren
 
Beyond Requirements Software Metrics Process
Beyond Requirements Software Metrics ProcessBeyond Requirements Software Metrics Process
Beyond Requirements Software Metrics ProcessGuilleSpain
 
Software Performance Engineering-01
Software Performance Engineering-01Software Performance Engineering-01
Software Performance Engineering-01V pathirana
 
Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Jauhari Ismail
 
aneeshSeniorTestProfessional
aneeshSeniorTestProfessionalaneeshSeniorTestProfessional
aneeshSeniorTestProfessionalAneesh Khalid
 
Jaya_Joshi_Software_Testing
Jaya_Joshi_Software_TestingJaya_Joshi_Software_Testing
Jaya_Joshi_Software_Testingjaya joshi
 
aneeshSeniorTestProfessional
aneeshSeniorTestProfessionalaneeshSeniorTestProfessional
aneeshSeniorTestProfessionalAneesh Khalid
 
aneeshSeniorTestProfessional
aneeshSeniorTestProfessionalaneeshSeniorTestProfessional
aneeshSeniorTestProfessionalAneesh Khalid
 
Automate Your Software Development Life Cycle Using the Right Tools
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 ToolsInfo-Tech Research Group
 
SE_models_1.ppt
SE_models_1.pptSE_models_1.ppt
SE_models_1.pptNidhi99849
 

Ähnlich wie What is performance_engineering_v0.2 (20)

Primer on application_performance_testing_v0.2
Primer on application_performance_testing_v0.2Primer on application_performance_testing_v0.2
Primer on application_performance_testing_v0.2
 
Primer on enterprise_performance_maturity_v0.2
Primer on enterprise_performance_maturity_v0.2Primer on enterprise_performance_maturity_v0.2
Primer on enterprise_performance_maturity_v0.2
 
Primer on performance_requirements_gathering_v0.3
Primer on performance_requirements_gathering_v0.3Primer on performance_requirements_gathering_v0.3
Primer on performance_requirements_gathering_v0.3
 
Primer on application_performance_modelling_v0.1
Primer on application_performance_modelling_v0.1Primer on application_performance_modelling_v0.1
Primer on application_performance_modelling_v0.1
 
Beyond Requirements Software Metrics Process
Beyond Requirements Software Metrics ProcessBeyond Requirements Software Metrics Process
Beyond Requirements Software Metrics Process
 
Software Performance Engineering-01
Software Performance Engineering-01Software Performance Engineering-01
Software Performance Engineering-01
 
Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?
 
Sreedhar_Bandaru_M
Sreedhar_Bandaru_MSreedhar_Bandaru_M
Sreedhar_Bandaru_M
 
Soft lifecycle
Soft lifecycleSoft lifecycle
Soft lifecycle
 
aneeshSeniorTestProfessional
aneeshSeniorTestProfessionalaneeshSeniorTestProfessional
aneeshSeniorTestProfessional
 
Jaya_Joshi_Software_Testing
Jaya_Joshi_Software_TestingJaya_Joshi_Software_Testing
Jaya_Joshi_Software_Testing
 
Oracle Aim Methodology
Oracle Aim MethodologyOracle Aim Methodology
Oracle Aim Methodology
 
Nandini-CV
Nandini-CVNandini-CV
Nandini-CV
 
Pratik Aggarwal
Pratik AggarwalPratik Aggarwal
Pratik Aggarwal
 
aneeshSeniorTestProfessional
aneeshSeniorTestProfessionalaneeshSeniorTestProfessional
aneeshSeniorTestProfessional
 
aneeshSeniorTestProfessional
aneeshSeniorTestProfessionalaneeshSeniorTestProfessional
aneeshSeniorTestProfessional
 
My Resume-2
My Resume-2My Resume-2
My Resume-2
 
Softwaretesting
SoftwaretestingSoftwaretesting
Softwaretesting
 
Automate Your Software Development Life Cycle Using the Right Tools
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
 
SE_models_1.ppt
SE_models_1.pptSE_models_1.ppt
SE_models_1.ppt
 

Mehr von Trevor Warren

Delivering A Great End User Experience
Delivering A Great End User ExperienceDelivering A Great End User Experience
Delivering A Great End User ExperienceTrevor Warren
 
Engineering Systems For The Cloud
Engineering Systems For The CloudEngineering Systems For The Cloud
Engineering Systems For The CloudTrevor Warren
 
Primer on workload_modelling_v0.2
Primer on workload_modelling_v0.2Primer on workload_modelling_v0.2
Primer on workload_modelling_v0.2Trevor Warren
 
What is our_mission_v0.2
What is our_mission_v0.2What is our_mission_v0.2
What is our_mission_v0.2Trevor Warren
 
Proactive performance management_what_is_all_about_v0.3
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
 
Mistakes we make_and_howto_avoid_them_v0.12
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
 
CMG Australia Industry Day 2014
CMG Australia Industry Day 2014CMG Australia Industry Day 2014
CMG Australia Industry Day 2014Trevor Warren
 

Mehr von Trevor Warren (7)

Delivering A Great End User Experience
Delivering A Great End User ExperienceDelivering A Great End User Experience
Delivering A Great End User Experience
 
Engineering Systems For The Cloud
Engineering Systems For The CloudEngineering Systems For The Cloud
Engineering Systems For The Cloud
 
Primer on workload_modelling_v0.2
Primer on workload_modelling_v0.2Primer on workload_modelling_v0.2
Primer on workload_modelling_v0.2
 
What is our_mission_v0.2
What is our_mission_v0.2What is our_mission_v0.2
What is our_mission_v0.2
 
Proactive performance management_what_is_all_about_v0.3
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
 
Mistakes we make_and_howto_avoid_them_v0.12
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
 
CMG Australia Industry Day 2014
CMG Australia Industry Day 2014CMG Australia Industry Day 2014
CMG Australia Industry Day 2014
 

Kürzlich hochgeladen

Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneUiPathCommunity
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 

Kürzlich hochgeladen (20)

Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyone
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
How Tech Giants Cut Corners to Harvest Data for A.I.
How Tech Giants Cut Corners to Harvest Data for A.I.How Tech Giants Cut Corners to Harvest Data for A.I.
How Tech Giants Cut Corners to Harvest Data for A.I.
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 

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