Банковский сектор

От монолита к микросервисам

Переход крупного банка от монолитного приложения к управляемым микросервисам

Задача

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

Что сделано

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

Результат

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

Ситуация до начала работ

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

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

Что мы сделали

Провели поэтапную трансформацию архитектуры и процессов разработки банка:

  • Разбили монолитное приложение на независимые микросервисы - теперь каждую часть системы можно развивать, тестировать и обновлять отдельно, не затрагивая остальные;
  • Перенесли микросервисы в современную контейнерную платформу для управления приложениями;
  • Автоматизировали процесс сборки и доставки обновлений - убрали ручной запуск скриптов администратором;
  • Организовали пять независимых контуров - для разработки и нескольких последовательных уровней тестирования, вплоть до рабочей системы - чтобы каждое изменение проходило проверку перед тем, как дойти до пользователей;
  • Выстроили полностью автоматизированный процесс передачи релиза от разработчика к конечному пользователю, где каждый шаг фиксируется в системе управления задачами и виден всем участникам процесса.

Результат

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

Разберём вашу текущую ситуацию и определим следующий практический шаг.

Обсудить задачу