Четырёхнедельный онлайн-курс о том, как строить распределённые сервисы. Мы простым языком расскажем о DDD и об архитектуре больших систем. По итогам курса вы спроектируете распределённую систему, которую добавите в портфолио.
Компании, которые уходят от монолитной архитектуры к сервисной и микросервисной, часто терпят поражение — получают такой же монолит, только разбитый по нескольким репозиториям.
Мы расскажем, как избежать этих проблем — правильно разнести функциональность по сервисам и выбрать подходящий формат асинхронной коммуникации. Вы познакомитесь с Kafka, Event Streaming и понятием Schema Registry. Кроме того, мы упомянем о CQRS и SAGA.
О чём курс
Сделаем полноценный проект — систему для крупной компании на event-driven-архитектуре по принципам DDD
Мы не только нарисуем кучу квадратиков в LucidChart, но ещё и напишем код — спроектируем и запилим систему инвентаризации оборудования для крупной компании. Авторы будут писать на Ruby, вы — на чём угодно.
Подойдёт всем, кто интересуется архитектурой ПО
Достаточно читать на любом языке программирования, знать хотя бы один популярный MVC-фреймворк и понимать, для чего нужны RabbitMQ/Kafka.
Типичные сценарии, когда нужен курс
Понятные видеоуроки
Q&A
Встречи — разборы домашек с автором курса. Запись будет
Практика — полноценный учебный проект, который будем есть по кусочкам
Сессия
9 уроков по 30-45 минут. В каждом описаны подходы, концепции и термины. Всё самое важное, с понятными примерами, шутками и попугаями
Списки дополнительных материалов для погружения вглубь. Хватит на год вперед
Личные и командные консультации на некоторых тарифах
Вы получите учебный проект для портфолио и понимание, как применить знания в работе* *При условии выполнения всех домашек
Программа курса
Мы рассчитываем, что примерная нагрузка
10
часов в неделю
1-2 часа на просмотр видеоуроков
3-5 на домашку
2 часа на Q&A и разбор домашки в тарифах с ОС
1+ час для минимального погружения и год для детального изучения
Урок 1 Разбираем, в чём разница между распределённым монолитом и асинхронной системой.
Вводная Расскажем, что ждёт на курсе, разберём, что такое асинхронная архитектура, почему она появилась, какие проблемы решает и в каком случае её стоит использовать.
На выходе получим понимание термина «асинхронная архитектура» и где её лучше применять, определим начальную точку и путь, куда хотим прийти.
По 2 урока в неделю со старта обучения
Встреча-знакомство 15 февраля в 15:00 мск
Только для тарифов с обратной связью
Урок 2 Переводим язык бизнеса в процессы и модель данных
Урок 3 Переводим процессы и модель данных в сервисы и коммуникации
Проектирование Изучим 6 шагов для проектирования системы — начиная от анализа бизнес-требований и заканчивая связями между компонентами в системе. Разберёмся, как получить данные, необходимые для работы бизнес-логики, из другого сервиса или части.
На выходе получим полностью спроектированную систему, которая отвечает на все вопросы имплементации: разберёмся, какие данные нужны бизнесу, какие команды он хочет выполнять с ES like — подхода, а также составим модель данных, поймём, почему UML/ERD может быть избыточен.
+ Созвон для разбора домашки
Урок 4 Первый сервис — authn в распределённых системах, CUD и Business events на практике
Урок 5 Основной сервис инвентаризации, выбор message broker
Имплементация Выберем и сделаем механизм аутентификации. Отправим первое асинхронное сообщение, разберёмся в разнице между Distributed message Queue и Distributed log. А так как мы будем использовать kafka — разберёмся, как она работает на базовом уровне.
На выходе получим первые два сервиса из проекта системы: SSO и первый сервис для бизнеса. А также свяжем их асинхронной коммуникацией для корректной работы всей системы.
+ Созвон для разбора домашки
Дорабатываем систему Спроектируем логику для задачи, к которой система не приспособлена, — разберёмся с эволюцией событий и поймём, в каких случаях надо соблюдать прямую, а в каких — обратную совместимость.
Сделаем, чтобы с нашей системой можно было спокойно спать ночью: разберёмся в тестировании, чтобы новые фичи ничего не ломали, и придумаем, как обеспечить устойчивость системы и обрабатывать невалидные или failure-события.
На выходе разработаем план, что делать, когда изменение данных в событии потенциально может развалить всю систему. Также определим, как лучше тестировать асинхронную систему в каждом из случаев и что делать с событиями, которые сломались на уровне бизнес-логики или которые надо заретраить.
Урок 7 После запуска: тестирование, ретраи и обработка ошибочных событий
Урок 6 Добавляем незапланированный сервис: эволюция событий в системе
+ Созвон для разбора домашки
Личный опыт и выводы Подведём итоги курса: поговорим о проблемах, которые Антон наблюдал в системах, мигрирующих на асинхронную коммуникацию. Это нейминг, проектирование, техническая реализация. Затронем data management patterns, чтобы показать, что это отдельные концепции, которые могут использоваться в асинхронной архитектуре, но не обязательно должны быть в ней. Обсудим, как практиковаться после курса и где искать идеи и места для новых проектов.
На выходе: составим список подводных камней и советов, которые помогут избежать проблем. Получим цельную картину и шаги/темы для дальнейшего изучения.
Урок 9 Итоги и что делать дальше
Урок 8 Опыт Антона: 4 асинхронные системы из реальной жизни
Каждый урок — это 30-45-минутное видео, на котором Антон объясняет теорию.
Урок 2
Пример одной недели обучения
Каждую ссылку расшифровываем, прописываем чем будет полезна. Если это книга — указываем даже конкретную главу. Обьем большой — хватит на год вперед.
Записаться в список ожидания курса
Когда откроем набор — напишем вам и дадим скидку
Тарифы
Если возникли вопросы или хотите оплатить от юрлица — напишите на support@tough-dev.school, отвечаем в течение суток.
Мы подключили сервис «Тинькофф.Долями». От рассрочки отличается тем, что нужно заплатить первый взнос в размере 25% от суммы. Остальная сумма делится на четыре равные части и выплачивается раз в две недели. Без договора и одобрений, проценты за услугу платим мы. Для вас бесплатно. Сервис будет работать только для российских карт.
Согласовываете с руководителем обучение или знакомите нас с руководителем, чтобы мы вам в этом помогли.
Для юрлиц стоимость немного выше: «Я сам» — 22 000₽/$275, «В тусовке» — 40 000₽/$500, «VIP» — 60 000₽/$750, «Командный VIP» — 250 000₽/€2778. Это связано с необходимостью дополнительного документооборота.
Обмениваемся документами
Мы выставляем счёт и отправляем приглашение для обмена документами в Диадок.
Присылаете реквизиты
Присылаете нам на почту реквизиты компании. Обычно их взять можно у HR, на сайте компании в разделе «Контакты» или написав в бухгалтерию. Если ваша бухгалтерия просит какой-то набор документов — приложите список, чтобы мы сразу прикрепили.
Ваша компания оплачивает, а мы выдаём вам доступ к курсу.
Даём доступ
По окончании присылаем закрывающие документы в Диадоке, а ваша бухгалтерия подписывает.
1
2
3
4
Как пройдёт обучение
Понедельник
Вторник
Урок 2
Личные консультации
Дедлайн по сдаче домашки
1-я неделя
2-я неделя
На почту вам приходит письмо с уроком недели. В нем ссылка на 20-30-минутное видео, которое знакомит вас с темой. Там же конспект самого главного, домашка и список дополнительных материалов. На выполнение домашки вам понадобится не более часа.
undefined
Урок 3
Разбор домашки в 15:00 мск
Живой разбор домашек тарифов «В тусовке» и «Всё включено». Проводим в 19:00 по мск в зуме. Делаем запись встречи, чтобы можно было посмотреть потом. На встрече Антон с Федей комментируют домашку. Вы сможете задавать вопросы по ходу или отвечать на уточнения.
Дедлайн по проверке домашек для тарифа «Всё включено». Обратную связь по домашке присылаем в среду до конца дня.
Воскресенье
В тарифе «Всё включено» проходят личные консультации с Антоном длительностью 45 минут. Проходят в зуме.
В последнюю пятницу курса проводим Q&A-сессию в зуме по оставшимся вопросам. Длительность сессии — два часа (в тарифах, где предусмотрена эта опция).
Q&A-сессия
Дополнительно в тусовке и VIP
Урок 4
На почту вам приходит письмо с первым уроком недели. В нем ссылка на 20-30-минутное видео, которое знакомит вас с темой. Там же конспект самого главного, домашка и список дополнительных материалов. На выполнение домашки вам понадобится не более часа.
На почту вы получаете письмо со вторым уроком, по аналогии со вторником. И так далее в течение четырёх недель.
Урок 5
Дедлайн по сдаче домашки
Дедлайн по проверке домашек для тарифа «Всё включено». Обратную связь по домашке присылаем в среду до конца дня.
Встреча-знакомство
В тарифе «Всё включено» проходят личные консультации с Антоном длительностью 45 минут. Проходят в зуме.
Комьюнити Школы
Все выпускники собираются в чате, где помогают друг другу — от бытовых советов по релокации до советов по выбору стека. Сейчас в чате 8 топиков и почти 850 активных участников.
По окончании курса добавим вас в наше
Сертификат
По окончании курса выдадим электронный сертификат тем, кто сдал вовремя все домашки. Мы делаем сертификаты особенными. Чтобы хотелось похвастаться.
Cертификат на русском и английском языках
Авторы
Фёдор Борщёв и Антон Давыдов. Больше 20 лет опыта на двоих
Антон — независимый solution architector и разработчик, core contributer Hanami и Dry-rb. Раньше работал backend-архитектором в Toptal.com, сейчас помогает iGoods, 3commas и другим компаниям перейти на сервисную архитектуру и настроить интеграции. В курсе отвечает за программу и проверку ДЗ. Подробнее
Федя — лайвкодер и CTO, в пандемию консультировал «Вкусвилл» и iGoods по поводу производительности бекенда. В курсе отвечает за работу с бизнесом — сбор требований и демонстрацию результатов. Подробнее
Курс очень понравился! Позволил структурировать и актуализировать знания в сфере асинхронных коммуникаций. Уже после первой недели начал применять полученные знания в работе! У Антона круто получилось донести мысли и идеи, которые витали у меня уже давно, но теперь наконец сформировались и закрепились :) Особенно запомнилось — «Не стоит объединять два различных бизнесовых шага в один, только потому что технически они очень похожи» 💪 Теперь постепенно буду привносить и адаптировать идеи на текущей работе, это очень вдохновляет и приносит удовлетворение)
Алексей Исмаилов
Спасибо за курс! Одним из результатов обучения, наблюдаемых уже сейчас, стало понимание, что очень многие фокусируются на микросервисах, не видя леса за деревьями, в то время как мы в команде, например, резонно и осознанно решили в одном месте писать монолит, понимая всю ситуацию, я считаю, благодаря курсу (в команде я не один его проходил). После учёбы остался некоторый «голод», и я думаю, это и есть главное моё достижение, ещё полгода-год я буду лазить, пересматривать, изучать доп. материалы, чтобы всё это улеглось, потому что главное, что со мной произошло, — я увидел глубину своего непонимания в этой части, выходит, курс открыл для меня новую глубину! Вместе с тем я стал гораздо лучше понимать, что стоит не только за асинхронной архитектурой, но за архитектурой в принципе, за это огромное спасибо) Ушёл постигать и углублять знания в «Анализе систем».
Мария Крол
Курсы у вас огонь, конечно. Работаю архитектором в телекоммуникационной компании. Продукт большой, много легаси, и главная особенность — плагинная архитектура и очень скудная документация. Предстояло делать массивный рефакторинг, и я поняла, что понятия не имею, с какой стороны к этому подойти.
Пошла на курс потому, что помимо документации и прочего можно было посмотреть на реализацию микросервисного подхода вживую и понять, надо нам это или нет. На выходе получила понимание того, почему наша документация «не читается» и почему схемы приходится по сто раз пережёвывать и разбирать. Начала приводить в порядок документацию и от неё занялась планированием рефакторинга с наиболее критичных мест.
Также курс хорошо даёт понять, в каких случаях НЕ стоит применять микросервисы, и позволяет избежать больших затрат и косяков в реальных продуктах. Благодаря тому что в курсе приходится пройти весь цикл самостоятельно, получила более чёткое понимание, где заканчивается архитектура и начинается дизайн. Безусловно, курс крутейший и подойдёт всем, каждый сможет сделать проект на своём уровне.
Мне кажется, полезнее всего идти в тариф с чатом. Хотя проект и индивидуальный, в чате можно найти ответы почти на все свои вопросы, увидеть горы интересных идей и посмотреть со стороны на свои просчёты. А ещё это помогает не слететь с дистанции, потому что там видно, как непросто даётся курс каждому, что делает его ещё более ценным.
Андрей Болдырев
Шикарный курс🏆 Тщательно выверенный контент и захватывающий домашний проект. Ничего лишнего. Огромное количество материалов и ссылок на годную информацию прилагается после каждого урока.
Отдельное спасибо хочется сказать за знакомство с Event Storming — это шикарный инструмент❤️
Могу смело порекомендовать этот курс, если вы хотите погрузиться в разработку распределённых систем с нуля или узнать, как ещё их можно готовить. Вы получите бесценный джедайский набор лучших практик💯
Никита Мязин
Про школу и курсы узнал случайно от коллеги. Поначалу немного скептически отнёсся, но потом посмотрел первый урок и решил попробовать, не пожалел ни о чём.
Самая клёвая часть в курсах (проходил асинхронную архитектуру и анализ систем) не только в самом материале, но ещё и в возможности пообщаться с людьми с разным опытом, обсудить вопросы. Антон всегда приходил на помощь и до самого конца всё объяснял. Ну и, конечно, топовые домашние задания, благодаря которым можно решить вечную проблему того, что ты не можешь делать что-то на работе без опыта, а опыта нет, пока не начнёшь работать.
Очень много всего пригодилось на работе. Асинхронную архитектуру проходили с коллегой. Мы, в общем-то, подозревали, что у нас что-то не так, но чётко сформулировать не могли. А уже после курса взглянули на нашу систему на работе, обсудили, что не так и что будем делать для исправления. Ну и в целом стал совсем иначе смотреть на задачи, и особенно когда встают вопросы, выносить ли это в отдельный микросервис. Рекомендую!
Александр Верхогляд
Курс помог систематизировать уже имеющиеся знания по архитектуре и дизайну систем, а также пополнить багаж знаний и опыта по организации взаимодействия элементов в микросервисной архитектуре. Я ознакомился с техниками и отработал на практике приёмы DDD, анализа требований заказчика, разбиение архитектуры на подсистемы. На работе знания из курса подстегнули к улучшению архитектуры и разделению подсистем. А ещё во время обучения классно провёл время в кругу коллег и единомышленников.
Павел Щегельский
Мне всегда интересны новые технологии и новые методы в мире ИТ, а самое важное — это практика. Данный курс закрыл для меня все эти пункты.
Перечислю главные для себя вещи, которые я познал в течение курса:
Я много читал о Event Storming, но мне так и не удалось его попробовать. В ходе курса я смог попробовать и прочувствовать, почему это так важно и как это может быть полезно при анализе бизнес-требований. Я обычно следую пословице «Семь раз отмерь, один раз отрежь». ES — это потрясающий инструмент, который может легко помочь вам понять домены, зависимости, то, как система может работать и каков будет результат.
Стал лучше понимать проблемы, с которыми можно столкнуться при построении асинхронной архитектуры, и то, как не оказаться в распределённом монолите.
Важным компонентом при построении асинхронной архитектуры является MQ. В рамках практики сознательно была выбрана Kafka. Через практику я поближе познакомился с Kafka и различными шаблонами, которые помогают решать проблемы обмена сообщениями.
Удалось поближе познакомиться с фреймворком Spring при реализации домашних заданий.
Список можно продолжать ещё долго, и это займёт время. Единственное — хочу сказать, что ни капельки не жалею о потраченном времени. Я очень доволен результатом и Антоном как экспертом.
Артем Лебаков
Все понравилось и прошло по ожиданиям. Хоть я и не выполнил всю домашку, как от себя и ожидал, но вынес много полезного:
Я сам автоматизатор и не касался разработки монолитов, не говоря о микросервисах. Однако при разработке автотестов и в целом при работе курс добавил осознанности и идей в подходах. Все-таки ту же связность можно не только в микросервисах уменьшать, а где угодно практически.
Сам вел несколько курсов, но по автоматизации. Этот курс очень хороший, мое ЧСВ было сломлено и честно признал для себя, я давал материал хуже. Организацию на курсе тоже не такую поддерживал, снимаю шляпу. Поставил себе зарубки и если доведется вести еще курсы, то буду активно ваши подходы использовать тоже =)
Ну и конечно приятно, когда курс оставляет после себя не пустое место, а пласт материала для дальнейшего изучения.