Архитектор программного обеспечения
Форма обучения: очная с применением дистанционных технологий
Объем программы: 550 ак. часов
Продолжительность обучения: 10 месяцев
Выдаваемый документ: Диплом о профессиональной переподготовке МФТИ
Старт обучения: май 2023
Стоимость обучения: 220 000 руб.

Краткое описание программы:
Чтобы получить Профессию Архитектор программного обеспечения, подтвержденную Дипломом о профессиональной переподготовке МФТИ установленного образца, необходимо пройти обучение на четырех самостоятельных курсах.
В течение обучения вы выполните несколько проектов для решения задач бизнеса, которые лягут в основу вашего портфолио. Проекты выполняются самостоятельно под руководством экспертов и преподавателей, позволяют закрепить весь спектр знаний и навыков, полученных на программе, и применить их к реальным задачам.
Успешное окончание каждого курса подтверждается Удостоверением о повышении квалификации МФТИ.

Содержание программы:
1. Курс: Continuous Integration, Continuous Delivery и Continuous Deployment
1 месяц
Понятие непрерывных практик разработки
  • CI/CD/CD: различия между практиками
  • Основные стадии непрерывной интеграции проектов
  • Автоматическое тестирование и сборка проектов
  • Понятие "агент" (runner) в непрерывных системах поставки
Инструменты Continuous Integration. Gitlab
  • Автоматическое тестирование
  • Статический анализатор кода
Continuous Delivery и Continuous Deployment: основные отличия
  • Сборка проектов в закрытом контуре
  • Сборка установочных файлов для поставки на серверное окружение
  • Возможные артефакты сборки проекта
Cпособы создания артефактов
  • Тестовые сценарии
  • Покрытие кода тестами
  • Сборка пакетов (Package Registry)
  • Сборка контейнеров (Container Registry)
Continuous Deployment
  • Способы развертываний
  • Типы окружений для развертывания - отличия между окружениями
  • Настройка развертываний, приемочное тестирование
Создание окружений
  • Review/staging/production
  • Откатка релизов и перемещение релизов между окружениями
  • Проведение видов приемочного тестирования в автоматическом режиме (проверка процедур установки ПО)
GitOps
  • Способы выкатки приложений
  • Push CD / Pull CD
  • Способы версионирования приложений: Helm
Разбираем инструменты CD в стеке Kubernetes
  • ArgoCD/FluxCD
  • Настраиваем GitOps Pipeline
2. Курс: Архитектура программного обеспечения
3 месяца
Основы архитектуры ПО. Парадигмы программирования
  • Что такое архитектура ПО и зачем она нужна
  • Парадигмы программирования: структурное, объектно-ориентированное, функциональное, логическое, декларативное
  • Архитектурные стили
Принципы проектирования ПО. Архитектурные стили
  • Принципы SOLID
  • Объектно-ориентированные паттерны: порождающие, структурные, поведенческие
  • Компоненты: связность и сочетамость
  • Архитектура: горизонтальные уровни и вертикальные срезы
  • Чистая архитектура
  • Архитектурные стили
Проектирование приложений
  • Хранение данных
  • Проектирование приложений с базами данных
  • Передача данных
  • Представление данных
  • Архитектурные паттерны MVC, MVP, MVVM
  • Архитектуры SPA-приложений
  • Обработка данных
Распределённая архитектура
  • Особенности распределённой архитектуры
  • Service-Based Architecture
  • Space-Based Architecture
  • Надежность, отказоустойчивость и безопасность систем
  • Горизонтальное масштабирование
  • EDA
  • Микросервисная архитектура
Проектирование API и безопасность
  • Протокол HTTP
  • REST
  • OpenAPI
  • API Gateway
  • OWASP
  • Аутентификация
  • SSL и TL
Микросервисная архитектура
  • Инфраструктурные паттерны
  • Коммуникационные паттерны
  • Распределительные системы
  • Децентрализованные системы
Облачная архитектура
  • Базовые компоненты и сервисы облачного решения
  • Правильная облачная архитектура: Well‑Architected Framework
  • Шаблоны облачной архитектуры: Cloud Architecture Patterns
  • Миграция приложений в облако: Cloud Adoption Framework
4. Курс: Инструменты DevOps
1 месяц
Infrastructure as Code и системы управления конфигурацией
  • Infrastructure as Code
  • Системы управления конфигурацией (Terraform, Ansible, Chef, Salt, Puppet)
Хранение данных
  • Инструменты хранения данных: S3, MinIO vs Ceph
  • Хранение и передача чувствительных данных: Vault
Микросервисы, балансировка и кэширование
  • балансировка и кэширование
  • микросервисы
  • стратегии поставки
5. Курс: Kubernetes
4 месяца
  • Почему Kubernetes, монолитная vs микросервисная архитектуры, виртуальная машина vs контейнер
  • Docker, Kernel modules for isolation, best vs bad practices Docker-compose, best vs bad practices Введение в Kubernetes
  • Kubernetes Control-Plane
  • Основные сущности Kubernetes
  • Хранение больших данных в Kubernetes
  • Kubernetes: сети и сервера
  • Продвинутые сущности Kubernetes
  • Шаблонизаторы Kubernetes: Helm
  • Kubernetes: мониторинг (Prometheus/VictoriaMetrics & Grafana)
  • Kubernetes: оповещения (mail/chats)
  • Kubernetes: логирование (EF/LK)
  • Kubernetes и GitLab CI/CD
  • Kubernetes и Harbor as Docker Registry

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

  • Те, кто начинает карьеру в ИТ
    Возможность изучить все необходимое для начинающего разработчика: алгоритмы, ООП, основы рабочего кода языка Python. Вы заложите крепкий фундамент для дальнейшего развития в сфере ИТ.
  • Начинающие ИТ-специалисты
    Если у вас уже есть базовые знания, наш курс поможет структурировать их и получить комплексный практический опыт на реальных примерах.
  • Практикующие ИТ-специалисты
    Тем, кто уже является действующим разработчиком, и хочет изучить новый язык программирования.
На программе вы:
  1. Освоите новую востребованную профессию
  2. Станете крепким junior-разработчиком со знанием языка программирования Python
На всех курсах вы получите:
  1. Постоянное живое общение с преподавателем МФТИ на вебинарах и в телеграмм-чате группы
  2. Ответы на все свои вопросы по ходу курса от преподавателя
  3. Обратную связь на интересные домашние задания