Найти в Дзене

Архитектура как ИТ-искусство. Монолиты или микросервисы?

Как ИТ-интегратору сделать правильный выбор между двумя архитектурами, какие факторы должны определять его и нужно ли к выбору архитектуры внедряемого решения привлекать и заказчика? Ответы на эти вопросы пытались найти участники круглого стола, проведенного порталом IT World.

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

В самом начале дискуссии спикеры круглого стола высказались в том отношении, что строгой альтернативы эти две архитектуры не представляют и противопоставление этих подходов, как и перечисление их безусловных плюсов и минусов, не очень корректно и даже сомнительно. К тому же выбор далеко не всегда должен быть настолько однозначным. Более оптимальным вариантом назван гибридный подход, в практике которого комбинирование обеих архитектур для решения той или иной задачи, поставленной бизнес-заказчиком.

Авенир ВОРОНОВ (CTO «Корус Консалтинг»)

«Помимо монолитной и микросервисной, существует множество других архитектур и подходов к разработке. Их можно комбинировать. Есть так называемые микромонолиты, есть гига-микросервисы.
Некорректно утверждение, что только лишь процессы разработки микросервисов соответствуют принципам DevOps. Это вовсе не означает, что при разработке «монолитов» следование принципам DevOps отсутствует, гетерогенная среда вполне может присутствовать и в монолитной архитектуре. Учитывая все это, отдавать предпочтение какой-то одной структуре, как мне кажется, не стоит».

В консервативных отраслях экономики гибридный подход к построению архитектуры практикуется повсеместно. Реализовать микросервисы удается и при наличии стандартного корпоративного решения, например, если у заказчика возникают какие-либо нестандартные, эксклюзивные требования. В банковском секторе, говорит Тарас СОРОКА, управляющий директор Уральского банка реконструкции и развития, основополагающие ИТ-системы банков – core banking – в большинстве случаев реализованы на монолитной архитектуре. Но в практике работы спикера есть кейс, когда перевод на микросервисы такого важного набора банковских процессов, как кредитный конвейер, позволил повысить производительность и управляемость последних.

Плюсы и минусы Иллюстрация: Mikko Lemola/shutterstock.com

-3

Микросервис, монолит – нельзя утверждать, что одно лучше другого. Очень многое зависит от нюансов работы бизнес-заказчика, компании, а главное – от задачи, которую необходимо решить. У каждой из обсуждаемых сегодня архитектур есть безусловные преимущества, говорили участники дискуссии.

Важнейшие плюсы микросервисной архитектуры – возможность быстро и гибко адаптироваться под требования бизнеса, высокая степень масштабируемости и отказоустойчивости, использование передовых технологий, а также возможность межмодульного рефакторинга кода. А главный недостаток в том, что в современном мире для большей части бизнеса микросервисная архитектура избыточна. Кроме того, она требует от команды новых компетенций, а от бизнеса – существенных дополнительных издержек на содержание этой команды специалистов, развитие штата DevOps-инженеров, расширенный мониторинг, налаживание процесса коммуникаций между разными командами.

Для действительно эффективной работы микросервисов необходимо как минимум всё перечисленное. Микросервисы хороши там, где есть требования по быстрому масштабированию и распределенной нагрузке и при этом есть возможность привлекать экспертизу высокого уровня, причем не только в разработке, но и в DevOps, и в администрировании. В других случаях лучше использовать монолит: можно купить готовое решение, стоимость владения монолитом ниже. А для разработки ИТ-сервисов, нагруженных большим количеством пользователей (как правило, для бизнеса B2C), оптимальнее использовать микросервисную архитектуру, более гибкую и легко масштабируемую.

Антон КУЗНЕЦОВ («Динекс Русь»)

«Важны такие факторы,...

Подробнее на it-world.ru