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

В курсе рассматриваются различия между высоконагруженными, высоконадежными и высокопроизводительными системами. Основная задача курса – дать представление об основных понятиях, принципах и подходах, используемых при проектировании высокопроизводительных систем. Курс будет полезен не только архитекторам, но и руководителям проектов разработки, ведущим разработчикам.
Курс: ARC-008
Длительность: 24 ч.

Описание

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

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

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

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

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

В рамках курса рассматриваются основные примеры потери производительности программных систем. После этого даются основные пути борьбы за производительность системы.

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

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

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

Разбираемые темы

Понятие высокопроизводительной системы:
  • High-Perfomance application, High-Load application, High-Availability application;
  • Управление производительностью приложения;
  • Зависимость цены исправления ошибок от стадии обнаружения и стадии внесения.

Основные характеристики производительности систем:
  • Основные характеристики, описывающие производительность системы;
  • Модель производительности системы.

Анализ требований для высокопроизводительных систем:
  • Формирование нефункциональных требований для высокопроизводительных систем;
  • Работа с противоречиями при формировании требований к производительности;
  • Полнота требований.
Лабораторная работа "Анализ требований на противоречивость и полноту".

Проектирование высокопроизводительных систем:
  • Атрибуты качества системы;
  • Основные причины потери производительности системы;
  • Основные методы повышения производительности системы.
Лабораторная работа:
Часть 1. Построение алгоритма сортировки объектов с использованием параллельного выполнения сортировки. Анализ построенного алгоритма.
Часть 2. Определение оценок количественных характеристик доступа к записям базы данных с использованием индексов. Анализ зависимостей времени доступа от длины ключа и количества записей в БД.

Шаблоны для реализации высокопроизводительных систем:
  • Основные классы шаблонов, используемые при построении высокопроизводительных систем:
    • GRASP;
    • Architecture patterns;
    • Application Integration patterns.
  • Примеры практической реализации шаблонов в современных стандартах.
  • Примеры практической реализации шаблонов в современных системах интеграции frameworks-разработки.
Лабораторная работа "Оптимизация производительности приложения, выполняющего последовательную обработку большого объема информации".

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

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

Оптимизация производительности для приложений:
  • Оптимизация производительности системы;
  • Пути оптимизации производительности сложных распределенных систем;
  • Оптимизация и повышение стабильности работы Java-приложений;
  • Повышение производительности баз данных.

Методология SPE:
  • Введение в методологию SPE. История, границы использования;
  • Модель производительности системы;
  • Применение модели производительности системы при анализе современных систем;
  • Применение SPE при разработке современных систем;
  • Методика анализа систем с использованием SPE.
Лабораторная работа "Построение модели производительности тестовой системы".

Цели

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

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

Архитекторы, проектировщики, а также аналитики, руководители проектов, руководители разработки, ведущие разработчики.

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

Требуется:
  • знание и умение использовать UML;
  • владение основами объектно-ориентированного проектирования.

Желательно знание:
  • языка Java; 
  • основ архитектуры компьютеров; 
  • архитектуры сетей передачи данных (основы); 
  • GOF patterns. 
После окончания курса выдаётся сертификат на бланке Luxoft Training
Тренер в Москва Киев
Афанасьев Андрей Специалист в области архитектуры ПО
Андрей занимается разработкой программного обеспечения в различных областях с 1984 г.  

Являясь ведущим инженером в НИИ Министерства электронной промышленности (1984–1991), занимался разработкой Систем автоматизированного проектирования аналого-цифровых СБИС (схемотехническое моделирование, логической моделирование, логическая верификация цифровых СБИС); проектированием топологии СБИС (проверка топологии, генерация программ для станков, синтез топологии – кремневые компиляторы); системным программированием (IBM mainframe, DEC PDP/LSI/Vax); разработкой архивов хранения информации для САПР. 
В 1991–1997 гг. занимал должность заместителя генерального директора, руководил направлением "разработка заказного программного обеспечения и тиражных продуктов автоматизации торговой деятельности".
Позже в ОАО "Весть", ОАО "Весть-Метатехнологии" на позиции заместителя генерального директора занимался внедрением систем документооборота и автоматизации архивов. 
С 2003 г. в Luxoft является ведущим архитектором подразделения Government & IBS. 

Основной опыт по разработке следующих прикладных систем:
  • Системы автоматизированного проектирования (САПР);
  • Системы автоматизации торговли;
  • Системы документооборота;
  • Системы автоматизации архивов;
  • Финансовые системы;
  • Игровые системы (gambling);
  • Медицинские информационные системы.

Имеются публикации в специализированных и популярных изданиях, посвященных документообороту российских предприятий и организации архивной деятельности.
Участвовал в российских и международных конференциях, посвящённых системам управления документами, САПР, разработке высоконагруженных приложений.
Участвовал в международных выставках.
Тесленко Виктор Специалист в области разработки и архитектуры ПО (Java)
Виктор уже много лет преподает Java-технологии и ООП. С 2005 г. обучение под его руководством прошли разработчики компаний банковской сферы, энергетики, телекоммуникаций, государственные предприятия и органы, многие другие организации из Украины, России, Грузии, Беларуси, Азербайджана. Среди его клиентов – все GSM-операторы Украины, большая тройка операторов России (МТС, Билайн, Мегафон), крупнейшие банки (Райффайзен Банк Аваль, Индекс Банк, УкрСоцБанк и другие), КиевОблЭнерго, Национальный Банк Украины, Государственная налоговая администрация.

В 2006 г. Виктор стал первым в Украине тренером Sun Microsystems по Java.

Чередуя преподавательскую деятельность с работой в проектах, Виктор постоянно дополняет свои курсы примерами из жизни, иллюстрирует те или иные аспекты разработки и проектирования фактами, выдержками из документации и кода.
-10% ФИЗИЧЕСКИМ ЛИЦАМ
Данный курс запланирован в городах: Москва, Киев
25.12.2017 - 27.12.2017
Время: 10:00-18:00
Локация: Москва
Длительность: 24 ч.
Тренер
Афанасьев Андрей
Специалист в области архитектуры ПО
37 000 1

25.12.2017 - 27.12.2017

Не подходят даты, время или хотите заказать корпоративное обучение для команды?
+
Предложите свой вариант
19.03.2018 - 21.03.2018
Время: 10:00-18:00
Локация: Киев
Длительность: 24 ч.
Тренер
Тесленко Виктор
Специалист в области разработки и архитектуры ПО (Java)
8 280 грн.
В корзину

19.03.2018 - 21.03.2018

Не подходят даты, время или хотите заказать корпоративное обучение для команды?
+
Предложите свой вариант
Не подходят даты, время или хотите заказать корпоративное обучение для команды?
+
Предложите свой вариант
Москва 37 000 1
Санкт-Петербург 33 300 1
Омск 27 750 1
Киев 8 280 грн.
Одесса 7 500 грн.
Днепр 7 500 грн.
Отзывы:
Фролов Владислав
Интересны и полезны были практические примеры из реальной жизни. По итогам обучения остались самые положительные впечатления. Данный курс - хорошая возможность взглянуть на свою деятельность со стороны и научиться задавать правильные вопросы аналитикам и заказчику.
Земляных Павел
Очень полезный курс, снимающий все неоднозначности при проектировании.
Укладников Андрей
Весьма полезно провел время на курсе. Понравилась как теория, так и практика, особенно информация о паттернах, примерах и тактиках решения проблем производительности.
Серикбаев Максат
Хороший тренинг, дал практичные и полезные знания для работы, а также старт для дальнейшего индивидуального обучения.
Участник тренинга
Наиболее полезным оказалось описание базовых подходов к увеличению производительности.
Тюкавкин Андрей
В процессе обучения разобрано много вопросов на примере реальных ситуаций. Интересной была организационная лабораторная работа. Понравилась хорошо структурированная информация по теоретической части. Думаю, это лучший тренинг, который я посещал: живое общение, удобное время, постепенное освоение материала.
Участник тренинга
Мое впечатление от тренинга отличное. Курс превзошел мои ожидания. Наиболее полезными мне показались практические примеры и их разбор, новые для меня методики оценки проектов.
Участник тренинга
Лучший тренинг, на котором я была. Интересный материал, практические задания из жизни, тренер [Юнусов Максим] - профессионал, которого интересно слушать.
Рекомендуемые курсы для дальнейшего обучения:
Москва:
11.12.2017-13.12.2017
Санкт-Петербург:
25.12.2017-27.12.2017
Киев:
23.01.2018-26.01.2018
Москва:
21.03.2018-23.03.2018
Москва:
02.04.2018-06.04.2018
Москва:
09.04.2018-10.04.2018

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

Выбрать дату
Если Вам не подходят дата и место проведения тренинга, Вы можете оставить заявку на участие в нем в любом из городов, где представлены филиалы Luxoft Training. Для этого выберите вариант "Открытая дата" и укажите желаемое место проведения курса.
Желаемое место проведения курса
Вы можете оставить заявку на корпоротивное обучение сотрудников Вашей компании в любом городе России или Украины, выбрав вариант "Другой город"
Фамилия *

Имя *

Отчество

Контактный E-mail *

Компания *

Телефон *

Город *

Комментарий
По запросу на education@luxoft.com мы ответим на любые дополнительные вопросы касательно обучения в нашем Luxoft Training.
   Подпишись на ежемесячный DigestLT
Успешная форма подписки.
Спасибо!
Форма отправлена успешно.