Улучшаемые навыки
Требования производительности
Тактики производительности
MapReduce
Lambda-architecture
GoF Patterns
Architecture Patterns
Инструменты
JMeter
LoadRunner
Selenium
Nagios
Чему вы научитесь
01
Определять характеристики производительности системы.
02
Анализировать требования к системе, связанные с нагрузкой.
03
Планировать процесс разработки высокопроизводительных систем.
04
Проектировать системы с использованием оптимальных приемов для обеспечения производительности.
05
Взаимодействовать с командой тестирования при выполнении нагрузочных тестов.
06
Оптимизировать системы с повышенными требованиями к производительности.
Программа курса
01
Понятие высокопроизводительной системы
High-Performance application, High-Load application, High-Availability application.
Управление производительностью приложения.
Зависимость цены исправления ошибок от стадии обнаружения и стадии внесения.
Основные характеристики, описывающие производительность системы.
Модель нагрузки на систему.
02
Анализ требований для высокопроизводительных систем
Формирование нефункциональных требований для высокопроизводительных систем.
Работа с противоречиями при формировании требований к производительности.
Полнота требований.
Практикум (1 ч):
Анализ требований на противоречивость и полноту.
03
Архитектурные тактики. Тактики производительности
Особенности формирования требования к системам массового обслуживания (СМО).
04
Проектирование высокопроизводительных систем
Атрибуты качества системы.
Компромиссы при одновременной работе над несколькими атрибутами качества на примере 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
Шаблоны для реализации высокопроизводительных систем
Основные классы шаблонов, используемые при построении высокопроизводительных систем: GRASP, Architecture patterns, Application Integration patterns.
Примеры практической реализации шаблонов в современных стандартах.
Примеры практической реализации шаблонов в современных системах интеграции frameworks разработки.
07
Кодирование высокопроизводительных систем
Основные вопросы кодирования высокопроизводительных систем.
Методы оптимизации современных компиляторов и сред выполнения.
08
Тестирование высокопроизводительных систем
Виды тестов, используемые при доказательствах производительности системы.
Подготовка к тестированию (составление сценариев и формирование модели нагрузки).
Анализ результатов тестирования.
Введение в методологию SPE. История, границы использования.
Методика анализа систем с использованием SPE.
Практикум (1 ч): Рассмотрение на практическом примере применения SPE методологии для:
Оценки пределов производительности системы, исходя из текущих характеристик аппаратно-программной части;
Оценки влияния принимаемых архитектурных решений на производительность системы;
Оценки требований к аппаратной части, исходя из поставленных требований по производительности, базируясь на масштабировании текущих процессов системы.
10
ВСЕГО: теория 20ч (80%), практика 5ч (20%)
Видео
Для кого
Архитектор ПО
Системный аналитик
Руководитель группы\Тимлид
Разработчик
Предварительная подготовка
Требуется:
знание и умение использовать UML;
владение основами объектно-ориентированного проектирования.
Желательно знание:
языка Java;
основ архитектуры компьютеров;
архитектуры сетей передачи данных (основы);;
GOF patterns.
Расписание курсов
Курс проводят
Рогоза Максим
Эксперт в области архитектуры ПО
О тренере
Практикующий корпоративный архитектор с многолетним опытом преподавательской деятельности. Более 4 лет ведет авторские курсы по корпоративной архитектуре и Archimate.
В настоящее время работает корпоративным архитектором в компании Аксеникс (правопреемник Accenture на российском рынке), где активно занимается интеграцией решений на базе искусственного интеллекта в бизнес-процессы организации.
Этот практический опыт позволяет держать руку на пульсе современных технологических трендов и делиться.