SlideShare a Scribd company logo
1 of 37
Download to read offline
Orkhan Gasimov
ORKHAN GASIMOV
Architecture Practice Coordinator,
Digital Transformation Architect,
GlobalLogic
I am a passionate digital architect working at enterprise and solution
architecture levels. I work with projects transforming existing businesses
and those aimed to create new digital products by providing guidance
and help to oversee possible issues along the journey.
I love to motivate people, I love technology, and I’m proud to take part
in development of technologies that supercharge the world. I also love
to support community by providing talks at meetups and conferences,
sharing experience at global scale.
AGENDA
Tactics
Principles
Patterns
Anti-Patterns
WHAT IS PERFORMANCE?
Response time
Throughput
Resource utilization
Latency
Budget
Operation modes
THE PROCESS
Initiate
 Definition and validation of initial requirements
Construct
 Design
 Test in small (design and code review)
Deliver
 Test in Large
 Rework
 Assess
Maintain
Initiate
Construct
Deliver
Maintain
RISK MANAGEMENT
The time, scope and resources invested in performance management must be
proportional to project risks.
DESIGN DOCUMENT
IF YOU DON’T DOCUMENT IT,
IT DOESN’T EXIST!
• Architecture and detailed design documents
• Verification criteria of subsystem / component
• Test plan
• Test cases
• Requirements
1. Use cases
2. Budgets
3. Measurement and instrumentation
ARCHITECTURE QUALITY ATTRIBUTES
Performance
Interoperability
Usability
Reliability
Availability
Security
Maintainability
Modifiability
Testability
Scalability
Reusability
Supportability
TRADE-OFF
Conflicts are possible, compromises are required.
For instance, reliability and performance.
Triple-Modular Redundancy Recovery Blocks
Module 1
Module 2
Module 3
Voter
Logic
Block 1
Block 2
Block 3
PERFORMANCE ENGINEERING TACTICS
(“Software Architecture in Practice” 2nd edition, chapter 5.4 “Performance Tactics”)
INSTRUMENTATION PRINCIPLE
The most basic example – Logging
Instrument your code/app to see what’s happening inside
Instruments should be able to operate in different modes
SYNERGETIC
PRINCIPLES
Resource Sharing Principle
Parallel Processing Principle
Load Sharing Principle
RESOURCE SHARING PRINCIPLE
System resources are limited
Processes compete for resources
Some resource are available for shared usage (concurrent or sequential)
1. Use resources when they are available
2. Minimize resource lock/block time and free resources asap
3. Minimize execution window for planned jobs/tasks
PARALLEL PROCESSING PRINCIPLE
1. Process in parallel when communication overhead is less than performance gain
2. Measure communication and resource concurrency overhead
LOAD SHARING PRINCIPLE
Balance the workload by handling conflicting tasks at different times or in different locations.
1. Plan processes so that they do not use resources at the same time
2. Divide resources in such a way that processes use different parts of the resource, and do
not require the entire resource
INDEPENDENT
PRINCIPLES
Centering principle
Fixing-point principle
Locality principle
Processing versus Frequency Principle
CENTERING PRINCIPLE
Dominant workload functions:
A subset of system functions that are frequently used (20% of functions or less) and
that are performed 80% of time or more
1. Identify the dominant workload function and minimize their processing.
2. It is necessary to design / implement the dominant functions first.
FIXING-POINT PRINCIPLE
The fixing point is a point in time.
The latest fixing point is during execution, just before instructions are to be executed.
For responsiveness, fixing should establish data connections at the earliest feasible
point in time, such that retaining the connection is cost-effective
LOCALITY PRINCIPLE
Locality – closeness of desired actions, functions, and results to the physical resources
used to produce them.
Types of locality
1. Spatial
2. Temporal (i.e., time)
3. Effectual (i.e., purpose or intent)
4. Degree (i.e., intensity or size)
PROCESSING VS FREQUENCY PRINCIPLE
The trade-off between
the amount of work done in processing a request
and the number of requests received.
PERFORMANCE
PATTERNS
Fast Path
First Things First
Batching
Alternate Routes
Flex Time
Slender Cyclic Functions
FAST PATH
Function A Function B
Function C
Frequently used
(dominating)
Result
e.g. ATM
FIRST THINGS FIRST
Secondary / Unnecessary
Primary &
Important
e.g. Radar systems
BATCHING
A B C
e.g. Secure messaging
ALTERNATE ROUTES
e.g. Multi-dispatcher DB
FLEX TIME
e.g. Report generation
SLENDER CYCLIC FUNCTIONS
e.g. Cron
PERFORMANCE
ANTI-PATTERNS
God class
Excessive Dynamic Allocation
Circuitous Treasure Hunt
The One-Lane Bridge
Traffic Jam
GOD CLASS
EXCESSIVE DYNAMIC ALLOCATION
Object Request
Object Request
Object Request
New Object
New Object
New Object
Object Request
Object Request
Object Request
Pool of
Reusable Objects
CIRCUITOUS TREASURE HUNT
THE ONE-LANE BRIDGE
TRAFFIC JAM
CONTACTS
ogasimov@gmail.com
https://fb.com/ogassymov
www.linkedin.com/in/orkhan-gasimov
https://fb.com/groups/reactive.distributed
http://ogasimov.medium.com

More Related Content

What's hot

What's hot (20)

Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
Selenium - A Trending Automation Testing Tool
Selenium - A Trending Automation Testing ToolSelenium - A Trending Automation Testing Tool
Selenium - A Trending Automation Testing Tool
 
Formal approaches to software architecture design thesis presentation
Formal approaches to software architecture design   thesis presentationFormal approaches to software architecture design   thesis presentation
Formal approaches to software architecture design thesis presentation
 
Design concepts
Design conceptsDesign concepts
Design concepts
 
Bank managment system
Bank managment systemBank managment system
Bank managment system
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
 
Migration Strategies & Methodologies
Migration Strategies & MethodologiesMigration Strategies & Methodologies
Migration Strategies & Methodologies
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Architecting and Designing Enterprise Applications
Architecting and Designing Enterprise ApplicationsArchitecting and Designing Enterprise Applications
Architecting and Designing Enterprise Applications
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for Exams
 
Sda 1
Sda   1Sda   1
Sda 1
 
EC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniquesEC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniques
 
Inno tech20131112 c
Inno tech20131112 cInno tech20131112 c
Inno tech20131112 c
 
Architecture evaluation
Architecture evaluationArchitecture evaluation
Architecture evaluation
 
Non functional requirements framework
Non functional requirements frameworkNon functional requirements framework
Non functional requirements framework
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
 
Software design
Software designSoftware design
Software design
 
CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5
 
Software design
Software designSoftware design
Software design
 

Similar to Orkhan Gasimov "High Performance System Design"

Agile Project Management Methods of ERP
Agile Project Management Methods of ERPAgile Project Management Methods of ERP
Agile Project Management Methods of ERP
lisa_yogi
 
Definition Of Project Management
Definition Of Project ManagementDefinition Of Project Management
Definition Of Project Management
Mostafa Ewees
 

Similar to Orkhan Gasimov "High Performance System Design" (20)

Java Community Webinar #8: “High Performance Systems Design”
Java Community Webinar #8: “High Performance Systems Design”Java Community Webinar #8: “High Performance Systems Design”
Java Community Webinar #8: “High Performance Systems Design”
 
Agile Project Management Methods of ERP
Agile Project Management Methods of ERPAgile Project Management Methods of ERP
Agile Project Management Methods of ERP
 
Application Transformation Workshop
Application Transformation WorkshopApplication Transformation Workshop
Application Transformation Workshop
 
Lect7
Lect7Lect7
Lect7
 
Lect7
Lect7Lect7
Lect7
 
Lean Methods & Last Planning
Lean Methods & Last PlanningLean Methods & Last Planning
Lean Methods & Last Planning
 
Kanban
KanbanKanban
Kanban
 
Changing landscape of software project management
Changing landscape of software project managementChanging landscape of software project management
Changing landscape of software project management
 
Project post-mortem analysis
Project post-mortem analysisProject post-mortem analysis
Project post-mortem analysis
 
Web Engineering
Web EngineeringWeb Engineering
Web Engineering
 
Agile and PRINCE2 - The Best of Both Worlds
Agile and PRINCE2 - The Best of Both WorldsAgile and PRINCE2 - The Best of Both Worlds
Agile and PRINCE2 - The Best of Both Worlds
 
Engineering DevOps Right the First Time
Engineering DevOps Right the First TimeEngineering DevOps Right the First Time
Engineering DevOps Right the First Time
 
Digests for the book "Scalability Rules: 50 Principles for Scaling Web Sites"
Digests for the book "Scalability Rules: 50 Principles for Scaling Web Sites"Digests for the book "Scalability Rules: 50 Principles for Scaling Web Sites"
Digests for the book "Scalability Rules: 50 Principles for Scaling Web Sites"
 
Agile Project management
Agile Project managementAgile Project management
Agile Project management
 
Agile Overview Session
Agile Overview SessionAgile Overview Session
Agile Overview Session
 
Poor Man's Kanban
Poor Man's KanbanPoor Man's Kanban
Poor Man's Kanban
 
Definition Of Project Management
Definition Of Project ManagementDefinition Of Project Management
Definition Of Project Management
 
The Devops Handbook
The Devops HandbookThe Devops Handbook
The Devops Handbook
 
Efficient project delivery joc focus - 20141030
Efficient project delivery   joc focus - 20141030Efficient project delivery   joc focus - 20141030
Efficient project delivery joc focus - 20141030
 
PM UNIT 1.pptx
PM UNIT 1.pptxPM UNIT 1.pptx
PM UNIT 1.pptx
 

More from LogeekNightUkraine

More from LogeekNightUkraine (20)

Face recognition with c++
Face recognition with c++ Face recognition with c++
Face recognition with c++
 
C++20 features
C++20 features C++20 features
C++20 features
 
Autonomous driving on your developer pc. technologies, approaches, future
Autonomous driving on your developer pc. technologies, approaches, futureAutonomous driving on your developer pc. technologies, approaches, future
Autonomous driving on your developer pc. technologies, approaches, future
 
Vitalii Korzh "Managed Workflows or How to Master Data"
Vitalii Korzh "Managed Workflows or How to Master Data" Vitalii Korzh "Managed Workflows or How to Master Data"
Vitalii Korzh "Managed Workflows or How to Master Data"
 
Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"
 
Oleksii Kuchuk "Reading gauge values with open cv imgproc"
Oleksii Kuchuk "Reading gauge values with open cv imgproc"Oleksii Kuchuk "Reading gauge values with open cv imgproc"
Oleksii Kuchuk "Reading gauge values with open cv imgproc"
 
Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...
 
Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"
 
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
 
Iurii Antykhovych "Java and performance tools and toys"
Iurii Antykhovych "Java and performance tools and toys"Iurii Antykhovych "Java and performance tools and toys"
Iurii Antykhovych "Java and performance tools and toys"
 
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
 
Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"
 
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
 
Alexandr Golyak, Nikolay Chertkov "Automotive Testing vs Test Automatio"
Alexandr Golyak, Nikolay Chertkov  "Automotive Testing vs Test Automatio"Alexandr Golyak, Nikolay Chertkov  "Automotive Testing vs Test Automatio"
Alexandr Golyak, Nikolay Chertkov "Automotive Testing vs Test Automatio"
 
Michal Kordas "Docker: Good, Bad or Both"
Michal Kordas "Docker: Good, Bad or Both"Michal Kordas "Docker: Good, Bad or Both"
Michal Kordas "Docker: Good, Bad or Both"
 
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
 
Shestakov Illia "The Sandbox Theory"
Shestakov Illia "The Sandbox Theory"Shestakov Illia "The Sandbox Theory"
Shestakov Illia "The Sandbox Theory"
 
Dmytro Kochergin “Autotest with CYPRESS”
Dmytro Kochergin “Autotest with CYPRESS”Dmytro Kochergin “Autotest with CYPRESS”
Dmytro Kochergin “Autotest with CYPRESS”
 
Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”
 
Nhu Viet Nguyen "Why C++ is Becoming a Necessity for QA Automation"
Nhu Viet Nguyen "Why C++ is Becoming a Necessity for QA Automation"Nhu Viet Nguyen "Why C++ is Becoming a Necessity for QA Automation"
Nhu Viet Nguyen "Why C++ is Becoming a Necessity for QA Automation"
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

Orkhan Gasimov "High Performance System Design"