Sviluppo e debug dei microservizi localmente

1

Il caso d'uso:

Sto lavorando su un'architettura basata su microservizi e mi sto chiedendo come faccio a eseguire il debug di un microservizio (con il mio IDE collegato) sul mio computer locale dove lo sviluppo.

Il problema:

Fino ad oggi avevo solo pochi microservizi (~ 4-7) per un'intera piattaforma web e per eseguire il debug di una singola piattaforma avrei avviato tutti i miei microservizi non ancorati e impostato i breakpoint nel microservizio da debug.

Tuttavia la mia piattaforma è diventata più complessa. Ora ho messo in bacino tutti i miei microservizi, ho centralizzato la registrazione con uno stack ELK che ottiene i log tramite Filebeat (uno strumento scritto da Elastic, che sostanzialmente trasporta l'output Docker su Logstash), Prometheus + Grafana, zipkin (monitoraggio delle prestazioni), trasporto via RabbitMQ ecc. Come puoi vedere, devo eseguire un paio di contenitori docker per eseguire il debug dell'intera piattaforma.

La mia domanda:

Come gestisci lo sviluppo di nuovi microservizi su cui desideri eseguire il debug con un IDE allegato quando sono dipendenti da altri servizi?

    
posta kentor 14.07.2018 - 14:13
fonte

2 risposte

1

Questo è quello che faccio per configurazioni complesse come la descrivi.

Ogni volta che scrivi un micro-servizio, scrivi un Client per quel micro-servizio alla stessa interfaccia. Integrazione Testare il client contro il servizio e registrare il traffico.

Ora scrivi un cliente deriso, che invece di chiamare il servizio per ottenere la risposta carica i file pieni del traffico che hai precedentemente registrato.

Ora il tuo prossimo micro-servizio con una dipendenza dal primo, può usare il client beffato invece della vera dipendenza nei suoi test.

L'uso dei dati registrati consente di generare rapidamente nuove risposte dal servizio reale per adattarsi al tuo caso di test. O anche per utilizzare le risposte registrate in cui hai identificato un bug in produzione.

Ora puoi scrivere nuovi casi di test e eseguire il debug del tuo servizio nell'IDE senza dover configurare tutti i servizi dipendenti.

    
risposta data 02.09.2018 - 19:29
fonte
0

Se i tuoi microservizi sono progettati correttamente, ogni servizio soddisfa una capacità aziendale, che è descritta da una raccolta di user story e criteri di accettazione. Queste user story e i criteri di accettazione dovranno essere testati a livello di servizio. Pertanto, crea test che coprano tutte le storie di servizi e prendi in giro il resto. Questo dovrebbe essere sufficiente per sviluppare ed eseguire il debug di un singolo servizio.

Se ritieni che questo approccio non sia valido, forse perché ogni servizio ha bisogno di molti altri servizi per fare cose significative, allora dovresti considerare se i tuoi servizi sono troppo piccoli o divisi in modo errato. Potrebbe essere necessario applicare questo approccio, ma invece di eseguire un singolo servizio, eseguire 2 o 3, ma mai l'intero sistema o molti servizi. Questo probabilmente significherebbe un cattivo design a mio parere.

    
risposta data 02.09.2018 - 18:19
fonte