Когда монолит распадётся на много маленьких независимых микросистем, то встанет вопрос: как организовать людей вокруг этого «роя»? (рис. 53).
Рис. 53. Распределение людей по микросервисам
Общее решение звучит так: создавайте кросс-функциональные команды (build-and-run team) под каждый микросервис. Правда, здесь есть нюансы. До старта работ обсудите и выберите, какая оргструктура подойдёт под ваши задачи и ваш бизнес. Обратите внимание на следующее:
1. Выберите подход к распределению ответственности команд между микросервисами. Например, возьмите вот такой Service per team[84].
2. Примерьте на себя InnerSource[85], чтобы разгрузить команды микросервисов от входящих запросов.
3. Выберите стратегию работы с исходным кодом: монорепа, репозиторий под продукт и под микросервис. Если вы решите делать не монорепу, то сразу подумайте, как вы будете выносить общий код микросервисов и как будете управлять общими пакетами. Если выберете монорепу – попробуйте найти инструменты для разработки и деплоя, которые смогут поддерживать этот подход.
Реорганизация команд не произойдёт сама собой, она стоит денег и времени. Поэтому не забудьте учесть эти процессы в вашем плане перехода на микросервисы.