Complessità dei microservizi: il costo nascosto della scomposizione di ogni cosa

Di Rocket Software

5 minuti di lettura

Riepilogo

Un cliente completa un acquisto online. La sua carta viene addebitata, ma l'ordine non viene mai spedito.

Un viaggiatore prenota un volo. Il pagamento va a buon fine, ma il suo posto non viene effettivamente riservato.

In entrambi i casi il sistema non è andato in crash. Alcune fasi del flusso di lavoro sono andate a buon fine, ma dal punto di vista aziendale il risultato è comunque un fallimento. In molti settori, un successo parziale comporta rischi maggiori rispetto a un'interruzione completa.

 

Dove introducono rischi i microservizi?

Questo risultato può emergere durante le iniziative di modernizzazione, quando i processi aziendali che un tempo venivano eseguiti all'interno di un unico confine transazionale vengono distribuiti su più servizi o piattaforme. Se da un lato la scomposizione può migliorare l'agilità e la scalabilità, dall'altro può anche rendere più difficile il coordinamento e la coerenza delle transazioni quando un singolo processo aziendale si estende su molteplici componenti.

Questa flessibilità comporta un compromesso. Quando una singola transazione aziendale coinvolge più servizi, ognuno con i propri dati e la propria logica, garantire che tutto venga completato correttamente diventa significativamente più difficile. Un'interruzione totale è visibile e innesca una risposta. Un guasto parziale (in cui alcuni passaggi hanno successo e altri no) può passare inosservato più a lungo, creando rischi finanziari, insoddisfazione dei clienti e complessità operativa, soprattutto in ambienti in cui le transazioni critiche per l'azienda dipendono da un'esecuzione coerente e completa.

 

Perché i mainframe continuano a eccellere nell'integrità delle transazioni anche durante la modernizzazione?

In molti settori, il successo parziale non è accettabile. Il principio di integrità delle transazioni, basato sul principio "tutto o niente", prevede che ogni operazione venga completata con successo o annullata completamente. Nel settore dei servizi finanziari, una banca non può permettersi un aggiornamento del saldo senza una corrispondente registrazione contabile, così come una compagnia assicurativa non può emettere una polizza senza aver completato la valutazione del rischio, o un sistema di prenotazione viaggi non può confermare il pagamento senza aver prima confermato la prenotazione.

Storicamente, i sistemi ad alto rischio che gestiscono questo tipo di carichi di lavoro sono stati costruiti attorno a un principio semplice: una transazione o si completa interamente o non avviene affatto.

Monzo, una banca digitale con sede nel Regno Unito, ha parlato pubblicamente delle sfide operative emerse con la crescita del suo ambiente, che ha raggiunto oltre 1.500 microservizi. L'azienda ha affrontato queste sfide attraverso controlli di ingegneria più rigorosi, osservabilità, pratiche di test e disciplina operativa. La loro esperienza dimostra che, con la crescente distribuzione dei sistemi, le organizzazioni devono investire maggiormente nel mantenimento della coerenza e del coordinamento.

 

Cosa è cambiato con l'architettura moderna?

Oggi molte organizzazioni gestiscono con successo sistemi distribuiti su larga scala. Sebbene le architetture moderne possano fornire solide garanzie transazionali, tali garanzie spesso richiedono strumenti e sforzi ingegneristici aggiuntivi che storicamente erano forniti dalla piattaforma stessa.

In ambienti ad alto rischio e con un elevato volume di transazioni, un successo parziale può causare danni maggiori rispetto a un fallimento evidente. Un rollback pulito mantiene la coerenza dei sistemi, facilitando l'individuazione degli errori e offrendo agli operatori un percorso chiaro per il ripristino.

Ciò che spesso sfugge alle discussioni sulla modernizzazione dei mainframe è dove risiedeva originariamente questa garanzia. I sistemi mainframe imponevano l'atomicità a livello di piattaforma, costituendo una base di affidabilità e resilienza operativa, dove la coerenza dei dati e l'integrità delle transazioni erano inseparabili. Gli sviluppatori non avevano bisogno di orchestrare la coerenza tra più componenti perché era integrata nel modo in cui venivano eseguite le transazioni.

Molte architetture moderne richiedono ancora le stesse garanzie, ma la differenza ora sta nel fatto che la responsabilità si è spostata. Invece di essere gestita dal sistema, l'integrità delle transazioni viene spesso ricostruita nella logica applicativa, distribuita su servizi e livelli di coordinamento. Questo spostamento introduce nuove modalità di errore che molte organizzazioni riscontrano durante la modernizzazione dei mainframe, dove le garanzie transazionali non sono più applicate a livello di piattaforma.

 

Come possono le organizzazioni modernizzare i mainframe senza compromettere l'integrità delle transazioni?

La modernizzazione dei mainframe richiede una definizione precisa di dove risieda la responsabilità del coordinamento delle transazioni. Mentre alcune organizzazioni scelgono di ricostruire tali garanzie attraverso modelli di applicazioni distribuite, un altro approccio consiste nel preservare modelli di esecuzione delle transazioni collaudati, modernizzando al contempo l'ambiente circostante.

Rocket Enterprise Server consente alle organizzazioni di eseguire COBOL e altri carichi di lavoro critici per il business su piattaforme distribuite e infrastrutture cloud, mantenendo al contempo i comportamenti transazionali su cui molte aziende fanno affidamento da decenni.

Per i carichi di lavoro che dipendono da una rigorosa coerenza transazionale, Rocket Enterprise Server preserva il coordinamento delle transazioni gestito dalla piattaforma, consentendo al contempo l'implementazione su infrastrutture moderne. Ciò permette alle organizzazioni di modernizzarsi senza dover re-implementare ogni garanzia transazionale nel codice dell'applicazione e nelle interazioni con i servizi.

Nell'esempio precedente, i guasti derivavano da un controllo frammentato. Preservando l'integrità transazionale a livello di esecuzione, è molto meno probabile che si verifichino tali modalità di guasto. Con l'evoluzione dei sistemi moderni, è importante garantire che le architetture moderne non perdano le garanzie che le hanno rese affidabili in origine.

 

Ripensare l'architettura moderna

Per anni, gli sforzi di modernizzazione hanno spinto i team a suddividere le applicazioni in servizi più piccoli e indipendenti in nome della velocità e della scalabilità. Questo cambiamento ha portato a vantaggi concreti, ma ha anche introdotto nuove sfide che molte organizzazioni stanno ancora affrontando. In pratica, molte organizzazioni stanno diventando più selettive su dove e come scomporre le applicazioni. Alcuni carichi di lavoro traggono vantaggio da architetture altamente distribuite, mentre altri attribuiscono maggiore importanza alla coerenza transazionale e alla semplificazione delle operazioni.

Gli obiettivi della modernizzazione dei mainframe sono di far evolvere i sistemi in modo da preservare ciò che già funziona, in particolare l'integrità e l'affidabilità delle transazioni che sono alla base della sicurezza dei mainframe e che molti sistemi moderni faticano ancora a replicare.

Scopri come Rocket Enterprise Server aiuta le organizzazioni a modernizzare le applicazioni critiche per il business, preservando al contempo la coerenza transazionale in ambienti distribuiti e basati sul cloud.

Domande frequenti

Post correlati

Security & Compliance

Pronti per la fatturazione elettronica: scadenze, requisiti e prossimi passi pratici

1 minuto di lettura
Pronti per la fatturazione elettronica: scadenze, requisiti e prossimi passi pratici
Intelligenza artificiale (IA)

Vi presentiamo Rocket EVA 2.0

6 minuti di lettura
Rocket EVA 2.0 introduce agenti di intelligenza artificiale governati per operazioni IT mainframe e ibride, aiutando i team ad accelerare le indagini, estendere le competenze e applicare [...]
Data

Novità di Vertica 26.3

Mahima Kakkar
5 minuti di lettura
Le ultime innovazioni della piattaforma di analisi di Vertica, nuove funzionalità, miglioramenti delle prestazioni e dell'usabilità che aiutano le organizzazioni ad ampliare [...]