Архитектор ПО. Путь к мастерству в проектировании систем
Курс Архитектор ПО. Путь к мастерству в проектировании систем подробно рассказывает о работе программного архитектора. Начать обучение можно с 5 бесплатных уроков*, а затем перейти к полной версии программы. Курс учит планировать будущее развитие сложных систем с нуля: выбирать инструменты и средства моделирования архитектуры, формат документирования архитектурных решений, выбирать архитектурный стиль под конкретную бизнес-задачу, планировать будущее масштабирование, гибкость. Знакомит с лучшими практиками построения архитектуры ПО.
256 ак.ч.
Онлайн
ARC-PRG-001
Архитектор ПО. Путь к мастерству в проектировании систем
Записаться на курс
Длительность
256 ак.ч.
Локация
Онлайн
Код
ARC-PRG-001
Расписание и цены
120 000 руб.
* Для физических лиц действует скидка 10% Закажите корпоративное обучение с учетом ваших потребностей
Архитектор ПО. Путь к мастерству в проектировании систем
Записаться на курс
Длительность
256 ак.ч.
Локация
Онлайн
Код
ARC-PRG-001
Расписание и цены
120 000 руб.
* Для физических лиц действует скидка 10% Закажите корпоративное обучение с учетом ваших потребностей

Описание

Программа обучения разбита на 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 Decesion Records) позволит вам познакомиться с современными способами документирования эволюционной архитектуры.


8. Soft Skills

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

Вы сможете объединить все полученные знания и опыт в профессиональную презентацию и успешно защитить ее перед заказчиком.


Целевая аудитория

middle- и senior- разработчики; системные и бизнес аналитики; архитекторы ПО, системные архитекторы; тестировщики, менеджеры с техническим бэкграундом.

Предварительная подготовка

  • Знать минимум один язык программирования;
  • уметь писать и читать код;
  • знать основы разработки: ООП, бэкенд, фронт, моб, бд.;
  • как устроен процесс разработки ПО;
  • паттерны проектирования.

Разбираемые темы

  • 1. Архитектурные стили программного обеспечения

    • Как отличить хорошую архитектуру от плохой
    • Как выбрать направление: роли и виды архитекторов
    • Монолит и микросервисы: какой архитектурный стиль выбрать
    • Принципы предметно-ориентированного проектирования (DDD)
    • Clean Architecture: правила создания архитектур
    • Архитектурные стили: событийно-управляемая архитектура
    • Архитектурные стили: классический ETL/DWH/BI
    • Позиция архитектора в Agile проекте

    Итого 24 часа: теория – 10 ч. (42%), практика – 14 ч. (58%)
  • 2.Работа с требованиями при проектировании архитектуры

    • Виды требований и атрибуты качества
    • Управление заинтересованными сторонами (стейкхолдерами) проекта
    • Как работать с бизнес-требованиями
    • Сбор и работа с функциональными требованиями
    • Влияние нефункциональных требований на архитектуру
    • Классификация нефункциональных требований
    • Как определить и улучшить критерии качества требований
    • Как управлять критериями надежности сервисов (SLA, SLO, SLI)
    • Эффективные стратегии обработки изменений в архитектуре ПО

    Итого 23 часа: теория – 9 ч. (39%), практика – 14 ч. (61%)
  • 3.Создание устойчивых решений: принципы проектирования

    • Проектирование от атрибутов качества. Связь тактик, паттернов, атрибутов качества и архитектурных стилей
    • Применение архитектурных паттернов: от базовых до продвинутых стратегий проектирования
    • Максимизация производительности: тактики и паттерны
    • Стратегии надёжности ПО: ключевые тактики и паттерны для безотказной работы
    • Обеспечение модифицируемости: тактики и паттерны для гибкости программных решений
    • Основы безопасности системы: тактики и паттерны обеспечения безопасности

    Итого 23 часа: теория – 9 ч. (39%), практика – 14 ч. (61%)
  • 4. Технологии интеграции и взаимодействия микросервисов

    • Выбор между синхронной и асинхронной коммуникацией: анализ преимуществ и влияние на надежность системы
    • Шаблоны коммуникации в контексте приложений и микросервисной архитектуры: применение и практические сценарии
    • Синхронное взаимодействие и REST: основы, генерация API и управление версиями
    • REST API: рекомендации по дизайну, блокировкам, кешированию и версионированию
    • OpenAPI Spec: интеграция и API First подход в создании удобных и гибких интерфейсов
    • RPC: изучение и применение gRPC в современных приложениях
    • Capture Data Changes: анализ Debezium и его использование в различных сценариях
    • AsyncAPI и принципы асинхронного взаимодействия: организация топиков и безопасность сообщений
    • Архитектура сообщений: ключевые паттерны и методы разработки
    • AsyncAPI: организация асинхронного взаимодействия
    • Технологии асинхронного обмена сообщениями: RabbitMQ, ActiveMQ, Kafka в сравнении
    • Интеграция баз данных и ETL: сильные стороны, метрики и методы оптимизации
    • Интеграция через файлы: особенности, преимущества и правила наименования
    • MQTT и WebSocket: дополнительные протоколы интеграции и их применение

    Итого 54 часа: теория – 27 ч. (50%), практика – 27 ч. (50%)
  • 5. Технологии хранения и управления информацией

    • Реляционные и нереляционные базы данных: обзор, особенности и гарантии доступности
    • Как выбрать базу данных на основании требований и контекста
    • Организация конкурентного доступа: стратегии блокировок, изоляции транзакций и обеспечение согласованности
    • Современные тактики производительности реляционной базы данных
    • Детали реализации транзакций и блокировок: обзор Postgresql, MySQL, Oracle и их возможностей
    • Виды нереляционных баз данных: обзор, гарантии и CAP-теорема
    • Отличия и детали реализации нереляционных баз данных
    • Тактики производительности реляционной БД
    • Проектирование моделей данных

    Итого 42 часа: теория – 20 ч. (48%), практика – 22 ч. (52%)
  • 6. Системная архитектура: дизайн и оптимизация инфраструктуры

    • Технологии виртуализации
    • Основы построения информационных сетей
    • Архитектура Linux
    • Основы CI/CD: построение процессов с использованием Jenkins, GitLab, Ansible
    • Мониторинг и наблюдаемость системы: паттерны, инструменты и протоколы
    • Проектирование облачной архитектуры: провайдеры, возможности, экономика
    • Проектирование облачной архитектуры: паттерны
    • Разработка 12-Факторного приложения
    • Контрактные обязательства сервиса: метрики надежности, SLA, RTO, RPO и паттерны реализации
    • Понимание Kubernetes: типы сущностей, Helm, CI/CD и балансировка трафика

    Итого 42 часа: теория – 20 ч. (48%), практика – 22 ч. (52%)
  • 7. Документирование архитектурных решений: BPMN, UML, нотация 4+1 и ADR

    • Навык использования UML для моделирования и анализа систем
    • Овладение BPMN: моделирование бизнес-процессов для эффективного управления
    • Освоение нотации 4+1 для анализа и проектирования архитектуры
    • Погружение в методику C4 для наглядного и эффективного проектирования архитектуры
    • Изучение подхода ADR для документации архитектурных решений

    Итого 32 часа: теория – 10 ч. (31%), практика – 22 ч. (69%)
  • 8. Soft Skills

    • Принципы личной эффективности: Тайм менеджмент, организация коммуникаций, делегирование
    • Принципы личной эффективности: Делегирование, Наставничество, Ведение переговоров с заинтересованными лицами
    • Навыки презентации

    Итого 16 часов: теория – 4 ч. (25%), практика – 12 ч. (75%)
  • Итого 256 часов: теория – 106 ч. (41%), практика – 150 ч. (59%)

  • Развернуть программу

Примечание

*Мы рады представить вам уникальную возможность получить бесплатный доступ к первым 5 урокам программы Архитектор ПО. Путь к мастерству в проектировании систем , которая стартует в апреле 2024 года.Доступ действителен в течение 3 дней с момента регистрации.
Раcписание курсов
Вид:
Регистрируйтесь на следующий курс
Предварительная регистрация гарантирует участие в обучении. Мы обязательно оповестим вас, когда курс будет запланирован
+
Ваши преимущества
Экспертность
Тренеры-эксперты из реальных проектов крупнейших компаний, лидеров в своей отрасли
Живое обучение
“Живая” коммуникация с тренером даже в онлайн-формате
Практика
Максимально наполненные практикой занятия, работа в группах, выполнение домашних заданий
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.