Практический курс по основам архитектуры ПО. Тренинг предлагает глубокое понимание системной архитектуры и её роли в разработке ПО. Участники освоят выявление требований, проектирование, документирование и анализ архитектуры, а также научатся применять эти практики в реальных проектах. Курс охватывает весь жизненный цикл разработки ПО, включая взаимодействие с заинтересованными сторонами и использование гибких методологий. Основные темы: архитектурные стили, атрибуты качества, 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 и другие).
Предмет изучения: Astra Linux 1.8. Уровень сложности курса: средний. Версия программы от 07.11.2024 г.
Курс "AL-1804 Сетевое администрирование ОС Astra Linux Special Edition 1.8" вы можете пройти как в очном, так и в онлайн формате. В онлайн формате вы также сможете общаться с преподавателем и другими слушателями, задавать вопросы и комментировать ответы, а записи занятий доступны в любое время суток, вне зависимости от погодных условий, что позволит вам учиться в любом удобном для вас месте.
Вы узнаете, как разрабатывать гибкие и эффективные системы, соответствующие требованиям бизнеса. В курсе рассматриваются основные проблемы, связанные с реализацией микросервисной архитектуры, а также стратегии, механизмы, паттерны и инструменты для их решения. Практические упражнения позволят вам приобрести навык самостоятельного проектирования МСА систем. Курс поможет вам принимать обоснованное решение о применимости МСА в зависимости от потребностей бизнеса и возможностей команды.
Понятия монолита, 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). Паттерны удушения. Связь микросервиса с монолитом. Миграция базы данных.