Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Schema ramo per astrazione
Lo schema dei fichi strangolatori funziona bene quando è possibile intercettare le chiamate sul perimetro del monolite. Tuttavia, se si desidera modernizzare i componenti che si trovano più a fondo nello stack di applicazioni legacy e hanno dipendenze iniziali, si consiglia il modello ramo per astrazione. Questo modello consente di apportare modifiche alla base di codice esistente per consentire alla versione modernizzata di coesistere in sicurezza con la versione precedente senza causare interruzioni.
Per utilizzare correttamente il modello ramo per astrazione, segui questa procedura:
-
Identifica i componenti monolitici che hanno dipendenze a monte.
-
Crea un livello di astrazione che rappresenti le interazioni tra il codice da modernizzare e i suoi client.
-
Quando l'astrazione è in atto, modifica i client esistenti per utilizzare la nuova astrazione.
-
Crea una nuova implementazione dell'astrazione con la funzionalità rielaborata all'esterno del monolite.
-
Passa l'astrazione alla nuova implementazione quando sei pronto.
-
Quando la nuova implementazione fornisce tutte le funzionalità necessarie agli utenti e il monolito non è più in uso, ripulisci l'implementazione precedente.
Il modello ramificazione per astrazione viene spesso confuso con gli interruttori delle funzionalità
La tabella seguente spiega i vantaggi e gli svantaggi dell'utilizzo del modello ramo per astrazione.
Vantaggi | Svantaggi |
---|---|
|
|
La figura seguente mostra il modello ramo per astrazione di un componente di notifica nel monolite assicurativo. Inizia creando un abstract o un'interfaccia per la funzionalità di notifica. In piccoli incrementi, i client esistenti vengono modificati per utilizzare la nuova astrazione. Ciò potrebbe richiedere la ricerca nella base di codice per le chiamate alle API relative al componente Notifica. Create la nuova implementazione della funzionalità di notifica come microservizio all'esterno del vostro monolite e la ospitate nell'architettura modernizzata. All'interno del monolite, l'interfaccia di astrazione appena creata funge da broker e richiama la nuova implementazione. In piccoli incrementi, trasferisci la funzionalità di notifica alla nuova implementazione, che rimane inattiva fino a quando non è completamente testata e pronta. Quando la nuova implementazione è pronta, si passa all'astrazione per utilizzarla. È consigliabile utilizzare un meccanismo di commutazione che possa essere capovolto facilmente (ad esempio un pulsante di attivazione delle funzionalità) in modo da poter tornare facilmente alla vecchia funzionalità in caso di problemi. Quando la nuova implementazione inizia a fornire tutte le funzionalità di notifica agli utenti e il monolito non è più in uso, puoi ripulire l'implementazione precedente e rimuovere qualsiasi indicatore di funzionalità di commutazione che potresti aver implementato.
![Scomposizione dei monoliti in microservizi utilizzando il modello ramo per astrazione](images/branch-by-abstraction.png)