ведущий —
Роман Ивлиев
(CIO Банки.ру)
Auriga, Лаборатория Касперского,
Онтико, Банки.ру
вебинар HighLoad-разработка с нуля по шагам
Прошёл 6 сентября. Скоро появятся видеозаписи, ожидайте!

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

Программа курса
Почему это важно?
  • Обзор вебинара: структура и цели.
  • Обзор highload-индустрии: лидеры, решения.
  • Является ли ваша система нагруженной?
  • Причины возникновения highload: можно ли ошибиться при определении причин?
  • Почему HR разыскивает именно с опытом highload-разработки?
Средства ускорения разработки
  • CMS
  • Фреймворки
  • Модули и компоненты
  • Внешние сервисы для решения различных задач
Рефакторинг или реинжиниринг
  • Непрерывность бизнеса при развитии системы
  • Когда ещё можно безопасно использовать возможности текущей системы?
  • Когда нужно начинать строить заново?
  • Цикл PDCA и "бережливое" развитие системы.
Идентификация и исследование проблемы:
  • Компоненты системы, на которые стоит обратить внимание
  • Наиболее распространённые сбои и затруднения в работе
  • Диагностика подручными средствами
  • Анализ логов и производительности системы
  • Системы мониторинга
  • Профиль нагрузки
  • Нестандартные ситуации
Развитие системы
  • Когда пора начинать что-то делать?
  • Эволюция классического нагруженного веб-портала (на примере banki.ru)
  • Методы оптимизации различных элементов системы
  • Управляемая деградация и подготовка к ней
  • Подготовка системы к росту: гибкость и надёжность
  • Hype - его плюсы и минусы
Поиск своего пути
  • Внешние факторы развития системы (шэф-driven development, например)
  • Снова о Hype
  • Следование пути развития вашей системы
  • Что почитать?
  • Что посмотреть?
  • Куда сходить?
Почему я могу про это говорить?

За 8+ лет управленческой практики довелось:

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

За 10+ лет инженерной практики довелось:

  • читать и сносно писать на дюжине языков программирования (компилируемые и интерпретируемые)
  • работать в любых операционных системах
  • сносно настраивать топ-3 веб-серверов (Apache, nginx, IIS)
  • сносно настраивать наиболее распространенные СУБД (MySQL, Postgres, MS SQL Server)
  • использовать полный офис, системы багтрекинга, сорс-трекинга, таск-трекинга — автоматизировать тесты и рутину
  • сталкиваться с UML, ГОСТами

Много читаю на совершенно разные темы. Выступаю на IT-конференциях и семинарах. Регулярно немного кодирую и администрирую, чтобы чувствовать все радости и печали своих бойцов. Сейчас работаю директором по информационным технологиям портала Banki.ru.

Интернет пестрит записями с конференций и митапов, где спецы рассказывают об опыте применения суперсовременных технологий для решения сверхзадач. Есть курсы для «чайников», суть которых донести до вас максимум информации в минимум времени. Курсы и вебинары от лучших инженеров отрасли про самые передовые техники. Их сотни. Нужен 25ый час, как минимум, чтобы всё прослушать. Но, по секрету, многие решения, о которых вам рассказывают, не нужны в данный момент, а некоторые не будут применены вами никогда. Вам приходится выбирать уже после того, как на вас вылили тонны информации.

Мы дадим вам алгоритм познания хайлоад-индустрии, дадим вам точку старта. Покажем, с чего можно начать, чтобы польза была уже сейчас, чтобы достигать максимум результатов, имея относительно минимальный багаж знаний, который будет непрерывно расти. Мы покажем вам направление развития. На примере развития реальной системы мы рассмотрим из чего состоят направления разработки и развития высоконагруженных систем. На каждом этапе мы будем давать сноски на те или иные паттерны разработки высоконагруженных систем, которые применимы к текущей метаморфозе вашей системы.

Будем строить road-map развития вашей системы и вас, как разработчика высоконагруженных систем. Прослушав этот вебинар вы сможете лучше сориентироваться в мире хайлоад-разработки, выбрать направления и последовательность развития себя, как специалиста, подготовить нужный и наиболее эффективный список мероприятий для саморазвития.

Перечень тем, которые хочется осветить:
  1. Диагностика подручными средствами, анализ логов и производительности системы, мониторинг основных характеристик. Профиль нагрузки. Что делать, если на сервер нет физического доступа.
  2. Фреймворки, сторонние сервисы, CMS, компоненты и модули, как средства ускорения разработки на разных этапах развития системы.
  3. Развитие системы. Когда пора что-то делать. Пример развития классической трёхслойной системы. От монолита до устойчивой масштабируемой архитектуры. Мемкэш, очереди, вертикальное и горизонтальное масштабирование, акселераторы и средства кэширования. Не все методы одинаково полезны. Про управляемую деградацию. Подготовка системы к росту.
  4. Про разработку высоконагруженных систем. Как в море информации, технологий и документации найти свой путь. Ряд архитектурных паттернов: SOA, монолит, облачные решения, а также некоторые подходы к разработке: Fuckup Driven Development и Шэф Driven Development Как бороться с ними и побеждать.
  5. Рефакторинг или реинжиниринг. Когда надо всё разломать и построить заново, а когда можно подправить то, что есть. Непрерывность бизнеса при изменении архитектуры систем.
4 пары. Каждая пара 2 раза по 45 минут с 5 минут перерывом. Между парами 10 минут. Между 2 и 3 парой 45 или 60 минут перерыв. В общем, как в институте.
Что мы изучим?

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

В ходе вебинара рассмотрим примеры работы:

  • нескольких наиболее популярных систем мониторинга (с установкой системы сбора и алертинга у себя, например Zabbix и комплекс ELK, а также мониторинг as a service, например okmeter.io);
  • наиболее широко используемые инструменты операционных систем для диагностики различных характеристик системы (CPU, RAM, IO, NET);
  • ряд инструментов для анализа производительности компонентов highload-приложения (анализ логов);

Обращаем ваше внимание на один очень важный момент. В качестве примера в вебинаре мы будем разбирать эволюцию инфраструктуры и архитектуры banki.ru и его сателитов ( со всеми родовыми травмами и ошибками, которые были сначала допущены, а потом устранены, или не устранены, но с ними стало возможно жить), а не сферической системы в вакууме. Вот пример одной очень поучительной истории решения непростой инженерной задачи, связанной с ростом нагрузок, наиболее яркие моменты которой, мы также рассмотрим в вебинаре — История многократного роста посещаемости Банки.ру на фоне роста курса валюты.

В результате вы получите
  • Видеозапись вебинара;
  • Обзор текущего состояния индустрии разработки highload-систем;
  • Обзор простых, но эффективных подходов к эксплуатации веб-проектов (симбиоз in-house систем и SaaS-решений);
  • Обзор архитектурных паттернов highload-приложений, а также с методы выбора применимости того или иного решения;
  • Алгоритм развития highload-приложения, основанный на глубоком анализе эволюции реальной системы;
  • Гарантию расширить возможности своей (если она у вас есть) системы, либо возможность избежать ошибок при проектировании стандартных (и не очень) архитектур в будущем;
  • Знания, достаточные для того, чтобы начать строить отказоустойчивые и производительные проекты;
  • Возможность выбрать свой путь, построить карту развития себя, как специалиста по высоким нагрузкам;
  • Алгоритм эффективного использования сил и времени при разработке систем, основанный на бережливом подходе «всему своё время» цикле PDCA Деминга-Шухарта.
Вебинар «HighLoad-разработка с нуля по шагам» прошёл 6 сентября.
Скоро появятся видеозаписи, ожидайте!