Abbiamo circa 10 applicazioni in un Monolite che devono essere refactored in Microservices.
Seguendo un approccio Agile, vorremmo dividere il lavoro in sezioni verticali in cui ogni sezione sarebbe utile per l'utente. Ogni sezione includerebbe un livello di persistenza, un servizio e un'interfaccia utente. Tuttavia, non siamo sicuri su come gestire il livello dell'interfaccia utente. Dovremmo collegare i nostri nuovi microservizi alla vecchia interfaccia utente o creare una nuova interfaccia utente che sarebbe disponibile per alcuni utenti?
La prima opzione richiederebbe molto lavoro per cablare il microservice nella vecchia interfaccia utente. Inoltre, alla fine dovremmo collegare i servizi in una nuova interfaccia utente. Quindi, due volte il lavoro. La seconda opzione richiederebbe due UI in esecuzione in parallelo e otterrebbe sicuramente meno traffico fino al termine del progetto. Dato che probabilmente avrà un sottoinsieme di utenti che potrebbero non usarlo spesso, mi chiedo, quanto sarebbe utile. La seconda opzione sembra avere senso per me, ma abbiamo giocato con un'altra opzione.
L'altra opzione sarebbe semplicemente creare il livello di servizio e aggiungere una nuova UI come epica separata. Il test del servizio potrebbe essere eseguito tramite uno strumento di test API, ad es. Postman. Questo approccio sembra più semplice all'inizio, ma presenta problemi. In primo luogo, sembra volare contro un approccio Agile e segue più di una metodologia Waterfall. Pertanto, non riceviamo feedback incrementali reali da parte dell'utente, poiché in effetti non vedranno nulla di utile fino a quando l'interfaccia utente non sarà completata.
Quindi sono sicuro che ci sono molti modi per affrontare questo problema, ma ci chiediamo se esiste un modo tipico per risolverlo.