Типовые направления для анализа эволюционности:
- Техника/инфраструктура
- Данные
- Безопасность
- Интеграции/системы
- Техника/инфраструктура
- Данные
- Безопасность
- Интеграции/системы
Закон Мелвина Конвея: "Организации, которые проектируют системы, склонны воспроизводить архитектуру которая воспроизводит организационную структуру самой организации"
Фитнес функции
Название немного вводит в заблуждение. На самом деле фитнес функция - это не обязательно функция реализованная на ЯП. Это любая оценка, которая позволяет сделать вывод о достижении или приближении к цели проектирования.
Название немного вводит в заблуждение. На самом деле фитнес функция - это не обязательно функция реализованная на ЯП. Это любая оценка, которая позволяет сделать вывод о достижении или приближении к цели проектирования.
Целью проектирования могут выступать любые требования, которые были получены как от заказчика, так и те которые являются следствием проектирования.
Мы можем сделать финтес функцию в виде автоматизированного теста, а можем в виде инструкции для человека, который будет вручную проверять наличие необходимых свойств у системы.
Например, если мы определим требование производительности для выполнения набора операций, скажем 100мс на операцию, то мы можем написать небольшую функцию или программу, которая будет контролировать данный показатель. Это и будет фитнес функция.
Фитнес фукнции могут быть следующих видов:
- атомарные/целостные
- непрерываные/прерывающиеся
- статические/динамисеские
- автоматизированные/ручные
- временные
- атомарные/целостные
- непрерываные/прерывающиеся
- статические/динамисеские
- автоматизированные/ручные
- временные
Инкрементальные изменения
Это основной механизм эволюционной архитектуры. Идея в том, чтобы двигаться вперед небольшими шагами, заменяя устаревшие компоненты более новыми аналогами. При этом в какой-то момент времени могут быть доступны и старые и новые компоненты.
Это основной механизм эволюционной архитектуры. Идея в том, чтобы двигаться вперед небольшими шагами, заменяя устаревшие компоненты более новыми аналогами. При этом в какой-то момент времени могут быть доступны и старые и новые компоненты.
Модульность
В основе модульности лежит идея слабого зацепления и автономность модулей.
Иерархия стандартная: модуль - компонент - код
В основе модульности лежит идея слабого зацепления и автономность модулей.
Иерархия стандартная: модуль - компонент - код
Workflow
- инкрементальные изменения
- построение и поддержание фитнес функций
- поддержание модульности
- инкрементальные изменения
- построение и поддержание фитнес функций
- поддержание модульности
Все остальные архитектуры могут развиваться эволюционнно. В книге есть пояснения относительно следующих архитектур:
Монолитные
- цельный монолит
- многослойный монолит
- модульный монолит
- микроядерный монолит
Event Driven
- брокеры
- медиаторы
Сервис ориентированные архитектуры
- ESB driven SOA
- микросервисы
Серверлес архитектура
Монолитные
- цельный монолит
- многослойный монолит
- модульный монолит
- микроядерный монолит
Event Driven
- брокеры
- медиаторы
Сервис ориентированные архитектуры
- ESB driven SOA
- микросервисы
Серверлес архитектура
Алгоритм построения эволюционной архитектуры
- определить требования, которые защищены эволюцией
- определить фитнес функции (оценки качества)
- настроить непрерывное развертывание с учетом автоматизации фитнес функций (конвейр развертывания)
- движение вперед по workflow описанному выше
- определить требования, которые защищены эволюцией
- определить фитнес функции (оценки качества)
- настроить непрерывное развертывание с учетом автоматизации фитнес функций (конвейр развертывания)
- движение вперед по workflow описанному выше