Сложность
Сложность
Продвинутый
Тип обучения
Тип обучения
Курс
Трудоустройство
Трудоустройство
Отсутствует
Сертификат
Сертификат
Да

Стоимость курса

48 900 ₽
нет рассрочки

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

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

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

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

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

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

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

Что вы получите после обучения

Приобретаемые навыки
1
Проектирование приложений
2
Архитектурные тактики
3
Кодирование
5
Методология SPE

Вас будут обучать

Специалист в области разработки ПО
Разработкой занимается больше 14 лет. Начинал с PHP, JS, HTML, CSS. Дорос до Team Lead.

В 2015 основал собственный бизнес - веб-студию.

Продолжал развиваться в разработке и начал развитие в управлении, продажах, маркетинге, найме и наставничестве. Работал с VueJS, React.JS, Angular, Symfony, Express, Ktor, Java, Swift, Flutter, Dart. В 2020 году из-за пандемии закрыл компанию ушел в продуктовую разработку в Huntica.works как Seniour Frontend Developer. Через пол года возглавил всю разработку компании как CTO.

Образовательная организация

Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, архитектуре ПО, ручному и автоматизированному тестированию ПО, Big Data и машинному обучению, управлению проектами и Agile. Действует скидка 10% на обучение физических лиц.

Программа курса

1. Понятие высокопроизводительной системы (2,5 ч):

High-Performance application, High-Load application, High-Availability application.
Управление производительностью приложения.
Зависимость цены исправления ошибок от стадии обнаружения и стадии внесения.
Основные характеристики, описывающие производительность системы.
Модель нагрузки на систему.

2. Анализ требований для высокопроизводительных систем (1,5 ч)

Формирование нефункциональных требований для высокопроизводительных систем.
Работа с противоречиями при формировании требований к производительности.
Полнота требований.
Практикум (1 ч):

Анализ требований на противоречивость и полноту.

2.1.Архитектурные тактики. Тактики производительности (1,5 ч)

Особенности формирования требования к системам массового обслуживания (СМО).

3. Проектирование высокопроизводительных систем (2 ч)

Атрибуты качества системы.
Компромиссы при одновременной работе над несколькими атрибутами качества на примере CAP и PACELC.

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

Рассмотрение подходов к гибкому масштабированию системы на примере Amazon Dynamo DB с сохранением контроля над отказоустойчивостью и сохранением константной производительности.

3.1. Классические подходы производительности

Основные причины потери производительности системы (1 ч).
Основные методы повышения производительности системы (1 ч).
Принципы горизонтального и вертикального масштабирования систем (0,5 ч).

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

Разбор примера масштабирования системы.
Преобразование монолитной системы в Map-Reduce.
Обзор Map-Reduce.
Преобразование Map-Reduce в Lambda-архитектуру для снижения проблем чистой Map-Reduce практики.

4. Шаблоны для реализации высокопроизводительных систем (5 ч)

Основные классы шаблонов, используемые при построении высокопроизводительных систем: GRASP, Architecture patterns, Application Integration patterns.
Примеры практической реализации шаблонов в современных стандартах.
Примеры практической реализации шаблонов в современных системах интеграции frameworks разработки.

5. Кодирование высокопроизводительных систем (2 ч)

Основные вопросы кодирования высокопроизводительных систем.
Методы оптимизации современных компиляторов и сред выполнения.

6. Тестирование высокопроизводительных систем (2 ч)

Виды тестов, используемые при доказательствах производительности системы.
Подготовка к тестированию (составление сценариев и формирование модели нагрузки).
Анализ результатов тестирования.

7. Методология SPE (1 ч)

Введение в методологию SPE. История, границы использования.
Методика анализа систем с использованием SPE.

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

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

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


Рейтинг курса

4.4
рейтинг
0
0
0
0
0

Может быть интересно

обновлено 17.11.2024 00:05
Проектирование высокопроизводительных приложений

Проектирование высокопроизводительных приложений

Оставить отзыв
Поделиться курсом с друзьями