


Менеджер продукта в Edtech/HR-tech. За более чем 7 лет работы создал и масштабировал цифровые продукты в Edtech (Яндекс Практикум, Сравни Образование, Хабр Карьера). Через карьерные и образовательные продукты обучил и трудоустроил более 30.000 специалистов, а также провел более 1000+ часов менторских консультаций для начинающих специалистов Product менеджеров, Разработчиков и Аналитиков
Курс по проектированию и интеграции современных ИТ-систем с акцентом на архитектурные шаблоны и решение практических задач.
Введение: закон Конвея и его влияние на архитектуру. Эволюция архитектур: event-driven дизайн. Монолит: проблемы и ограничения, компонентная архитектура, SOA, MSA.
Интеграция в микросервисах:
Роль архитектуры в интеграции. Связь требований и архитектуры. Требования к интеграции:
Сценарии атрибутов качества. Подбор архитектурного решения в зависимости от требований.
Шаблоны интеграции. Достижение качества проектируемого решения:
Общий процесс проектирования интеграции. Диаграммы потоков данных. UML для документирования. Диаграммы последовательности (Sequence Diagrams).
Инструменты для реализации интеграций:
Модуль 1: Основы архитектуры интеграции.
Практика: Анализ требований к интеграции ИТ-систем и выбор архитектурных шаблонов.
Модуль 2: Инструменты интеграции.
Практика: Практическое применение инструментов (REST, GraphQL, SOAP) и выбор брокеров сообщений (RabbitMQ, Kafka).
Модуль 3: Проектирование систем.
Практика: Создание архитектуры решения и установление связей между сервисами.
Модуль 4: Обеспечение качества процессов.
Практика: Решение задач по интеграции и обеспечению качества процессов.
Курс о том, как проектировать большие системы. Новые — чтобы не переделывать, старые — чтобы разобрать на части и ускорить разработку
Практический курс по основам архитектуры ПО. Тренинг предлагает глубокое понимание системной архитектуры и её роли в разработке ПО. Участники освоят выявление требований, проектирование, документирование и анализ архитектуры, а также научатся применять эти практики в реальных проектах. Курс охватывает весь жизненный цикл разработки ПО, включая взаимодействие с заинтересованными сторонами и использование гибких методологий. Основные темы: архитектурные стили, атрибуты качества, ATAM, 4+1, QAW, управление рисками и компромиссами. Идеально подходит для архитекторов, разработчиков, аналитиков и менеджеров проектов. Вы с практической точки зрения проанализируете пример: от постановки бизнес-целей к созданию чернового архитектурного документа, а также получите обратную связь.
Кратко об архитектуре ПО. Роль архитектора. Сходства и различия ролей.
Работа архитектора в Agile. Функциональные и кросс-функциональные команды.
Сквозной пример. Работа со стейкхолдерами. Бизнес-требования и функциональные требования. Методы сбора требований. Атрибуты качества (НФТ). Доменные контексты.
Проектирование архитектуры. Архитектурные стили. Site Reliability Engineering (SRE).
Введение в документирование архитектуры. Сочетание архитектурных представлений. Инструменты и форматы.
Проверка принятых проектных решений. Tiny Architectural Review Approach (TARA). Cost-Benefit Analysis Method (CBAM).
В ходе курса вы изучите методы и паттерны интеграции систем, учитывающие бизнес-требования и технические ограничения.
Интеграция: определение, задачи, обзор основных направлений и технологий (EAI, EII, ETL, SOA), интеграция на разных уровнях: бизнес-логики, презентационном и бизнес-процессов. Интеграция на уровне данных: подходы и их ограничения (общая база данных, хранилище данных, витрины данных, федеративные базы данных).
Способы сбора и описания, функциональные требования, нефункциональные требования.
Обзор OASIS, W3C, WS-I; SOAP; REST. Форматы обмена сообщениями: XML, JSON, ProtoBuf, Avro. Системы обмена сообщениями и их интерфейсов (AMPQ 0.9, 1.0).
Основные функции; основные производители: Messaging, ESB, ETL, Integration frameworks.
Подходы и шаблоны при реализации функциональных требований. Подходы при реализации нефункциональных требований. Способы построения сервисов и интеграционных решений, лучшие практики.
Практики обеспечения стабильности интеграции, и что может привести к печальным последствиям (Dogpile, Slow Responses, Bulkhead, Bounded datasets и другие).
Вы узнаете, как разрабатывать гибкие и эффективные системы, соответствующие требованиям бизнеса. В курсе рассматриваются основные проблемы, связанные с реализацией микросервисной архитектуры, а также стратегии, механизмы, паттерны и инструменты для их решения. Практические упражнения позволят вам приобрести навык самостоятельного проектирования МСА систем. Курс поможет вам принимать обоснованное решение о применимости МСА в зависимости от потребностей бизнеса и возможностей команды.
Понятия монолита, SOA, MSA. Сравнение и обоснование выбора.
Оптимальный размер микросервиса. Разбиение на сервисы по бизнес-возможностям. Разбиение на сервисы по проблемным областям. Практики определения предметных областей. Декомпозиция по техническим и организационным аспектам.
Организация команд под MSA. Организация репозитория кода под MSA.
Паттерны взаимодействия. Синхронные и асинхронные механизмы взаимодействия. Оркестровка и хореография. Основные протоколы и технологии (REST, gRPC, GraphQL, Kafka, RabbitMQ и др.). Взаимодействие с внешними системами (API Gateway, BFF). Реактивные системы. Архитектуры, управляемые событиями. Разделение команды и запроса.
Паттерны работы с данными. Порождение событий. Справочные данные в MSA. Единый источник истины (Source of Truth) в MSA.
Модифицируемость. Решение проблемы высокой связанности. Версионирование интерфейсов и событий. Типы контрактов. Изменения событийной модели. Паттерны организации запросов. Микросервисное шасси (Microservice chassis). Сетки сервисов (Service Mesh).
Масштабируемость. Паттерны построения балансировщиков. Сервисы обнаружения и паттерны работы с ними.
Производительность. Паттерны производительности в MSA (переборка, изящная деградация и пр.).
Согласованность. Проблемы обеспечения согласованности в MSA. CAP теорема. Решения проблем согласованности. Двухфазные коммиты. Паттерн SAGA. Понижение уровня согласованности.
Надежность. Механизмы отказоустойчивости. Паттерны предохранитель (Circuit Breaker), дросселировка, зависимые таймауты и пр.
Безопасность. Механизмы обеспечения безопасности в MSA. Аутентификация. Авторизация. Защита периметра. Защита каналов связи. Основные протоколы и паттерны (OAUTH2, JWT, привратник, ключ камердинера и пр.).
Тестируемость. Пирамида и квадрат тестирования. Особенность тестирования микросервисов. Модульное тестирование. Интеграционное тестирование. Компонентное тестирование. Тестирование E2E. Паттерны тестирования MSA.
Удобство обслуживания. Возможность наблюдения (Observability). Паттерны наблюдения (распределенная трассировка, агрегация журналов). Мониторинг и журналирование. Конфигурирование микросервисов. Вынесение конфигурации во вне. Поддержка системы.
Паттерн «Deployment pipeline». Паттерны развертывания. Использование технологий Docker и Kubernetes. Использование сетки ISTIO. Бессерверное развертывание. Стратегии развертывания (сине-зеленые, канареечные и т.д.).
Стратегии перехода с монолита на микросервисы. Удушение монолита (Strangler monolith). Паттерны удушения. Связь микросервиса с монолитом. Миграция базы данных.
Максимизируйте эффективность архитектурных задач с помощью LLM.
Что такое генеративный ИИ и LLM. Как работают LLM (на пальцах): трансформеры, обучение, контекст. Обзор моделей: ChatGPT, Gemini, Claude, YandexGPT, Qwen — что выбрать архитектору? Этические аспекты, ограничения, галлюцинации.
Практика: Знакомство с интерфейсами LLM. Первые промпты: простые запросы. Сравнение ответов разных моделей. Анализ точности и полезности ответов.
Анатомия эффективного промпта: инструкция, контекст, примеры. Zero/One/Few-shot prompting. Управление ролью и форматом вывода (JSON, XML, Pydantic). Распространенные ошибки при составлении промптов.
Практика: Создание простых архитектурных описаний. Генерация краткой спецификации компонента. Задание роли ("архитектор", "эксперт по безопасности"). Тестирование влияния температуры и длины контекста.
Цепочка рассуждений (Chain-of-Thought) для принятия решений. Автоматизация создания ADR, RFC, README. Поддержание актуальной документации. Работа с доменной лексикой и стилем компании.
Практика: Генерация ADR по шаблону. Создание RFC на новую фичу. Автоматическое обновление README. Сравнение и доработка результатов разных моделей.
Генерация UML/C4-диаграмм (PlantUML, Mermaid). Описание архитектуры визуально и текстово. Согласование формата между разработчиками и заказчиками.
Практика: Генерация C4-контекстной диаграммы. Создание последовательности вызовов (sequence diagram). Перевод текстового описания в графический вид. Доработка и проверка корректности диаграмм.
Поиск проблем в существующем коде и архитектуре. Выявление дублирования, узких мест, антипаттернов. Использование ИИ для анализа соответствия стандартам.
Практика: Анализ фрагментов кода на безопасность и качество. Выявление антипаттернов в архитектуре. Проверка соответствия требованиям и гайдлайнам. Предложение альтернативных решений.
Как внедрить ИИ в ежедневную работу архитектора. База промптов для типовых задач. Шаблоны и менеджеры промптов. Работа с несколькими LLM-агентами.
Практика: Разработка библиотеки промптов под свои задачи. Автоматизация части архитектурного ревью. Интеграция с внутренними системами и Git. Обсуждение: как сделать процесс предсказуемым.
Безопасность и ответственность при использовании ИИ. Юридические, коммерческие и этические аспекты. Стратегии внедрения ИИ в архитектурные процессы. Обучение команды и работа с сопротивлением.
Практика: Обсуждение кейсов: безопасное использование ИИ. Мозговой штурм: как внедрить ИИ в свою команду. Создание чек-листов для применения ИИ. Анализ возможных рисков и способов их минимизации.
Критическое мышление при работе с ИИ. Возможности и ограничения современных инструментов.
Практика: Финальное задание: Получить архитектурную задачу. Сгенерировать ADR и RFC. Создать диаграммы и описание решения. Проанализировать потенциальные проблемы. Обсуждение решений, обмен опытом. Демонстрация полученных результатов.
Эффективное проектирование корпоративных приложений: от архитектурных стилей до шаблонов реализации. Курс для тех, кто хочет систематизировать знания об архитектуре, научиться выбирать подходящие решения и снизить когнитивную нагрузку на разработчиков. Узнайте, как применять шаблоны проектирования для создания масштабируемых и устойчивых систем.
Задачи курса, знакомство. Введение в архитектуру, ее задачи и артефакты. Основные принципы построения архитектуры и связь с бизнес-целями. Каталоги шаблонов проектирования.
Архитектурные стили и шаблоны, в чем разница и каким целям служат. Рассмотрение основных архитектурных стилей (8 базовых + вариации). Предпосылки становления, особенности работы, влияние бизнес-целей на выбор и обоснование выбора. Рассматриваются плюсы и минусы реализации, возможности миграции с одного стиля на другой в зависимости от бизнес-целей и роста потребностей бизнеса.
Базовые шаблоны для организации внутренней логики модулей/подсистем. Рассмотренные шаблоны позволяют поднять уровень абстракции описания внутренней логики модулей системы. Инкапсуляция логики правильными способами позволит уменьшить вероятность ошибок и позволит более полно раскрыть потенциал объектно-ориентированного подхода разработки. Среди рассмотренных шаблонов будут такие как: Measurement, Specification, NullObject, Range и другие.
Рассматриваются 3 базовых подхода к организации доменной логики, а также принципы использования в зависимости от роли модуля в системе. Обсуждаются принципиальные шаблоны реализации сложной доменной логики. Введение в стратегический и тактический дизайн доменной логики, работа с агрегатами, и как обозначить первичные границы ограниченных контекстов. Среди рассмотренных шаблонов будут такие как: Aggregate, Actor Model, Active Record, Rich/Anemic подходы к дизайну доменной логики.
Принципы организации доступа к источникам данных, организация маппинга данных в зависимости от контекста, как учитывать миграцию данных от версии к версии. Как организовать согласованное сохранение разнотипных данных с помощью шаблона UnitOfWork. Особенности реализации для реляционных баз данных и не только. Возможность применения для сложных доменных процессов.
Особенности сохранения сложных иерархий в хранилище данных, плюсы и минусы различных вариантов структур. Работа с ключами. Рассматриваются стратегии создания ключей, форматы, плюсы и минусы подходов в зависимости от контекста окружения.
В модуле рассматриваются основные свойства кеширования и пулинга ресурсов. Когда и что должно использоваться, плюсы и минусы подходов. Обсуждаются стратегии кеширования, особенности реализации для локального использования и для распределенных систем.
Обсуждение основных классов коммуникационных сообщений (3), особенности применения, правила составления. Освещаются сложности коммуникации и зависимостей сервисов, при неправильном использовании классов сообщений. Рассматриваются особенности распределенных транзакций, использование шаблона Saga, сложности и назначение шаблона. Как обеспечить безопасную рассылку сообщений в результате выполнения сложной транзакции.
Обсуждение основных технических проблем приложений в продуктовом окружении, и как с ними бороться. Современные системы обычно представлены набором распределенных сервисов и источников данных, все они могут рано или поздно быть недоступны по разным причинам, зачастую вызванных самими разработчиками — эти причины рассматриваются в модуле. Естественно, для многих анти-паттернов существуют решения как их убрать или минимизировать эффекты. Слушатели также с ними ознакомятся.
Подведение итогов, сессия вопросов и ответов.










