Мы разрабатываем систему на основе независимых микросервисов (подключенных через шину RabbitMq). Код будет (по крайней мере для первых компонентов) написан на python (как python2, так и python3). У нас уже есть монолитное приложение, реализующее некоторую бизнес-логику, которую мы хотим реорганизовать как микросервисы и расширить. Один вопрос, который меня беспокоит:
Каков наилучший способ обмена кодом между различными микросервисами. У нас есть общие вспомогательные функции (обработка данных, ведение журнала, анализ конфигурации и т. Д.), Которые должны использоваться несколькими микросервисами.
Сами микросервисы будут разрабатываться как отдельные проекты (git-репозитории). Общие библиотеки также могут быть разработаны как самостоятельный проект. Как я могу поделиться этими библиотеками между микросервисами?
Я вижу несколько подходов:
- скопируйте версию библиотеки, которая требуется для каждого микросервиса, и обновите при необходимости
- освободить общие библиотеки для внутреннего PyPi и перечислить эти библиотеки как зависимости в требованиях микросервиса
- включить хранилище библиотеки как подмодуль git
Я хотел бы прочитать немного больше о предлагаемых подходах, лучших практиках, прошлом опыте, прежде чем принять решение о том, как действовать дальше. У вас есть предложение или ссылка?
fib(n)
(реализация ряда Фибоначчи). Вы не хотите повторять эту реализацию в каждом микросервисе. Это принадлежит utils
библиотеке (версионной, для функций и исправлений). Это не распределенный монолит, это просто слой общей функциональности. Мой вопрос, как обрабатывать этот уровень на уровне реализации?