Panoramica sui microservizi
I microservizi permettono agli sviluppatori che lavorano in ambito sanitario e altri settori di creare applicazioni che grazie all'impiego di servizi a basso accoppiamento risultano facili da sviluppare, testare, distribuire e aggiornare. Per questo motivo gli sviluppatori del settore sanitario preferiscono oggi i microservizi rispetto all'Enterprise Service Bus (ESB), una tecnologia di integrazione IT di vecchia concezione.
Sfide dell'integrazione IT nel settore sanitario
L'ambiente IT di un'organizzazione sanitaria, come quello di ogni grande impresa, è composto da un insieme di sistemi eterogenei in continua espansione che devono poter condividere dati mission critical. La comunicazione efficace fra tutti i sistemi dell'ambiente — come il sistema ADT di accettazione dimissione e trasferimento, il sistema per la gestione delle prenotazioni, il sistema per le analisi di laboratorio, il sistema per la radiologia e il sistema per la fatturazione, tanto per citarne alcuni — è fondamentale, soprattutto considerando che i dati raccolti da questi sistemi possono rivelarsi vitali durante un'emergenza medica.
Con l'avvento del digitale le aziende sanitarie hanno adottato la cartella clinica elettronica (EHR), una soluzione potenzialmente molto vantaggiosa a patto che le applicazioni siano in grado di condividere i dati fra loro. Il percorso verso l'integrazione dei sistemi nel settore sanitario è cominciato nel 1987 con la nascita dell'Health Level Seven (HL7), lo standard internazionale per il trasferimento dei dati clinici e amministrativi tra le applicazioni utilizzate per l'assistenza sanitaria. Una volta stabilito un linguaggio comune, occorreva trovare il modo di collegare le applicazioni affinché riuscissero a comunicare tramite l'HL7.
Con il passare del tempo i professionisti IT si sono resi conto che la connessione point-to-point diretta di ogni singola applicazione è poco pratica e con l'espansione dell'azienda diventa inattuabile. Inoltre, l'HL7 offriva sì uno formato comune, ma i suoi campi non venivano interpretati in maniera univoca. Per supportare la comunicazione tra sistemi sanitari, serviva dunque pensare a una soluzione che permettesse la trasformazione dei dati e la connettività.
La prima tecnologia di integrazione adottata dalle aziende sanitarie è stato l'Interface Engine (IE), un server che fungeva da hub tra i sistemi dell'ospedale. Ciascun sistema si collegava all'IE che si occupava poi di trasformare i dati e trasmetterli agli altri sistemi in base alle richieste. Successivamente, una ventina di anni fa circa, è stato introdotto l'Enterprise Service Bus (ESB): una soluzione che come l'IE funge da hub per lo scambio di dati tra le applicazioni utilizzando lo standard HL7. L'ESB permette la trasformazione dei dati, la conversione dei protocolli, il routing, supporta servizi web, JMS, HTTP e SOAP e semplifica le attività di gestione e monitoraggio. Da vent'anni a questa parte l'ESB è la soluzione più diffusa per l'integrazione nel settore sanitario e non solo.
Risorse da Red Hat
Enterprise Service Bus (ESB) e DevOps
Dall'introduzione dell'ESB l'approccio allo sviluppo applicativo è cambiato notevolmente: oggi si punta piuttosto su metodologie di sviluppo agile e DevOps, preferendole all'ESB.
Il flusso DevOps è un ciclo di vita dello sviluppo che si basa su modifiche incrementali e test automatizzati continui. Nell'era delle metodologie DevOps, proprio quelle caratteristiche che una volta facevano dell'ESB la soluzione ottimale sono diventate un ostacolo. L'ESB adotta tutte le integrazioni in un unico blocco monolitico, e se questo un tempo costituiva un vantaggio, oggi rende l'ESB incompatibile con DevOps.
I limiti dell'ESB in un ambiente di sviluppo moderno sono:
- Incompatibilità con gli strumenti per lo sviluppo agile e DevOps: molti dei giovani sviluppatori neolaureati sono abituati e preferiscono lavorare in ambiente DevOps. Chiedere loro di utilizzare l'ESB, quindi senza possibilità di integrare le ultime soluzioni DevOps, va a discapito della loro produttività.
- Le modifiche influiscono sull'intero sistema: ogni volta che si vogliono apportare dei cambiamenti, anche piccoli, all'ESB è necessario sospendere l'intero motore. Significa che, durante le attività di modifica, tutte le applicazioni che stanno interagendo con l'ESB sono destinate a subire interruzioni e downtime. Se la modifica contiene inoltre un errore, questo potrebbe potenzialmente compromettere tutte le integrazioni. Questa peculiarità dell'ESB si ripercuote sull'agilità mentale dei team, rendendoli meno inclini a installare aggiornamenti e correzioni.
- Singolo punto di vulnerabilità: siccome tutte le integrazioni sono instradate attraverso lo stesso hub, l'ESB rappresenta il singolo punto di vulnerabilità dell'intera azienda. Di conseguenza se l'ESB dovesse smettere di funzionare, si interromperebbero anche tutte le integrazioni.
- Impossibilità di automatizzare i test: l'esecuzione automatica di test è una componente fondamentale del flusso DevOps. Grazie all'automazione, nel flusso DevOps ogni aggiornamento viene testato in maniera indipendente per evitare interruzioni nel processo di sviluppo. Tuttavia, la GUI proprietaria e il controllo delle versioni dell'ESB impediscono l'automazione.
Il settore sanitario e altri settori puntano su pratiche di sviluppo moderne come i microservizi, DevOps e la metodologia agile. Questo coinvolge anche l'integrazione sanitaria: le nuove applicazioni e i touchpoint digitali richiedono l'integrazione di HL7, REST e altri protocolli. Gli sviluppatori di microservizi per il settore sanitario vogliono controllare le proprie integrazioni e il resto del codice che sviluppano (dati, streaming, GUI, comando e controllo, ecc.) e raggruppare tutte le modifiche in unità distribuibili nel flusso di integrazione e distribuzione continue (CI/CD). A causa dei limiti elencati sopra, con l'ESB è impossibile raggiungere l'obiettivo del CI/CD di integrazione di codice con altro codice.
Flussi DevOps e integrazione basata su microservizi
I microservizi sono il futuro dello sviluppo applicativo e alle incompatibilità dell'ESB si preferiranno altre soluzioni. Se l'ESB è un'infrastruttura monolitica, i microservizi sono l'esatto opposto, consentono cioè agli sviluppatori di creare applicazioni e integrazioni combinando servizi più piccoli e a basso accoppiamento. Scomponendo le applicazioni in moduli indipendenti, facilitano lo sviluppo, l'esecuzione di test, la correzione, l'esecuzione di nuovi test, il deployment, l'esecuzione di test in ambiente di produzione, l'aggiornamento, e così via.
Poiché prevedono l'esecuzione automatica di test, i microservizi supportano l'adozione dell'approccio DevOps. Data la dimensione ridotta dei microservizi, si possono inserire facilmente in container con cui è possibile automatizzare i test e agevolare il flusso di integrazione e distribuzione continue (CI/CD). L'ESB invece è troppo grande per i container e ha una conformazione monolitica, che non gli consente di essere scomposto in parti più piccole e di conseguenza non può essere testato allo stesso modo dei microservizi.
Ma forse l'elemento principale che dovrebbe spingere ad adottare l'integrazione basata su microservizi è legato alla necessità di offrire agli sviluppatori agili gli strumenti essenziali per lavorare con il modello DevOps. Eliminando l'ESB si consente agli sviluppatori di lavorare in un ambiente di sviluppo agile, che non solo conoscono meglio, ma che preferiscono. E soprattutto senza l'ESB gli sviluppatori non devono più formarsi su un sistema proprietario, ma possono dedicarsi ad approcci allo sviluppo più produttivi.
Inoltre, i microservizi democratizzano l'integrazione consentendo agli sviluppatori di esplorare le loro esigenze di integrazione, anziché vincolare l'integrazione a un solo team di sviluppatori specializzati sull'ESB. Insomma, nessuno comprende le esigenze in termini di dati di un'applicazione meglio del suo sviluppatore.
I microservizi supportano la gestione delle API e consentono l'integrazione basata su API.
L'integrazione basata su microservizi offre gli stessi vantaggi dell'ESB, tra cui la trasformazione delle grafiche e la logica per creare regole sofisticate che guidino i flussi di dati all'interno dell'azienda. Ad esempio, è possibile trovare modelli di sviluppo grafico simili a quelli proposti dall'ESB, che supportano però l'integrazione basata su microservizi.
Vantaggi dell'integrazione basata su microservizi
I vantaggi dell'integrazione basata su microservizi sono numerosi:
- Monitoraggio e gestione completi: è possibile monitorare i microservizi con strumenti all'avanguardia (Kibana, Elasticsearch, Grafana, Prometheus, ecc.) per rilevare i punti di vulnerabilità e risolvere tempestivamente potenziali problemi.
- Test automatizzati: uno dei grandi vantaggi dei microservizi e di DevOps è la possibilità di eseguire test automatizzati. Durante il processo di test ciascuna integrazione viene trattata in maniera indipendente; così facendo si evita di compromettere il funzionamento degli altri elementi nell'applicazione o delle altre applicazioni.
- Software di qualità superiore: processi di sviluppo e di test più efficienti permettono di creare software di qualità superiore.
- Tempi di sviluppo ridotti: snellendo il processo di sviluppo delle integrazioni grazie a DevOps e all'automazione ed eliminando i processi manuali, si accelera il ciclo di vita dello sviluppo.
- Maggiore scalabilità: dato che le applicazioni sono composte dalla somma di moduli indipendenti, è possibile ampliare ciascun servizio singolarmente senza conseguenze sugli altri elementi dell'applicazione.
- Innovazione avanzata: i microservizi e DevOps permettono agli sviluppatori di trovare soluzioni di integrazione innovative con cui l'azienda è in grado di offrire servizi nuovi e rispondere alle esigenze dei clienti.
- Agilità aziendale: lo sviluppo agile si traduce in un'azienda agile, capace cioè di adattarsi prontamente alle esigenze di un mercato in evoluzione. Ad esempio, sfruttando i microservizi i team di sviluppo delle applicazioni possono creare rapidamente le integrazioni necessarie a sostenere la collaborazione dell'azienda con nuovi partner e fornitori che richiedono la condivisione di dati.
- Esperienza dei clienti migliorata: lo scopo fondamentale di un'azienda nel settore sanitario è fornire un servizio capace di rispondere alle necessità dei pazienti. Ottimizzare i processi e la condivisione di dati tra sistemi e reparti migliora l'esperienza dei pazienti.
L'idea di adottare i microservizi nella propria integrazione IT può intimorire. A ben vedere l'ESB ha funzionato per anni e i team di sviluppo hanno ormai acquisito le competenze per gestire i suoi aspetti proprietari, quindi quali sarebbero i vantaggi dei microservizi? Sarebbe sufficiente pensare al tempo e alle risorse che richiederebbe la formazione di nuovi sviluppatori specializzati sull'ESB qualora uno di loro, o magari più d'uno, lasciasse l'organizzazione.
Il fatto stesso che la dismissione dell'ESB monolitico appaia come un'impresa impossibile dovrebbe invogliare le organizzazioni a svincolarsi e a cercare nuove strade, a superare i suoi limiti per scoprire le potenzialità e i vantaggi delle soluzioni di integrazione moderne.
Architettura guidata dagli eventi: event mesh
Gli scenari di utilizzo per un'architettura guidata dagli eventi integrata da un'event mesh sono molteplici, soprattutto associati a topologie multicloud complesse e ampiamente distribuite che fanno uso di diversi stack applicativi. Di seguito sono riportati alcuni dei possibili scenari di utilizzo dell'event mesh.
Integrazione di microservizi
L'event mesh permette di collegare facilmente le applicazioni basate sui microservizi tra loro e con le tecnologie esistenti.
E-commerce
L'event mesh permette di elaborare le transazioni in modo tempestivo per garantire un'interazione con il cliente veloce e affidabile su siti web e applicazioni.
Assistenza clienti
L'event mesh supporta la trasmissione veloce dei dati relativi alle interazioni con i clienti, permettendo ai team di assistenza di rispondere ai clienti in tempo reale e di creare un'esperienza personalizzata.
Servizi finanziari
L'event mesh fornisce ai provider di servizi finanziari una sincronizzazione immediata e a bassa latenza dei dati commerciali e trasmette le informazioni in tempo reale sulle transazioni sospette, così da prevenire eventuali frodi.
Connettività dell'IoT
L'event mesh fornisce una connettività affidabile e scalabile tra dispositivi IoT e sistemi back end, che permette di elaborare le metriche prodotte da pressoché qualsiasi tipologia di sensore.
Vantaggi dell'event mesh per il business
Grazie all'event mesh l'azienda può ottenere i seguenti vantaggi.
Risposta in tempo reale
Il successo di un'azienda dipende dalla sua abilità di reagire al cambiamento. Trasmettendo i dati in tempo reale, sotto forma di flussi di eventi in un'architettura guidata dagli eventi, l'event mesh permette di rispondere al cambiamento in modo tempestivo. L'event mesh è una soluzione efficiente perché riesce a determinare il percorso più veloce tra un producer eventi e un consumer eventi ed eliminare così la latenza dei messaggi. In questo modo gli stakeholder aziendali possono reagire prontamente alle criticità che richiedono decisioni immediate.
Esperienza dei clienti migliorata
L'event mesh trasmette in tempo reale i dati necessari ai team di front office e alle tecnologie per l'e-commerce, consentendo all'azienda di soddisfare le esigenze dei clienti in modo veloce e puntuale e di migliorare nel complesso l'esperienza dei clienti.
Costi operativi ridotti
Offendo visibilità in tempo reale su produzione, vendite, inventario e spedizioni, l'event mesh permette all'azienda di ottimizzare le operazioni, aumentare l'efficienza e ridurre i costi.
Sviluppo più efficiente
Grazie all'event mesh, gli sviluppatori di applicazioni non sono più vincolati a un certo ambiente, sistema di messaggistica o protocollo e sono liberi di implementare la logica di business sfruttando le migliori tecnologie sul mercato. Possono sviluppare applicazioni senza bisogno di creare una rete per la distribuzione dei dati complessa e senza limitazioni sulla scelta dell'ambiente di sviluppo, della piattaforma di messaggistica e della tipologia di cloud.
Il blog ufficiale di Red Hat
Leggi gli articoli del blog di Red Hat per scoprire novità e consigli utili sulle nostre tecnologie, e avere aggiornamenti sul nostro ecosistema di clienti, partner e community.