2015-01-11 9 views
6

Stavo pensando all'architettura dei micro servizi e mi chiedevo se la gente avesse una buona pratica per gli ambienti di sviluppo.Come creare un ambiente di sviluppo ottimizzato per i micro-servizi

Il mio presupposto è che ciascun servizio micro vivrà nel proprio repository git per isolamento e facilità di implementazione. Suppongo anche che ogni sviluppatore creerà un fork di qualsiasi repository su cui stanno lavorando.

Il problema che sto considerando si pone quando si sta lavorando su un problema che coinvolge più micro-servizi. Ad esempio, esiste un difetto che influisce su un servizio micro e su come consuma appropriatamente un altro micro-servizio.

Supponendo che n progetti siano coinvolti nel difetto, è necessario verificare i repository di git e configurarli per lavorare insieme. Se ognuno di essi ha un Vagratefile e un Dockerfile, si finisce con l'esecuzione di n VM. Idealmente avresti solo 1 VM Vagrant e ogni servizio sarebbe solo una nuova istanza Docker nella stessa VM.

Un master repo/progetto con moduli sub Git potrebbe funzionare. Il problema è che se creiamo un master repo/progetto generico, il sottomodulo punterà all'upstream non alla forcella per lo sviluppatore.

Attualmente sto pensando che un progetto di master che ha avuto alcune configurazioni, vagabondo e fico potrebbe fare il trucco. Attualmente sto valutando due metodi per implementare questo approccio.

  1. Fornire una configurazione con alcuni valori di default cioè Progetto_1 dovrebbero essere situati a ../project_id, ecc
  2. fornire uno script che creerà sottomoduli sulla base di conto github dell'utente, questo creerebbe il telecomando per la forcella dell'utente e il telecomando per il progetto upstream.

Qualcun altro ha risolto questo problema o ha un buon flusso di lavoro?

+1

Questo è un buon esempio di come il fico config progetto principale sarebbe l'installazione. http://stackoverflow.com/questions/27408510/developer-environment-how-to-call-consume-other-micro-services –

+0

Hai trovato un modo per gestire Git? È una domanda interessante –

risposta

1

Ho deciso di andare con la fig.

Se un Microservice dipende da un altro fig Microservice farà riferimento questo servizio utilizzando ../

Questo presuppone che tutti i servizi sono controllati come fratelli. Questo può anche essere facilmente realizzato usando git sub alberi.

miei dev_ops contiene Repro mio file Vagrant per boot2docker, ecc

Problemi correlati