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