Stiamo progettando un sistema basato su microservizi indipendenti (connessi tramite un bus RabbitMq). Il codice sarà (almeno per i primi componenti) scritto in python (sia python2 che python3). Abbiamo già un'applicazione monolite che implementa alcune delle logiche di business, che vogliamo ridefinire come microservizi ed estendere. Una domanda che mi preoccupa è:
Qual è il modo migliore per condividere il codice tra i diversi microservizi. Disponiamo di funzioni di supporto comuni (elaborazione dati, registrazione, analisi della configurazione, ecc.) Che devono essere utilizzate da diversi microservizi.
I microservizi stessi saranno sviluppati come progetti separati (repository git). Le librerie comuni possono essere sviluppate anche come progetto autonomo. Come condivido queste librerie tra i microservizi?
Vedo diversi approcci:
- copia la versione della libreria necessaria per ogni microservizio e aggiorna secondo necessità
- rilascia le librerie comuni a un PyPi interno ed elenca quelle librerie come dipendenze nei requisiti del microservizio
- include il repository della libreria come sottomodulo git
Vorrei leggere un po 'di più sugli approcci suggeriti, sulle migliori pratiche, sulle esperienze passate prima di decidere come procedere. Hai qualche suggerimento o link?