Aggiunta di microservizi a un'architettura monolitica?

6

Ha senso aggiungere microservizi a un'architettura monolitica? Per esempio. se il sistema monolitico è vecchio ed è visto come troppo grande, può essere trasformato lentamente in un'architettura basata su microservizi?

Un'altra parte di questa domanda è: ci sono grossi svantaggi per le architetture "miste", cioè le parti sono monolitiche e altre parti sono mircoservizi?

Nota che questa risposta è troppo specifica per la mia domanda.

    
posta toogley 13.10.2016 - 13:18
fonte

2 risposte

5

Il refactoring è uno strumento meraviglioso se usato bene.

Se hai dei test ben progettati nel tuo monolite, questo sarà abbastanza facile. Se non vuoi aggiungerli. Aggiungerli in seguito è sempre più costoso, ma preferibile ancora alla codifica e alla sperimentazione.

Ciò di cui si tratta è che i requisiti reali per il tuo progetto sono nel codice di lavoro. Ciò significa che devi stare attento a conservare questo stato di funzionamento mentre apporti le modifiche. Buoni test assicurano che il comportamento non sia cambiato anche quando la struttura lo ha.

Fai questo lentamente e con attenzione ed è straordinario come puoi trasformare un disegno completamente in dentro e mantenere tutto funzionante.

Dal tuo commento:

That answeres one part of my question. The other was: Does it make sense to develop a system which uses both a monolithic and a microservice based architecture? - toogley

Non avrebbe senso continuare ad aggiungere funzionalità in entrambi gli stili monolitico e microservizio allo stesso tempo. Tuttavia, non c'è motivo per cui non si possa rompere un pezzo come microservizio e lasciare il resto monolitico fino a quando non si è riusciti a spezzare il resto.

Ogni stile ha vantaggi e compromessi. Rimanendo bloccato a metà strada non avrete i vantaggi di entrambi. Ma avrai il vantaggio di poter iniziare a lavorare verso il tuo obiettivo senza dover chiudere tutto finché non hai finito.

    
risposta data 13.10.2016 - 13:25
fonte
1

Direi che le architetture miste sono quelle che trovi maggiormente nel mondo reale.

Molto spesso ti trovi di fronte alla domanda se refactoring o partire da zero è la strada giusta da percorrere. Il problema è che, se lo rifai da zero, all'inizio ti ritroverai sempre con funzionalità minori rispetto al sistema legacy offerto.

Pensa a una grande compagnia di assicurazioni: il loro mainframe e tutto il suo codice "legacy" rimarranno a lungo. Ma perché non creare un'architettura microservizio intorno che offra nuove offerte come le app mobili mentre consumano ancora dati dal mainframe?

I microservizi sono un modo legittimo per scambiare gradualmente parti di applicazioni e molte aziende lo fanno esattamente così. La parola chiave qui è 'Digital Transformation'.

Guarda come Walmart ha fatto la sua trasformazione digitale con Node.js: link

Ecco un deck di diapositive che tratta questo argomento e mostra anche come ridefinire gradualmente un'applicazione: link

    
risposta data 13.10.2016 - 15:01
fonte

Leggi altre domande sui tag