Найти в Дзене
155 подписчиков

Анти-паттерн "Дымоходная система" (Stovepipe System)

Часто так называют легаси-системы, при этом подразумевая безнадежность дальнейшего развития и вложений в неё. При этом, в общем случае, рефакторинг и обогащение функционалом такой системы, может привести к положительному эффекту, с точки зрения ТТМ и стоимости эксплуатации.

Характеризуется общей неструктурностью архитектуры системы, как на уровне выбора технологий для каждого отдельного сервиса, так и интеграционных паттернов, выбора технологий и принципов разработки API.
Как это выглядит в общем случае: первоначально был реализован или взят какой-то функционал и в дальнейшем обогащался новыми модулями или микро-сервисами. При этом, общих принципов разработки или хотя бы базовых принципов работы с архитектурой командой не фиксируется. И получается, что сервисы реализованы по разным технологиям, в одном сервисе могут сочетаться принципы реактивного и асинхронного программирования, внутри системы могут применяться разные языки, разные подходы к организации API и так далее.
Кроме того, когда вижу подобные системы, обычно к этому присовокупляется еще и история с отсутствием внятной документации.
Это ведет к высокой хрупкости в реализации системы, изменения в ней, могут привести к неработоспособности каких-либо её функций или вообще всей ИС. При этом, новые интеграции, интеграции внутри системы всегда сопровождаются болью, связанной с сложностью внесения изменений.
Но, как писал в начале, рефакторинг рулит и не только кода, но и подходов. Подходов в первую очередь.
Был у меня случай, когда в одном из моих мест работы, команда системы, которая приносила более 60 миллиардов в год, просто встала и ушла. И выяснилось, что вся документация была у них в Jira. более 65 микросервисов, написанные каждый как бог на душу положит, свой гео-прокси и так далее. Производство просто остановилось. Но за счет подхода к формализации задач и описанию системной архитектуры, с параллельным пересбором команды, позволило восстановить поставку за два месяца, а еще через два месяца повысить перформанс относительно старой команды в х3 раза.
Такие дела.
1 минута