Переход на микросервисы¶
Зачем переходить с монолита на что-то другое¶
Как известно, микросервисная архитектура обладает рядом преимуществ. Однако переход на микросервисы потребует ресурсов. В итоге такой переход будет одобрен, только если это поможет решить существенные бизнес-проблемы, например:
- Медленная доставка. В приложении сложно разобраться, затрудняются его обслуживание и тестирование, что снижает продуктивность разработчиков. В итоге организация не модет эффективно функционировать и может уступить конкурентам.
- Обновления с ошибками. Из-за плохой тестируемости новые выпуски ПО содержат ошибки, что может привести к оттоку клиентов.
- Плохая масштабируемость. Так как в монолитном приложении есть модули с разными требованиями к ресурсам, в конечном итоге это приводит к удорожанию или даже невозможности масштабирования, что приводит к невозможности удовлетворить будущие или даже текущие потребности бизнеса.
Важно убедиться, что именно незрелая архитектура, а не плохая организация процесса разработки приводит к вышеописанным проблемам.
“Удушение” монолита¶
Преобразование монолита в микросервисы — это процесс модернизации ПО. Самый важный урок состоит в том, что не стоит переписывать архитектуру с нуля.
Вместо того, чтобы начинать с чистого листа, нужно постепенно трансформировать монолит, построив новое удушающее приложение. Причем, может наступить момент, когда разбиение монолита перестанет быть самой важной задачей. Если при этом он перестает мешать текущей разработке, возможно, не будет нужным продолжать этот процесс.
Демонстрируйте пользу от перехода как можно раньше и чаще.¶
Важное преимущество постепенного перехода в том, что сразу видны плоды этой работы. Начать миграцию можно с самых значимых участков приложения. Выделив какой-то участок в отдельный сервис, можно прикрепить к нему выделенную команду, которая будет действовать независимо от коллег, что повысит скорость разработки и раньше демонстрировать результаты.
Минимизация изменений, вносимых в монолит¶
Естественно, в процессе миграции необходимо будет что-то в монолите менять, например, необходимо модифицировать монолитный код для участия в повествованиях. Однако, существуют стратегии, которые позволяют уменьшить масштаб необходимых изменений.
Инфраструктура развертывания: не всё сразу¶
Единственное, безчего невозможно обойтись — процесс развертывания с автоматическим тестированием. Остальные решения, требующие серьезных инвестиций, возможно, следует отложить до накопления реального опыта работы с инфраструктурой.
Дата создания : 4 августа 2022 г.