SlideShare a Scribd company logo
1 of 34
The Blueprints to Success
Srivalli Aparna
Introduction
Introduction
Blackbox Testing
Blackbox Testing
• Performance testing cannot be conducted in a black box
• As a minimum, we should know how the boxes interact with the
other boxes in the landscape
ArchitecturalAnalysis – LayeredApproach
Context
Consumer
Infrastructure
Communication
Information
/Data
Context Layer
Context Layer
Understanding what has changed
ArchitecturalChange
• New components
• Modified components
• Existing components
Context
ArchitecturalChange
Consumer Layer
Consumer Layer
Understanding who uses your software
Channels of Load
• Real people - Internal staff, customers,
vendors
• Other software systems, APIs
• Batch processes – ETL jobs
Context
Consumer
Channels of load
Infrastructure Layer
InfrastructureLayer
Understanding where/how the components are deployed
Infrastructure
• Physical Vs Virtual, Cloud Vs On-premise
• Components not visible in logical
architecture (LB, proxy, gateways etc.)
• Architecture layout (Load balancing,
failover etc.)
Context
Consumer
Infrastructure
InfrastructureLayer
Communication Layer
Communication Layer
Understanding how the components communicate
Natureof Communication
• Network protocols
• Network bandwidth
• Sync vs Async
Context
Consumer
Infrastructure
Communication
Natureof Communication
Information/Data Layer
InformationLayer
Understanding the nature of business data exchanged
InformationLayer
• Flow of business data
• Sequence of calls
Context
Consumer
Infrastructure
Communication
Information
/Data
Flow of information
ArchitecturalAnalysis – LayeredApproach
Context
Consumer
Infrastructure
Communication
Information
/Data
Summarising the findings
FiveLayer diagram
• No existing diagram
• No full E2E view
• Existing diagrams too complex
Challenge/Discussion
• Architecture documentation is not always detailed and up-to-date
• What other useful information can we obtain by analyzing the solution
architecture?
Thank you

More Related Content

What's hot

Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testing
sonukalpana
 
Load and performance testing
Load and performance testingLoad and performance testing
Load and performance testing
Qualitest
 

What's hot (20)

Functional Testing of RESTful Applications
Functional Testing of RESTful ApplicationsFunctional Testing of RESTful Applications
Functional Testing of RESTful Applications
 
JedaOverview
JedaOverviewJedaOverview
JedaOverview
 
Reactive programming
Reactive programmingReactive programming
Reactive programming
 
Load Testing Best Practices
Load Testing Best PracticesLoad Testing Best Practices
Load Testing Best Practices
 
Neotys PAC 2018 - Gayatree Nalwadad
Neotys PAC 2018 - Gayatree NalwadadNeotys PAC 2018 - Gayatree Nalwadad
Neotys PAC 2018 - Gayatree Nalwadad
 
Functional reactive programming
Functional reactive programmingFunctional reactive programming
Functional reactive programming
 
Integration strategies best practices- Mulesoft meetup April 2018
Integration strategies   best practices- Mulesoft meetup April 2018Integration strategies   best practices- Mulesoft meetup April 2018
Integration strategies best practices- Mulesoft meetup April 2018
 
Getting start with Performance Testing
Getting start with Performance Testing Getting start with Performance Testing
Getting start with Performance Testing
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testing
 
Reactive: Programming -> Systems -> Architecture
Reactive: Programming -> Systems -> ArchitectureReactive: Programming -> Systems -> Architecture
Reactive: Programming -> Systems -> Architecture
 
Load and performance testing
Load and performance testingLoad and performance testing
Load and performance testing
 
Neotys PAC 2018 - Helen Bally
Neotys PAC 2018 - Helen BallyNeotys PAC 2018 - Helen Bally
Neotys PAC 2018 - Helen Bally
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
 
Performance testing
Performance testingPerformance testing
Performance testing
 
Group meeting: Identifying Information Disclosure in Web Applications with Re...
Group meeting: Identifying Information Disclosure in Web Applications with Re...Group meeting: Identifying Information Disclosure in Web Applications with Re...
Group meeting: Identifying Information Disclosure in Web Applications with Re...
 
Performance testing services
Performance testing servicesPerformance testing services
Performance testing services
 
Software testing performance testing
Software testing  performance testingSoftware testing  performance testing
Software testing performance testing
 
An Introduction to Performance Testing
An Introduction to Performance TestingAn Introduction to Performance Testing
An Introduction to Performance Testing
 
Declarative Concurrency with Reactive Programming
Declarative Concurrency with Reactive ProgrammingDeclarative Concurrency with Reactive Programming
Declarative Concurrency with Reactive Programming
 
Grinding the java monolith
Grinding the java monolithGrinding the java monolith
Grinding the java monolith
 

Similar to Srivalli Aparna - The Blueprints to Success

New Tech for Project Managers
New Tech for Project ManagersNew Tech for Project Managers
New Tech for Project Managers
Pratip Mallik
 
1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.ppt1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.ppt
KalsoomTahir2
 
Relational Database Stockholm Syndrome (Neal Murray, 6 Point 6) London 2019 C...
Relational Database Stockholm Syndrome (Neal Murray, 6 Point 6) London 2019 C...Relational Database Stockholm Syndrome (Neal Murray, 6 Point 6) London 2019 C...
Relational Database Stockholm Syndrome (Neal Murray, 6 Point 6) London 2019 C...
confluent
 

Similar to Srivalli Aparna - The Blueprints to Success (20)

Diksha sda presentation
Diksha sda presentationDiksha sda presentation
Diksha sda presentation
 
Cp7101 design and management of computer networks -network
Cp7101 design and management of computer networks -networkCp7101 design and management of computer networks -network
Cp7101 design and management of computer networks -network
 
Slides of Chapter 3 network design and management book
Slides of Chapter 3 network design and management bookSlides of Chapter 3 network design and management book
Slides of Chapter 3 network design and management book
 
Technical Architectures
Technical ArchitecturesTechnical Architectures
Technical Architectures
 
Dynamic Service Configuration and Automated Network Configuration with NETCON...
Dynamic Service Configuration and Automated Network Configuration with NETCON...Dynamic Service Configuration and Automated Network Configuration with NETCON...
Dynamic Service Configuration and Automated Network Configuration with NETCON...
 
Envisioning the Network Cloud
Envisioning the Network CloudEnvisioning the Network Cloud
Envisioning the Network Cloud
 
Monitoring a virtual network infrastructure - An IaaS perspective
Monitoring a virtual network infrastructure - An IaaS perspectiveMonitoring a virtual network infrastructure - An IaaS perspective
Monitoring a virtual network infrastructure - An IaaS perspective
 
New Tech for Project Managers
New Tech for Project ManagersNew Tech for Project Managers
New Tech for Project Managers
 
Cloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba CloudCloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba Cloud
 
The Evolving Data Center – Past, Present and Future
The Evolving Data Center – Past, Present and FutureThe Evolving Data Center – Past, Present and Future
The Evolving Data Center – Past, Present and Future
 
Internetworking
InternetworkingInternetworking
Internetworking
 
Cp7101 design and management of computer networks-design concepts
Cp7101 design and management of computer networks-design conceptsCp7101 design and management of computer networks-design concepts
Cp7101 design and management of computer networks-design concepts
 
CCNA part 1 osi
CCNA part 1 osiCCNA part 1 osi
CCNA part 1 osi
 
1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.ppt1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.ppt
 
--Enterprise-Application-Integration.ppt
--Enterprise-Application-Integration.ppt--Enterprise-Application-Integration.ppt
--Enterprise-Application-Integration.ppt
 
Introduction and Basics to web technology .pptx
Introduction and Basics to web technology .pptxIntroduction and Basics to web technology .pptx
Introduction and Basics to web technology .pptx
 
Relational Database Stockholm Syndrome (Neal Murray, 6 Point 6) London 2019 C...
Relational Database Stockholm Syndrome (Neal Murray, 6 Point 6) London 2019 C...Relational Database Stockholm Syndrome (Neal Murray, 6 Point 6) London 2019 C...
Relational Database Stockholm Syndrome (Neal Murray, 6 Point 6) London 2019 C...
 
Telecommunications architectures and standards
Telecommunications architectures and standardsTelecommunications architectures and standards
Telecommunications architectures and standards
 
Creating a Centralized Consumer Profile Management Service with WebSphere Dat...
Creating a Centralized Consumer Profile Management Service with WebSphere Dat...Creating a Centralized Consumer Profile Management Service with WebSphere Dat...
Creating a Centralized Consumer Profile Management Service with WebSphere Dat...
 
Characerizing and Validating QoS in the Emerging IoT Network
Characerizing and Validating QoS in the Emerging IoT NetworkCharacerizing and Validating QoS in the Emerging IoT Network
Characerizing and Validating QoS in the Emerging IoT Network
 

More from Neotys_Partner

More from Neotys_Partner (20)

Leandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & RightLeandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & Right
 
Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)
Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)
Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)
 
Hari Krishnan Ramachandran - Assuring Performance for the Connected World
Hari Krishnan Ramachandran  - Assuring Performance for the Connected WorldHari Krishnan Ramachandran  - Assuring Performance for the Connected World
Hari Krishnan Ramachandran - Assuring Performance for the Connected World
 
Bruno Audoux - Connected Cars to the Net, IoTs on the Roads
Bruno Audoux - Connected Cars to the Net, IoTs on the RoadsBruno Audoux - Connected Cars to the Net, IoTs on the Roads
Bruno Audoux - Connected Cars to the Net, IoTs on the Roads
 
Alexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance TestingAlexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance Testing
 
Alan Gordon - Building a Holistic Performance Management Platform
Alan Gordon - Building a Holistic Performance Management PlatformAlan Gordon - Building a Holistic Performance Management Platform
Alan Gordon - Building a Holistic Performance Management Platform
 
Twan Koot - Beyond the % usage, an in-depth look into monitoring
Twan Koot - Beyond the % usage, an in-depth look into monitoringTwan Koot - Beyond the % usage, an in-depth look into monitoring
Twan Koot - Beyond the % usage, an in-depth look into monitoring
 
Stijn Schepers - Performance Test Automation Beyond Frontier
Stijn Schepers - Performance Test Automation Beyond FrontierStijn Schepers - Performance Test Automation Beyond Frontier
Stijn Schepers - Performance Test Automation Beyond Frontier
 
Stephen Townshend - Constellations
Stephen Townshend - ConstellationsStephen Townshend - Constellations
Stephen Townshend - Constellations
 
Stefano Doni - Achieve Superhuman Performance with Machine Learning
Stefano Doni - Achieve Superhuman Performance with Machine LearningStefano Doni - Achieve Superhuman Performance with Machine Learning
Stefano Doni - Achieve Superhuman Performance with Machine Learning
 
PAC 2018 - Stijn Schepers
PAC 2018 - Stijn SchepersPAC 2018 - Stijn Schepers
PAC 2018 - Stijn Schepers
 
Neotys PAC 2018 - Mark Tomlinson
Neotys PAC 2018 - Mark TomlinsonNeotys PAC 2018 - Mark Tomlinson
Neotys PAC 2018 - Mark Tomlinson
 
Neotys PAC 2018 - Wilson Mar
Neotys PAC 2018 - Wilson MarNeotys PAC 2018 - Wilson Mar
Neotys PAC 2018 - Wilson Mar
 
Neotys PAC - Zak Cole
Neotys PAC - Zak ColeNeotys PAC - Zak Cole
Neotys PAC - Zak Cole
 
Neotys PAC 2018 - Thomas Steinmaurer
Neotys PAC 2018 - Thomas SteinmaurerNeotys PAC 2018 - Thomas Steinmaurer
Neotys PAC 2018 - Thomas Steinmaurer
 
Neotys PAC 2018 - Todd De Capua
Neotys PAC 2018 - Todd De CapuaNeotys PAC 2018 - Todd De Capua
Neotys PAC 2018 - Todd De Capua
 
Neotys PAC 2018 - Tingting Zong
Neotys PAC 2018 - Tingting ZongNeotys PAC 2018 - Tingting Zong
Neotys PAC 2018 - Tingting Zong
 
Neotys PAC 2018 - Thomas Rotté
Neotys PAC 2018 - Thomas RottéNeotys PAC 2018 - Thomas Rotté
Neotys PAC 2018 - Thomas Rotté
 
Neotys PAC 2018 - Stephen Townshend
Neotys PAC 2018 - Stephen TownshendNeotys PAC 2018 - Stephen Townshend
Neotys PAC 2018 - Stephen Townshend
 
Neotys PAC 2018 - Srivalli Aperna
Neotys PAC 2018 - Srivalli ApernaNeotys PAC 2018 - Srivalli Aperna
Neotys PAC 2018 - Srivalli Aperna
 

Recently uploaded

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 

Recently uploaded (20)

Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 

Srivalli Aparna - The Blueprints to Success

Editor's Notes

  1. So we have Paul here. I just thought Paul would be a common name so I picked it. He is just getting started at a new client site for a performance testing project. Let’s say the client is a major University and they are rolling out a new web portal for their students. The website is pretty simple let’s students view their information (personal information, classes, library loans, fees etc.) and students can update their information.
  2. So after a few weeks of performance testing, the results seem fine so that portal went live and students started complaining about how slow the website is. So Paul has done the workload modelling, and he create some awesome scripts in his favourite load testing tool. But he wasn’t sure what went wrong, why he couldn’t catch performance issues. Well there are a lot of things that could have gone wrong, but for the context of this talk, let’s say this is the problem
  3. It is rarely a case that the software system we are testing is a standalone system. Businesses are complex, they use software for a lot of purposes. They might have some software for handling CRM, they might have some payment systems, they might have some systems which takes care of authentication, or some middleware components which joins all these components. The componets constant communicate with each other. So it is really important to understand how the software we are testing is part of the client’s landscape. This is where, analyzing the solution architecture comes handy.
  4. Performance testing cannot be treated as black box approach, At a minimum we should know how it interacts with other boxes in the landscape. the boxes are connected to each other Understanding and analyzing solution architecture provides us with a wealth of information, that shapes our perf test strategy. Saves of a lot of time of time especially you are coming from outside, need to understand a lot of system in a short period of time Most of the information is already there, captured in SADs, architecture diagram or in people’s hand, so all you need to to do understand and capture the information what’s relevant to performance testing
  5. This is not a brand new concept, some of us do it, many of us don’t do it. I just thought of sharing my approach, something I found helpful while getting started on a new engagement. Five layers: Context Consumer Infrastructure Communication Data
  6. This is about understanding what has changed in the architecture of your solution within the context of the release/project you are testing
  7. Understanding what changes have been made as part of this release What has changed helps us where to focus our efforts Architectural changes – could be new components that are added in this release Components that are modified It is really crucial to include these components because this is where most of the performance risk is. Especially if it’s a brand new component, there is no prior performance benchmark for this system. It’s not just new and modified component, some existing components are crucial and need to be included in the performance testing This is a little bit tricky because, although these components are not changed as part of this release, changes in one component could have an impact on the unchanged components, therefore needs to be included iin the testing Let us take an example
  8. This is a made up architecture diagram for our university. We have students accessing the web portal, and the web portal accesses the core systems via the integration layers (which exposes a bunch of APIs) As well as let’s just say we have a regulatory body that makes calls to the integration layer to get information about the student records or the courses offered, anything, I’m just making this up. In this case, the web interface is brand new as marked in the image without any performance benchmark, so we definitely need to include this in our testing On the other hand, the integration layer is already existing, because the regulatory body has been consuming the APIs get access the student information. However, in this release it has been extended to add new APIs were added to accommodate the need of the webportal. So there is performance risk with this layer too. Finally the core systems are not touched as part of this project. But when we carefully see, the load on these system is going to change, these components are going to be used more than they used to be. We can’t simply stub these components and say that I am going to test only web portal, it doesn’t work that way because at the end of the day, from your users perspective it doesn’t matter where the slowness is. It could be integration layer, or it could be because of the performance issues in the core systems because they weren’t designed to handled this extra load coming in or the webportal itself, the end users /customers are experiencing the slowness. So we need to take a holistic approach to address the risk. So that’s all about the layer. This step essentially narrows down the scope of our testing because tehre could be hundreds of components. By analyzing the architectural change and its impact on the other components, we can make sure to include all the key components that cannot be skipped from included in the performance testing.
  9. Let’s move on to the next layer
  10. This is about understanding the users of our solution under test. This determines the channels/sources of incoming load, which is a key factor for determining the performance risk
  11. Consumers can be anyone or anything who is consuming the services offered by your software. Most often they are real people, like staff or students Some consumers are not so obvious, they can be other software systems consuming the API exposed by your application Or even batch processes or ETL jobs that consume data and services of your software that are putting load on your system That’s why I named this layer as consumers as it doesn’t necessarily always the “users’ of the system
  12. Going back to our university example one more time Maybe when Paul was doing his load tests, he might have loaded this channel here (the load coming from the students directly hitting the web portal). Maybe he missed simulating the load coming from the regulatory body here. There could be other channels, like the staff using the course managemen system heavily on a day to day basis. Without these other sources of load, maybe the student web portal performed real fast when he did the testing. Which won’t be the case in production. I’m not saying we need to load every single channel that we see here of course unless it is significant in terms of volumes. However, if we don’t look at the full picture we might miss important channels of load. we might be see unrealistic results which might trick us into thinking that everything seems fine when it is not.
  13. Let’s move on to the next layer
  14. It’s about understanding where your components are deployed
  15. Understanding where the system is physically hosted helps us understand the performance risk that won’t be visible in logical architecture diagrams This is not an exhaustive list but just to give an idea, this includes undersntaing where the software is deployed – One big physical machine or a virtual machine Whether it is on-premise or in a cloud There are a number of ways this information can be useful when planning our tests: It helps us understanding potential performance risks – for example if some compponents are hosted in cloud and some on on-premise there could be performance risks with latency or bandwidth or the gateways sitting in between could be a bottleneck point If the two nodes in a cluster are in two different datacenters, then there is a risk of latency between these two components. If any component is not balanced and no failover mechanism in place then maybe it can be a single point of failure. Which is a risk. 3) Also tells us information about what sort of monitoring will be available What is the OS - Windows or linux (if it is in cloud, maybe we will have limited visibility during the tests if the infrastructure is managed by the vendor, we can raise it as a project risk upfront when drafting our performance testing plan) Components like firewalls and load balancers are usually only visible when we analyse the physical architecture of the solution. Understanding what sort of load balancing policy is in place will help us make sure that the traffic we generate is not blocked by the load balancers and the results are not skewed. Virtual hardware vs physical hardware Cloud or On premise Cloud – PaaS, SaaS, or IaaS Active vs passive clusters Load balancer policy Physical architecture could be very different from the test environment and the production ------ Identify the differences in the environment Find any single point of failure Any restrictions with load balancing policy that could affect load testing traffic Any network latency issues (two nodes – if they are in different data centers – communication via network) Components that may not be visible in the logical architecture, that need to be monitored
  16. Now let’s see the physical architecture of the university solution. As we can see the integration layer is hosted on only one node. If this node goes down, then there is no way the external parties are going to communicate with the core systems. This is a reliability risk that we can identify without doing the testing and mitigate it without doing any testing. In this diagram, the databases for the two core systems are hosted on the same physical machine. This means performance of one system could impact the performance of the other system. Which is again another performance risk we can identify and something to watch for when we do our testing. We can also identify the difference between production environment sizing and performance test environment sizing. Which is a key piece of information for doing realistic performance testing. Another thing is, I have seen a number of cases where some components in the performance test environment share the infrastructure with the production components. Which is not ideal but at least if we know the limitations we could probably work around them like running tests after hours when the production load is minimal All these issues we can identify and address in our performance test stratregy
  17. The next layer is the communication layer
  18. As the name says it’s about understanding how the components in the landscape communicate
  19. What sort of network protocol used to communicate (especially between the client and the server) – HTTPS, JMS or proprietary protocols. This information will be quite useful for assessing our tooling options What sort of network is used (whether the users use mobile data or University Wifi or LAN) is something useful when designing our performance tests Communication is not necessarily between the client and the server (can be communication between any two components in the architecture) Whether the components communicate via synchronous fashion like HTTP or fire Asynchronous like Messaging services or even polling. If some activities are happening in the background as an async activity without any users waiting on it, it is slightly lower risk
  20. In the example, Sync communication with solid arrow and async are shown in dotted arrow The calls made by the web portal to the two core systems is Sync. This means, when we have bursts in the usage of the web portal (say when results are our or when it it the last day to submit applciations to the next semester) then the course scheduling system or student management system are under risk. If the applciations were queued and sent to the downstream systems in a controlled fashion then it would have been lower performance risk. Another scenario is because the core systems exchange information between them in an Asynchronous fashion, there is a chance that when the student is fetching the information from the core system he may not be seeing the real-time information.
  21. This step is about understanding the nature of business data exchanged between the components in the landscape
  22. This goes hand in hand with the communication layer we have seen earlier. This is essentially the kind of business data exchanged between the components in the solution. Understanding how these components are used by the business. One student -> 10 different courses (this ratio could be crucial while setting up our test data) we simply can’t use dummy student who are not enrolled to any classes. Sequence of calls (how the business transaction translate into number of calls) -> opportunity for tuning If you have sequence diagrams available, this information can be obtained. Login -> series of back and forth interactions between on-premise and cloud. And the downstream systems Something to keep an eye for during our testing
  23. When the library data takes longer to load, then we can tell that it could be issue with the call to library system, other componets are fine.
  24. This is not a brand new concept, some of us do it, many of us don’t do it. I just thought of sharing my approach, something I found helpful while getting started on a new engagement. Five layers: Context Consumer Infrastructure Communication Data