Существует ли простой в обслуживании способ реализации шаблона микросервисного шасси в Python?Python

Программы на Python
Anonymous
Существует ли простой в обслуживании способ реализации шаблона микросервисного шасси в Python?

Сообщение Anonymous »

Контекст: я разрабатываю свой первый проект микросервиса и все еще пытаюсь осмыслить некоторые лучшие практики.
Структура проекта не так уж и сложна:

Код: Выделить всё

DaProject/
+- ServiceA/
|  +- main.py
|  \- Dockerfile
+- ServiceB/
|  +- some_ServiceB_specific_lib/
|  +- main.py
|  \- Dockerfile
\- docker-compose.yml
Теперь, поигравшись с реализацией нескольких сервисов, я выяснил некоторые сквозные проблемы моего проекта. Поскольку все сервисы будут реализованы на Python, я хочу решить эти проблемы с помощью шаблона Service Chassis.
Вопрос в том, существует ли простой, но достойный способ сделать это?
Например, если Я делаю так:

Код: Выделить всё

DaProject/
+- Chassis/
|  \- __init__.py
+- ServiceA/
|  +- main.py
|  \- Dockerfile
+- ServiceB/
|  +- some_ServiceB_specific_lib/
|  +- main.py
|  \- Dockerfile
\- docker-compose.yml
тогда мне нужно будет ссылаться на пакет Chassis из служб.
О чем я подумал:
  • Я не могу просто ссылаться на ../Chassis в любом файле Dockerfile, поскольку он находится за пределами области сборки. Хорошо, это имеет смысл.
  • Я не хочу вручную копировать шасси в каждый служебный каталог всякий раз, когда мне приходится его обновлять. Это очень простое решение, но требующее сложного обслуживания и подверженное ошибкам.
  • Жесткая ссылка на каталог — это хак, который, скорее всего, сломается, если код будет перенесен в другое место.
  • Реализация локального репозитория pypi кажется трудоемким способом справиться с этим. Возможно, было бы более целесообразно реализовать более абстрактную и многоразовую библиотеку, а не что-то настолько привязанное к проекту, как эта.
  • Поиск в Google указал мне на концепцию «git submodule»... но У меня есть только базовые знания Git, поэтому я не могу судить, насколько сложно это решение.
Есть ли другой способ, которым я не могу в курсе? Или мне следует стиснуть зубы и изучить функцию подмодуля?

Подробнее здесь: https://stackoverflow.com/questions/789 ... rn-in-pyth

Вернуться в «Python»