Designing High-Performance Applications

This course covers key differences between high-performance, high-load, and high-availability systems, providing fundamental concepts and principles for designing high-performance applications. Suitable for architects, project managers, and senior developers.

  • duration 24 hours
  • Language English
  • format Online
duration
24 hours
location
Online
Language
English
Code
ARC-008
price
€ 700 *

Available sessions

To be determined



Training for 7-8 or more people?
Customize trainings for your specific needs

Description

The Designing High-Performance Applications course offers a comprehensive approach to understanding and building high-performance systems, differentiating between high-performance, high-load, and high-availability requirements. This course provides architects, project managers, and senior developers with a foundation in designing systems optimized for performance and resilience, covering a range of methods and design patterns to ensure reliability at scale.

 

This course begins with an exploration of what makes a system "high-performance" versus "high-load" or "high-availability." You’ll gain insight into essential performance parameters and performance management strategies, learning how to define performance-related requirements clearly and analyze non-functional requirements for system load and performance consistency.

 

As you progress, the course introduces the most widely used architectural tactics to improve performance. Key topics include balancing competing quality attributes like scalability, fault tolerance, and response time, using examples from Amazon DynamoDB’s architecture. You will learn classical approaches for enhancing performance through techniques such as horizontal and vertical scaling, as well as modern distributed system practices like Map-Reduce and Lambda architectures for data-intensive applications.

 

The course then focuses on patterns and best practices for designing high-performance systems. Key pattern types such as GRASP, architectural, and integration patterns are presented alongside practical use cases to illustrate how they’re applied in modern software development. The coding modules offer insight into performance-aware coding techniques, including compiler and runtime optimization.

 

In the later modules, you’ll explore testing strategies and methodologies that validate system performance and guide the optimization process. This includes practical steps for building testing scenarios, simulating load, and interpreting test results for a robust performance assessment. You will also learn about the Software Performance Engineering (SPE) methodology, gaining hands-on experience in using SPE for quantitative analysis and performance prediction.

 

By the end of this course, participants will be able to:

  • Clearly define and analyze system performance parameters.
  • Apply non-functional requirement analysis for high-load systems.
  • Design systems with optimal methods to ensure high performance and scalability.
  • Collaborate effectively with test teams on load testing and performance validation.
  • Use performance patterns and coding techniques to optimize high-performance systems.
  • Apply the SPE methodology to evaluate system performance and project future scalability needs.

 

The course provides a balanced blend of theory and practice, with a focus on understanding concepts, analyzing requirements, and applying real-world techniques. Theory accounts for approximately 80% of the course, while practical exercises (20%) reinforce theoretical knowledge, giving participants hands-on experience with performance requirements analysis, scalability, and performance evaluation techniques.

After completing the course, a certificate is issued on the Luxoft Training form

Objectives

Upon completion, participants will:

  • Identify and analyze performance parameters.
  • Understand non-functional requirements for high-performance.
  • Plan and design high-performance systems with optimized methodologies.
  • Coordinate with test teams on load testing.
  • Optimize and scale applications to meet high-performance criteria.

Target Audience

  • Primary: Architects, Designers
  • Secondary: Analysts, Project Managers, Team Leads, Senior Developers

Prerequisites

  • Required: Knowledge of UML, basics of object-oriented design
  • Desirable: Familiarity with Java, PC/network architecture, GoF patterns

Roadmap

1. Introduction to High-Performance Systems (2.5h):

a. Definitions, Performance Management, Error Cost Analysis, Performance Model

2. Requirements Analysis for High-Performance Systems (1.5h, Practice: 1h):

a. Identifying Non-functional Requirements, Requirement Completeness

3. Architectural Tactics and Performance (1.5h):

a. Tactics for Mass Service Systems (MSS)

4. System Design for High Performance (Theory: 2h, Practice: 1h):

a. Quality Attributes, Balancing CAP and PACELC, Scalability with Amazon Dynamo DB

5. Classical Performance Approaches (2h):

a. Reasons for Performance Loss, Improvement Methods, Scaling Principles

b. Practice: System Scaling and Map-Reduce Transformation (2h)

6. High-Performance Patterns (5h):

a. GRASP, Architecture Patterns, Integration Patterns, Practical Use Cases

7. High-Performance Coding (2h):

a. Code Optimization Techniques, Compiler and Runtime Optimization

8. Testing High-Performance Systems (2h):

a. Types of Tests, Scenario Preparation, Analyzing Results

9. SPE Methodology (1h, Practice: 1h):

System Performance Evaluation, Assessing Hardware and Architectural Impact



Related courses

You may also be interested in

Discover more about professional growth and skills development

contact us