Архитектура информационных систем — это совокупность подходов, паттернов и практик описывающих связь между компонентами информационной системы и их поведение на реакцию внешней среды.
Зачем нужна архитектура информационных систем?
Архитектура информационных систем — это стратегический фундамент, который превращает хаотичный набор технологий в эффективную, предсказуемую и эволюционирующую систему, соответствующую бизнес-целям.
Аналогии из других отраслей для понимания
| Аналогия | Без архитектуры | С архитектурой |
|---|---|---|
| Строительство | Куча кирпичей и досок из которых строители возводят дом каждый согласно своему собственному видению | Проект дома с чертежами, расчетами и планом которому четко следуют строители |
| Оркестр | Музыканты играют что хотят, адская смесь звуков | Дирижер, партитура, слаженное звучание единого произведения |
| Город | Случайные постройки и последующие проблемы с инфраструктурой | Генеральный план зонирования и формирования инфраструктуры |
Типичные проблемы которые решает архитектура информационных систем:
- Технический долг и дороговизна внесения изменений
Большое количество кода на разных языках программирования которое тяжело развивать и дорого поддерживать.
Система работает, но любое изменение стоит дорого и требует переделки 5 других функций.
Архитектурное решение: жестко детерминированный тех. стек и подходы к разработке - Проблемы с масштабированием.
Монолит падает под возросшей пользовательской нагрузкой. Команда не спит неделями.
Архитектурное решение: запланированное горизонтальное масштабирование, кэширование, очереди. - Избыточность интеграций
Построение прямых интеграций точка-точка между системами приводит к избыточному количеству данных отравляемых между системами, техническим сложностям с сопровождением интеграций, невозможностью оперативно выявить первопричин проблем, удорожанию стоимости сопровождения систем.
Архитектурное решение: внедрение ESB (Enterprise Server Bus), очередей/брокеров сообщений (Kafka/Rabbit), интеграционных платформ позволит упорядочить и централизовать управление интеграциями.
Бизнес-ценность архитектуры информационных систем
- Снижение TCO (Total Cost of Ownership)
Разработка идет согласно архитектурной концепции на ранее определенном технологическом стеке в соответствие с утвержденным подходом к разработке; - Скорость выхода на рынок (Time-to-Market)
Увеличение скорости выхода на рынок за счет переиспользования существующих компонентов и сервисов имеющихся в ИТ ландшафте компании; - Снижение бизнес-рисков
Проектирование и внедрение информационных систем соответсвующих архитектурным требованиям воплощенным в конкретных паттернах архитектуры (надежность, масштабируемость) позволит существенно сократить сбои в работе систем критичных для потребителей.
Архитектурные паттерны: систематизированный справочник
Ключевые требования при проектировании информационных систем:
- Масштабируемость (Scale): способность системы обрабатывать рост нагрузки
- Надежность (Reliability): устойчивость к сбоям и ошибкам
- Удобство сопровождения (Maintenance): простота внесения изменений и поддержки
- Стоимость владения (TCO): эффективность с точки зрения расходов
Паттерны категоризированы в соответствии с вышеуказанными требованиями