О чём курс

Еще до момента проектирования любой программной системы нужно понимать, что вследствие некоторых ограничений она всегда может стать высокопроизводительной системой. При разработке высокопроизводительной системы необходимо определиться с тем, какие параметры определяют систему как высокопроизводительную. Если система высокопроизводительная, то для успешной её реализации должны быть приняты специальные меры для обеспечения производительности.

В курсе рассматриваются различия между высоконагруженными, высоконадежными и высокопроизводительными системами.

Основная задача курса - дать представление об основных понятиях, принципах и подходах, используемых при проектировании высокопроизводительных систем.

Часто встречающаяся фраза: «Это должно работать быстро!» - это не требование. Во время обучения вы не только узнаете о том, почему это не требование, но и научитесь правильно работать с требованиями к производительности и анализировать их. Также в курсе изучается понятие «критические сценарии». Полученные знания по работе с требованиями вы закрепите на практике во время выполнения практического задания.

В рамках курса разбираются основные примеры потери производительности программных систем. После этого даются основные пути борьбы за производительность системы. Также в рамках курса на практических примерах рассматриваются паттерны, применяемые при проектировании систем с повышенными требованиями к производительности, приводятся сведения об основных анти-паттернах, встречающихся при реализации программных систем, влияющих на производительность.

Отдельное внимание уделяется подготовке системы к тестированию и анализу результатов тестирования. Рассказывается о создании программы и методики испытания высоконагруженных систем, модели нагрузки системы и рассматривается методика, позволяющая провести количественную оценку производительности системы.

Поскольку разработчикам программных систем часто приходится решать проблемы разработки высоконагруженных систем, обеспечивающих обработку больших объемов данных с заданными требованиями к временам отклика, курс будет полезен не только архитекторам, но и руководителям проектов разработки, ведущим разработчикам.

Цели

Во время обучения участники научаться:
  • определять характеристики производительности системы;
  • анализировать требования к системе, связанные с нагрузкой на систему;
  • планировать процесс разработки высокопроизводительных систем;
  • проектировать системы с использования оптимальных для обеспечения производительности приемов;
  • взаимодействовать с командой тестирования при выполнении нагрузочных тестов;
  • оптимизировать системы с повышенными требованиями к производительности;
  • использовать методологию SPE для обеспечения производительности системы при разработке.

Целевая аудитория

Основная:

  • Архитекторы
  • Проектировщики

Дополнительная:

  • Аналитики
  • Руководители проектов
  • Руководители разработки
  • Ведущие разработчики

Предварительная подготовка

Требуется:
 
     
  • знание и умение использовать UML;
  •    
  • владение основами объектно-ориентированного проектирования.
  •  
 
 
 
 
Желательно знание:  
   
       
  • языка Java; 
  •       
  • основ архитектуры компьютеров; 
  •       
  • архитектуры сетей передачи данных (основы); 
  •       
  • GOF patterns. 
  •   
 

Для кого

Разработчик Разработчик
Архитектор ПО Архитектор ПО
Проектировщик Проектировщик
Руководитель проекта Руководитель проекта

Улучшаемые навыки

Требования производительности, тактики производительности, MapReduce, Lambda-architecture, GoF Patterns, GRASP Patterns, Architecture Patterns, Application Integration patterns, Message Channel Patterns, Message Construction Patterns, Message Routing Patterns, System Management Patterns, JIT, SPE, USE, RED, Workload characterization

Темы курса

01 Понятие высокопроизводительной системы (2,5 ч):
  • High-Performance application, High-Load application, High-Availability application.
  • Управление производительностью приложения.
  • Зависимость цены исправления ошибок от стадии обнаружения и стадии внесения.
  • Основные характеристики, описывающие производительность системы.
  • Модель нагрузки на систему.
02 Анализ требований для высокопроизводительных систем (1,5 ч)
  • Формирование нефункциональных требований для высокопроизводительных систем.
  • Работа с противоречиями при формировании требований к производительности.
  • Полнота требований.

Практикум (1 ч):

  • Анализ требований на противоречивость и полноту.
03 Архитектурные тактики. Тактики производительности (1,5 ч)
  • Особенности формирования требования к системам массового обслуживания (СМО).
04 Проектирование высокопроизводительных систем (2 ч)
  • Атрибуты качества системы.
  • Компромиссы при одновременной работе над несколькими атрибутами качества на примере CAP и PACELC.

Практикум: Разбор принципа балансировки атрибутов качества на примере Amazon Dynamo DB (1 ч):

  • Рассмотрение подходов к гибкому масштабированию системы на примере Amazon Dynamo DB с сохранением контроля над отказоустойчивостью и сохранением константной производительности.
05 Классические подходы производительности
  • Основные причины потери производительности системы (1 ч).
  • Основные методы повышения производительности системы (1 ч).
  • Принципы горизонтального и вертикального масштабирования систем (0,5 ч).

Практикум (2 ч):

  • Разбор примера масштабирования системы.
  • Преобразование монолитной системы в Map-Reduce.
  • Обзор Map-Reduce.
  • Преобразование Map-Reduce в Lambda-архитектуру для снижения проблем чистой Map-Reduce практики.
06 Шаблоны для реализации высокопроизводительных систем (5 ч)
  • Основные классы шаблонов, используемые при построении высокопроизводительных систем: GRASP, Architecture patterns, Application Integration patterns.
  • Примеры практической реализации шаблонов в современных стандартах.
  • Примеры практической реализации шаблонов в современных системах интеграции frameworks разработки.
07 Кодирование высокопроизводительных систем (2 ч)
  • Основные вопросы кодирования высокопроизводительных систем.
  • Методы оптимизации современных компиляторов и сред выполнения.
08 Тестирование высокопроизводительных систем (2 ч)
  • Виды тестов, используемые при доказательствах производительности системы.
  • Подготовка к тестированию (составление сценариев и формирование модели нагрузки).
  • Анализ результатов тестирования.
09 Методология SPE (1 ч)
  • Введение в методологию SPE. История, границы использования.
  • Методика анализа систем с использованием SPE.

Практикум (1 ч):

Рассмотрение на практическом примере применения SPE методологии для:

  • Оценки пределов производительности системы, исходя из текущих характеристик аппаратно-программной части;
  • Оценки влияния принимаемых архитектурных решений на производительность системы;
  • Оценки требований к аппаратной части, исходя из поставленных требований по производительности, базируясь на масштабировании текущих процессов системы.
10 ВСЕГО: теория 20ч (80%), практика 5ч (20%)

51 500 ₽

46 350 ₽ — для физ. лиц

Записаться на курс

Чему вы научитесь

01 Разрабатывать архитектурные решения, которые обеспечивают высокую производительность, включая выбор подходящих архитектурных стилей, таких как микросервисы или событийно-ориентированная архитектура
02 Оптимизировать производительность приложений, включая профилирование, кэширование, асинхронное программирование и эффективное управление ресурсами
03 Проектировать приложения с учетом масштабируемости, что позволит им эффективно обрабатывать увеличенные нагрузки
04 Управлять данными, включая выбор подходящих баз данных, индексацию и оптимизацию запросов, что поможет минимизировать время отклика и увеличить скорость обработки данных
05 Проводить тестирование производительности и мониторинг приложений, используя инструменты и методологии, которые позволят выявлять узкие места и обеспечивать стабильную работу приложений под нагрузкой

Ведущий курса

Андрей

Луговской Андрей

51 500 ₽

46 350 ₽ — для физ. лиц

Записаться на курс

Записаться на курс

51 500 ₽

46 350 ₽ — для физ. лиц

Юр. лицо — 51 500 ₽
Физ. лицо — 46 350 ₽
20.01.2025, Онлайн
20.01.2025, Онлайн
Открытая дата
Продолжая, я подтверждаю, что ознакомлен с Условиями использования и Порядком обработки персональных данных

Отзывы о курсе

Повысьте квалификацию И получите диплом
Отзывы учеников
Интересны и полезны были практические примеры из реальной жизни. По итогам обучения остались самые положительные впечатления. Данный курс - хорошая возможность взглянуть на свою деятельность со стороны и научиться задавать правильные вопросы аналитикам и заказчику.
В процессе обучения разобрано много вопросов на примере реальных ситуаций. Интересной была организационная лабораторная работа. Понравилась хорошо структурированная информация по теоретической части. Думаю, это лучший тренинг, который я посещал: живое общение, удобное время, постепенное освоение материала.
Мое впечатление от тренинга отличное. Курс превзошел мои ожидания. Наиболее полезными мне показались практические примеры и их разбор, новые для меня методики оценки проектов. Тренер поделился своим опытом, как всё происходит на самом деле, а не в теории. Курс хороший, спасибо!
Лучший тренинг, на котором я была. Интересный материал, практические задания из жизни, тренер - профессионал, его очень интересно слушать. Понравилась как теория, так и практика, особенно информация о паттернах, примерах и тактиках решения проблем производительности. Мне понравилось, рекомендую!
Отличный тренинг. Получил общее представление о подходах к проектированию систем, что дает понимание в поддержке систем. Были приведены примеры оптимизации и основные подходы к повышению быстродействия БД, рассмотрена технология SPE, основы проектирования высоконагруженных комплексов систем, паттерны. Отдельное спасибо за материал по Postre SQL и Oracle.
В целом курс понравился. Восхищает компетентность тренера, его примеры из реальной жизни и реальных проектов, постоянный фидбек, все ли было понято; начало лекций начиналось с ревью «а что мы уже прошли», это позволяет эффективнее запоминать материал. Единственное пожелание, оценку SPE лучше дополнить формулами.
Очень насыщенный курс. Базовые понятия для меня не являлись откровением, но 50% узнал того, с чем раньше не сталкивался. Понравилась подача материала, повторение предыдущих сессий в начале новой, real case сценарии, освещение плюсов и минусов решений, формализация сложности алгоритма сортировки с последующим распараллеливанием, получением итоговой формулы и дифференцированием по P. Очень полезный курс, спасибо! 😊
Очень хорошее обучение. Курс был полезен для меня в нескольких аспектах: он научил меня рассчитывать и оценивать производительность программной системы, помог формализовать имеющиеся знания и осветил некоторые моменты в архитектуре программного обеспечения, требующие внимания в отношении настройки производительности.
Понравился большой охват темы, затронуты не только вопросы проектирования систем, но и тестирования производительности систем, Рассмотрены все технологии проектирования приложений, доходчиво объяснили, что и когда лучше использовать, формулы расчета требований, примеры оценки производительности и поиска узких мест. В целом курс интересный и полезный.

Связанные курсы

ARC-001
30 часов

Ключевые практики архитектора ПО

Практический курс по основам архитектуры ПО: выявление требований, проектирование и документирование для успешных проектов.

от Middle

62 900 ₽

ARC-004
24 часа

Шаблоны проектирования приложений масштаба предприятия

Изучите особенности выбора архитектурных решений для корпоративных приложений с акцентом на стили, атрибуты качества и практику.

от Middle

49 500 ₽

REQ-004
16 часов

Моделирование бизнес-процессов на UML

На курсе вы изучите основы моделирования бизнес-процессов с применением UML и процессного подхода: действующие лица, сценарии и создание моделей

от Middle

27 000 ₽

Наши ученики работают в:

Наши клиенты

Mail.ru
Альфа-Банк, банковская группа
Лаборатория Касперского
Магнит, розничная сеть
Спортмастер, сеть спортивных магазинов
ПСБ
Сбертех
Дзен
IT One
Ростелеком
Мегафон
Nexign
Ozon
Декатлон
X5 Group
Технониколь
Росатом
Газпром
Нлмк
ВСК
Синимекс

Не нашли, что искали? — Просто напишите, и мы поможем

Продолжая, я подтверждаю, что ознакомлен с Условиями использования и Порядком обработки персональных данных
Корпоративное обучение Оценка персонала Сертификация О нас Стань тренером Блог
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.