Репозиторий содержит материалы по курсу Архитектура программных систем
- Общие понятия архитектуры, термины, атрибуты качества программных систем. Процесс проектирования: сверху вниз и снизу вверх
- Виды архитектур по организации модулей: монолитные (Layered architecture, Pipeline architecture, Microkernel architecture) и распределённые (Service-based architecture, Event-driven architecture, Space-based architecture, Service-oriented architecture, Microservices architecture).
- Архитектурное описание. Вилы архитектурных представлений (Модули, Компоненты и связи, Размещение). ADR.
- Нотации моделирования: C4
- Architecture as a code: Structurizr DSL
Инструкция по настройке Structurizr
- Принципы SOA. Архитектурный стиль REST. Модель зрелости Ричардсона. Документирования API - OpenAPI
- Докер. Namespaces, CGroups, UnionFS. Хранение данных в Docker – Volumes. Виды сетей. Основные команды. Dockerfile. Docker-compose.
Для выполнения работы мы будем использовать Devcontainer
- Виды индексов в реляционных СУБД. Индексы на B-деревьях. Кластерные и не кластерные индексы. Анализ запросов к данным в SQL. Партиционирование.
- Шардирование. Виды шардирования. Scatter and gatherer. Паттерны (Умный клиент, Routing-proxy, Routing-координатор). Решардинг. Рандеву-шардирование. Плюсы и минусы шардирования.
- Типы сбоев и отказов. Расчет показателей доступности систем. Тактики обнаружения сбоя.Тактики восстановления после сбоя. Тактики предотвращения сбоя (Graceful degradation, прекращение обслуживания, игнорирование ошибки).
- Репликация. Виды репликации по типу лидера. ACID Транзакции. Уровни изоляции транзакций.
- Единицы измерения производительности. Виды масштабирования. Управление потреблением ресурсов.
- Виды распределенных кешей (distributed, replicated, sidecar cache). Предзагрузка кеша. Обновление данных кеша. Шаблон сквозное чтение и сквозная запись. Шаблон отложенная запись.
- Понятие событийно-ориентированной архитектуры. Свойства брокеров сообщений. Паттерн CQRS. Применение очередей: buffer dispatcher, transport, balancer.
- Понятие событийно-ориентированной архитектуры. Брокеры сообщений: RabbitMQ и Apache Kafka – особенности и свойства.