Основные понятия (fundamental concepts) или существенные свойства (properties) системы в окружающей среде и связанных процессах жизненного цикла системы, воплощенные в ее элементах, отношениях и конкретных принципах ее разработки, эксплуатации, сопровождения, модернизации и развития
Смысл определения архитектуры
Раскроем части определения отдельно, чтобы придать им прикладной смысл.
«Основные понятия или существенные свойства системы в окружающей среде и связанных процессах жизненного цикла системы, воплощенные в ее элементах, отношениях и конкретных принципах ее разработки, эксплуатации, сопровождения, модернизации и развития»
Это наиболее важные характеристики системы, которые определяют, что она собой представляет и как устроена.
К ним могут относиться:
- Назначение системы
- Ключевые функции
- Производительность
- Надежность
- Безопасность
- Масштабируемости
- Удобство изменения
- Допустимая стоимость эксплуатации
Пример: для банковской системы существенными свойствами могут быть безопасность операций, доступность 24/7 и способность обрабатывать большое число транзакций.
«Основные понятия или существенные свойства системы в окружающей среде и связанных процессах жизненного цикла системы, воплощенные в ее элементах, отношениях и конкретных принципах ее разработки, эксплуатации, сопровождения, модернизации и развития»
Система существует не изолированно. Она работает в определенном окружении и взаимодействует с ним.
Окружающая среда включает:
- Пользователей
- Другие информационные системы
- Оборудование и инфраструктуру
- Законодательство и отраслевые нормы
- Партнеров и поставщиков
- Бизнес-процессы организации
- Рыночные и технологические ограничения
Пример: интернет-магазин взаимодействует с покупателями, платёжными сервисами, службами доставки, системой бухгалтерского учёта и требованиями законодательства о персональных данных.
«Основные понятия или существенные свойства системы в окружающей среде и связанных процессах жизненного цикла системы, воплощенные в ее элементах, отношениях и конкретных принципах ее разработки, эксплуатации, сопровождения, модернизации и развития»
Архитектура касается не только создания системы, но и всего времени ее жизни:
- Возникновение бизнес-потребности
- Проектирование
- Разработка
- Тестирование
- Внедрение
- Эксплуатация
- Сопровождение
- Модернизация
- Вывод из эксплуатации
То есть важно не только то, как систему построить, но и то, насколько удобно ее поддерживать, развивать и в будущем заменять.
«Основные понятия или существенные свойства системы в окружающей среде и связанных процессах жизненного цикла системы, воплощенные в ее элементах, отношениях и конкретных принципах ее разработки, эксплуатации, сопровождения, модернизации и развития»
Существенные свойства системы реализуются через конкретные составляющие – элементы.
Элементами могут быть:
- Программные модули
- Базы данных
- Серверы
- Мобильные и веб-приложения
- Сотрудники и организационные роли
- Бизнес-процессы
- Внешние сервисы
- Документы и регламенты
«Основные понятия или существенные свойства системы в окружающей среде и связанных процессах жизненного цикла системы, воплощенные в ее элементах, отношениях и конкретных принципах ее разработки, эксплуатации, сопровождения, модернизации и развития»
Важно не только наличие элементов, но и то, как они связаны и взаимодействуют.
Отношения могут определять:
- Кто кому передает данные
- Какой модуль вызывает другой модуль
- Где хранится информация
- Кто отвечает за конкретный процесс
- Какие элементы зависят друг от друга
- Что произойдет при отказе одного из компонентов
Даже если каждый элемент работает хорошо сам по себе, неверно построенные связи могут сделать всю систему медленной, ненадежной или слишком сложной.
«Основные понятия или существенные свойства системы в окружающей среде и связанных процессах жизненного цикла системы, воплощенные в ее элементах, отношениях и конкретных принципах ее разработки, эксплуатации, сопровождения, модернизации и развития»
Принципы – это устойчивые правила, на основании которых принимаются решения о системе.
Например:
- Данные о клиентах должны храниться централизованно
- Каждый сервис должен отвечать только за одну бизнес-функцию
- Критические компоненты должны иметь резервирование
- Внешние системы должны подключаться только через стандартизированные интерфейсы
- Изменения должны сохранять обратную совместимость
- Приоритет следует отдавать готовым решениям, а не собственной разработке
Принципы обеспечивают последовательность в принятии решений. Без них разные команды могут развивать систему в противоречащих друг другу направлениях.
«Основные понятия или существенные свойства системы в окружающей среде и связанных процессах жизненного цикла системы, воплощенные в ее элементах, отношениях и конкретных принципах ее разработки, эксплуатации, сопровождения, модернизации и развития»
Архитектура определяет, как создавать систему:
- На какие части ее разделять
- Какие технологии использовать
- Как организовать данные
- Как интегрировать компоненты
- Как тестировать изменения
- Какие ограничения должны соблюдать разработчики
«Основные понятия или существенные свойства системы в окружающей среде и связанных процессах жизненного цикла системы, воплощенные в ее элементах, отношениях и конкретных принципах ее разработки, эксплуатации, сопровождения, модернизации и развития»
Архитектура учитывает, как система будет работать после запуска:
- Где она размещается
- Как контролируется ее состояние
- Как обеспечивается доступность
- Как обрабатываются сбои
- Как выполняется резервное копирование
- Как система выдерживает рост нагрузки
«Основные понятия или существенные свойства системы в окружающей среде и связанных процессах жизненного цикла системы, воплощенные в ее элементах, отношениях и конкретных принципах ее разработки, эксплуатации, сопровождения, модернизации и развития»
Сопровождение – это поддержание системы в рабочем состоянии:
- Исправление ошибок
- Установка обновлений
- Мониторинг
- Расследование инцидентов
- Адаптация к небольшим изменениям
Хорошая архитектура делает эти работы понятными и предсказуемыми.
«Основные понятия или существенные свойства системы в окружающей среде и связанных процессах жизненного цикла системы, воплощенные в ее элементах, отношениях и конкретных принципах ее разработки, эксплуатации, сопровождения, модернизации и развития»
Система со временем должна меняться:
- Получать новые функции
- Выдерживать увеличение числа пользователей
- Подключаться к новым сервисам
- Переходить на новые технологии
- Соответствовать изменившемуся законодательству
- Поддерживать новые бизнес-модели
Архитектура должна позволять делать эти изменения возможными в принципе, экономически целесообразными и в идеале – простыми.
Простым языком, архитектура – это ключевые решения о том, как устроить систему сегодня, чтобы она выполняла задачи бизнеса, надежно работала и не стала слишком дорогой или невозможной для изменения завтра.