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