Некоторые ключевые аспекты архитектуры системы, которые нужно рассматривать при проектировании:
- Схематичное описание контекста проектируемой системы, в том числе акторов (пользователей и внешних сервисов), взаимодействующих с системой. 1
- Архитектурная категория распределённой системы (например, клиент-серверная монолитная или микросервисная). 1
- Структура элементов системы. 1 Важно показать не только непосредственный набор компонентов системы, но и «вспомогательные» элементы, такие как внешние сервисы или подключаемые плагины. 1
- Взаимодействие элементов архитектуры между собой и реакции в ответ на внешние события. 1 Обычно это визуализируется в виде UML-диаграммы последовательности. 1
- Протоколы сетевого и межсистемного взаимодействия. 1
- Описание форматов и схем данных, используемых в проектируемой системе. 1
- Перечень используемых технологий, в том числе хранилища данных, языки программирования, фреймворки и библиотеки для разработки ПО. 1
- Физические схемы моделей баз данных для выбранных СУБД, схемы сообщений, ограничения и подходящие конфигурации настройки компонентов системы. 1
- Порядок реализации спроектированной архитектуры, основанный на технических зависимостях одних компонентов от других. 1
Архитектура напрямую влияет на производительность, масштабируемость, надёжность и безопасность системы. 4