Описание
Программа «Архитектор ПО. Путь к мастерству в проектировании систем» разбита на 8 курсов, объединенных сквозным кейс-проектом «Микросервисная архитектура food-tech приложения с алгоритмическим движком», который позволяет увидеть процесс работы архитектора целиком, прожить каждый этап на практике, сохранив себе образец выполнения задачи.
Помимо реализации кейс-проекта, в рамках курсов предусмотрено выполнение промежуточных заданий для закрепления теории.
Обучение проходит в смешанном формате:
-
Изучаете материалы курсов в системе дистанционного обучения (СДО). По окончании теоретической части каждого курса программы проходите тест для проверки уровня знаний.
-
Посещаете практические сессии с преподавателем, на которых дополнительно разбирается каждый этап кейс-проекта, обсуждаются вопросы, а также можно познакомиться с опытом и кейсами коллег.
Баланс теории и практики - 40\60, что позволяет сосредоточиться на практических аспектах и сформировать востребованные навыки у выпускников программы.
1. Архитектурные стили программного обеспечения: формирование базовой архитектуры
Курс комплексно обозревает предмет программной архитектуры, знакомит с основными понятиями, ходом мыслей программного архитектора и принципами архитектурного проектирования.
Вы узнаете, как практики DDD служат при проектировании архитектуры. Познакомитесь с основными архитектурными стилями: монолит и микросервисы, узнаете, какие сильные и слабые стороны есть у каждого, на каких основаниях принимается решение о выборе архитектурного стиля. Также, рассмотрите современные варианты применения монолитной архитектуры.
Далее, сделаем обзор альтернативных архитектурных стилей, таких как событийно-управляемая архитектура и архитектура хранилищ данных.
А знакомство с различными видами и позициями архитекторов, поможет спроектировать свой профессиональный путь развития.
2. Работа с требованиями при проектировании архитектуры
Узнаете о связи заинтересованных сторон, целей, требований и архитектуры в программной разработке.
Будут рассмотрены понятия функциональных и нефункциональных требований, выделены движущие силы архитектуры, определено, почему нефункциональные требования важны и как они, во многом, определяют дальнейший вид программного продукта.
Будут предложены методы формулирования функциональных и нефункциональных требований, каталоги и чек-листы нефунциональных требований. Рассмотрена связь требований и бизнес-целей, объяснена первичность и приоритетность бизнес-целей, предложена классификация бизнес-целей, призванная облегчить понимание темы техническими специалистами.
Далее, рассмотрим подходы выявления нефункциональных требований при ограниченной детализации контекста. Будут предложены методики формирования соглашений об уровне обслуживания, принципы формирования SLA. User Stories.
3. Создание устойчивых решений: принципы проектирования
В этом курсе мы будем говорить о логике и последовательности шагов при проектировании архитектуры. Рассмотрим методику проектирования, направленную на достижение атрибутов качества.
От общего к частному будут рассмотрены тактики и паттерны, направленные на достижение целевых показателей по Надежности, Производительности, Безопасности, Модифицируемости. Дополнительно будут рассмотрены лучшие практики безопасности веб-приложений.
4. Технологии интеграции и взаимодействия микросервисов
В этом курсе мы подтвердим факт того, что интеграция приложений была и остается важнейшим аспектом архитектурного проектирования, распространяясь от мира интеграции корпоративных приложений до связи микросервисов между собой.
Будут рассмотрены основные способы интеграции приложений через: Файлы, Базы данных, Удаленный вызов, Брокер, выделены сильные и слабы стороны каждого из них. Подробно рассмотрим Синхронное и Асинхронное взаимодействие. Будет произведен обзор шаблонов интеграции приложений, среди них: Очередь, Публикация-Подписка, Маршрутизация, Конечная точка, Каналы и Фильтры, принципы построения сообщений.
Изучим практические технологии интеграции: REST, gRPC, RabbitMQ, Kafka а так же технологии документирования API: Open API Spec, Async API Spec.
Дополнительно будет предложена классификация нефункциональных требований к интеграции и предоставлен шаблон описания интеграционного потока и сервиса API.
5. Технологии хранения и управления информацией
Вы познакомитесь с задачами хранения информации, подробно рассмотрите принципы проектирования реляционных баз данных. Научитесь проектировать модели данных и документировать их в виде ER диаграммы, познакомитесь с разными типами связей на примере бизнес-сущностей типа клиенты/счета/карты. Будут рассмотрены понятия нормализации, денормализации, как возможности характеристики производительности. Так же будут рассматриваться способы оптимизации производительности, такие как индексы, материализованные представления, копии на чтение.
Рассмотрим механизмы организации конкурентного доступа к информации в реляционных базах данных, продвинутые темы, такие как партиционирование и шардирование.
В курсе будет произведен обзор видов нереляционных баз данных, изложены варианты и типовые случаи их использования, рассмотрена методика выбора базы данных.
6. Системная архитектура: дизайн и оптимизация инфраструктуры
На этом курсе вы научитесь определять, как принципы развертывания приложений оказывают влияние на атрибуты качества. Сможете ставить задачи и проверять результаты работы системных инженеров, администраторов и специалистов DevOps.
Мы рассмотрим основы принципов построения сетей, архитектуры Linux, построения CI/CD Pipeline, мониторингов приложения. Познакомимся с облачными архитектурами, узнаем о возможностях и экономике облачных решений. Будут рассмотрены основные аспекты архитектуры и практического использования Kubernetes.
Дополнительно предлагается обзор практик SRE (Site Reliability Engeneer) для организации надежного отказоустойчивого решения, как с точки зрения архитектуры, так и с точки зрения практик эксплуатации.
7. Документирование архитектурных решений: BPMN, UML, нотация 4+1 и ADR
После прохождения курса вы сможете анализировать диаграммы BPMN, самостоятельно разрабатывать диаграммы C4, UML, относящиеся к архитектуре. Рассмотрим нотации 4+1, позволяющие с разных точек зрения взглянуть на архитектуру. Вы научитесь подбирать подходящие диаграммы и использовать их для коммуникации с заинтересованными сторонами в разных контекстах.
Подход ADR (Architecture Decision Records) позволит вам познакомиться с современными способами документирования эволюционной архитектуры.
8. Soft Skills
Мы не забудем и о развитии навыков управления временем, организации коммуникаций и делегирования. Вы узнаете, как принципы личной эффективности помогут высвободить время для важных архитектурных задач.
Вы сможете объединить все полученные знания и опыт в профессиональную презентацию и успешно защитить ее перед заказчиком.
Целевая аудитория
Предварительная подготовка
- уметь читать код;
- знать основы разработки: ООП;
- знать,как устроен процесс разработки ПО;
Разбираемые темы
-
1. Архитектурные стили программного обеспечения: формирование базовой архитектуры
Тема 1: Понятия архитектуры: основные термины и определения
Тема 2: Понятия архитектуры: критерии качества архитектуры
Тема 3: Роли и виды архитекторов
Тема 4: Архитектурные стили: монолит
Тема 5: Архитектурные стили: микросервисы
Тема 6: Принципы DDD
Тема 7: Clean Architecture: правила создания архитектур
Тема 8: Архитектурные стили: событийно-управляемая архитектура
Тема 9: Архитектурные стили: классический ETL/DWH/BI
Тема 10: Позиция архитектора в Agile-проекте
Итого на курс 24 часов: теория — 10 ч., практика — 14 ч.
-
2.Работа с требованиями при проектировании архитектуры
Тема 1: Управление заинтересованными сторонами (стейкхолдерами) проекта
Тема 2: Виды требований и атрибуты качества
Тема 3: Влияние нефункциональных требований на архитектуру
Тема 4: Сбор и работа с функциональными требованиями
Тема 5: Дополнительные виды требований: ограничения
Тема 6: Управление критериями надёжности (SLA, SLO, SLI)
Тема 7: Работа с архитектурными изменениями
Практика:
Проект «Mobile Street Food».
Этап работ: выделить наиболее приоритетные функциональные требования, сформулировать их в виде пользовательских историй. Сформулировать нефункциональные требования к системе в виде сценариев атрибутов качества. Составить требования к качеству системы с точки зрения масштабов и планов развития бизнеса.
Итого на курс 26 часов: теория — 10 ч., практика — 16 ч.
-
3.Создание устойчивых решений: принципы проектирования
Тема 2: Тактики и паттерны проектирования
Практика:
Проект «Mobile Street Food». Этап работ: ранжировать требования и выбрать тактики для достижения требований каждой из групп. Создать диаграмму/таблицу взаимосвязи требований.
Итого на курс 28 часов: теория — 10 ч., практика — 18 ч. -
4. Технологии интеграции и взаимодействия микросервисов
Тема 1: Задача коммуникации приложений
Тема 2: Уровни (методы) интеграционных решений
Тема 3: Шаблоны коммуникации в контексте приложений и микросервисной архитектуры: применение и практические сценарии
Тема 4: Синхронное взаимодействие и REST: основы, генерация API и управление версиями
Тема 5: REST API: рекомендации по дизайну, блокировкам, кешированию и версионированию
Тема 6: OpenAPI Spec: интеграция и API First подход в создании удобных и гибких интерфейсов
Тема 7: Архитектура сообщений: ключевые паттерны и методы разработки
Тема 8: AsyncAPI: организация асинхронного взаимодействия
Тема 9: Технологии асинхронного обмена сообщениями: RabbitMQ, Kafka в сравнении
Тема 10: Интеграция баз данных и ETL: сильные стороны, метрики и методы оптимизации
Тема 11: Capture Data Changes: анализ Debezium и его использование в различных сценариях
Тема 12: Интеграция через файлы: особенности, преимущества и правила наименования
Тема 13: Использование вспомогательных протоколов и средств интеграции API
Практика:
Этап работ: спроектировать REST API для работы с заказами с точки зрения клиентского приложения. Описать процессы взаимодействия «заказчик-исполнитель», приёма платежей, поддержки. Отобразить процессы на диаграмме потоков данных. Предложить значения для триггеров уведомлений службы
поддержки.
Итого на курс 54 часов: теория — 27 ч., практика — 27 ч.
-
5. Технологии хранения и управления информацией
Тема 1: Реляционные и нереляционные базы данных: обзор, особенности и гарантии доступности
Тема 2: Как выбрать базу данных на основании требований и контекста
Тема 3: Организация конкурентного доступа: стратегии блокировок, изоляции транзакций и обеспечение согласованности; детали реализации транзакций и блокировок: обзор PostgreSQL, MySQL и их возможностей. CAP-теорема
Тема 4: Современные тактики производительности реляционной базы данных
Тема 5: Виды нереляционных баз данных: обзор, гарантии; отличия и детали реализации нереляционных баз данных
Тема 6: Проектирование моделей данных
Практика:
Проект «Mobile Street Food». Этап работ: спроектировать модель данных системы, нарисовать ER-диаграмму. Выбрать базу данных и обосновать выбор.
Итого на курс 42 часов: теория — 20 ч., практика — 22 ч. -
6. Системная архитектура: дизайн и оптимизация инфраструктуры
Тема 1: Технологии виртуализации
Тема 2: Основы построения информационных сетей
Тема 3: Архитектура Linux
Тема 4: Основы CI/CD: построение процессов с использованием Jenkins, GitLab, Ansible
Тема 5: Мониторинг и наблюдаемость системы: паттерны, инструменты и протоколы
Тема 6: Проектирование облачной архитектуры: провайдеры, возможности, экономика
Тема 7: Проектирование облачной архитектуры: паттерны
Тема 8: Разработка 12-факторного приложения
Тема 9: Контрактные обязательства сервиса: метрики надёжности, SLA, RTO, RPO и паттерны реализации
Тема 10: Понимание Kubernetes: типы сущностей, Helm, CI/CD и балансировка трафика
Практика:
Проект «Mobile Street Food». Этап работ: выбрать технологии развертывания сквозного примера, нарисовать диаграмму развертывания, расположить программные элементы по элементам инфраструктуры. Описать метрики мониторинга, технические средства обеспечения отказоустойчивости и масштабирования. Выполнить предварительный расчёт оборудования продуктивной среды: CPU, RAM, Disk.
Итого на курс 42 часов: теория — 20 ч., практика — 22 ч.
-
7. Документирование архитектурных решений: BPMN, UML, нотация 4+1 и ADR
Тема 1: UML для моделирования и анализа систем
Тема 2: BPMN для моделирования бизнес-процессов
Тема 3: Нотация 4+1 для анализа и проектирования архитектуры
Тема 4: Нотация C4 для наглядного и эффективного проектирования архитектуры
Тема 5: Изучение подхода ADR для документации архитектурных решений
Тема 6: Язык ArchiMate
Практика:
Проект «Mobile Street Food». Этап работ: нарисовать BPMN-диаграмму для процесса заказа, оплаты и получения услуги с учётом начисления и списания баллов лояльности. Нарисовать две диаграммы последовательности (UML Sequence Diagram), отображающие работу с заказами.
Итого на курс 32 часов: теория — 10 ч., практика — 22 ч.
-
8. Soft Skills
Тема 1: Сдавать задачи в срок: принципы личной эффективности
Тема 2: Как развивать команду и выстраивать коммуникации
Итого на курс 2 часа
-
Сквозной практический проект
В ходе обучения вы будете работать над сквозным проектом «Mobile Street Food» под руководством опытного тренера. Проект предоставляет все необходимые материалы и шаблоны решений, которые станут полезными в вашей дальнейшей профессиональной деятельности. Выполняя задачи проекта, вы освоите навыки принятия решений, разработки архитектурных концепций и эффективного представления информации. Благодаря поддержке тренера, вы успешно завершите проект и получите ценные знания для уверенного старта в сфере разработки и инноваций. -
Итого 256 часов: теория – 106 ч. (41%), практика – 150 ч. (59%)