Cosa si intende per integrazione aziendale?
Condividere i dati è un requisito essenziale per le aziende di oggi. Le grandi aziende che intendono sfruttare i big data sanno che la loro integrazione rappresenta un'enorme sfida. Per superarla, la strategia aziendale deve basarsi su applicazioni e dispositivi interconnessi tra di loro e su più ambienti cloud. L'integrazione aziendale include le tecnologie, i processi e le strutture dei team che mettono in connessione i dati, le applicazioni e i dispositivi presenti all'interno del team IT.
Nel corso degli anni i modelli di integrazione enterprise si sono trasformati da un piccolo gruppo di connessioni point-to-point a un modello centralizzato collegato mediante un Enterprise Service Bus (ESB), per poi evolversi in un'architettura distribuita con un alto numero di endpoint riutilizzabili.
Gli aspetti principali dell'integrazione aziendale
Che cosa bisognaintegrare?
L'integrazione aziendale è, innanzitutto, una sfida a livello di dati. La quantità di dati presente all'interno di un'organizzazione è tale che, per indicare la dimensione e la varietà delle sorgenti di dati, viene spesso usato il termine "big data" . La disponibilità di un elevato volume di dati in svariati formati non-standardizzati può rappresentare un grande valore per un'azienda, ma solo dopo averli integrati da più sorgenti o applicazioni. L' Internet of Things (IoT) offre un nuovo modo per connettersi con i clienti e analizzare i dati rilevanti tramite dispositivi di uso quotidiano. Per sfruttare questa nuova opportunità, occorre prima filtrare i dati critici da trasmettere al datacenter. Le applicazioni web complicano ulteriormente l'integrazione aziendale, soprattutto quando quelle esistenti devono essere integrate a un'architettura basata sui servizi, come i microservizi.
Comesi integrano le app, i dispositivi e i dati?
In passato, un Enterprise Service Bus (ESB) centralizzato gestito da un team centrale poteva collegarsi a qualsiasi endpoint disponibile in un ambiente. Tuttavia nei sistemi di oggi, che hanno bisogno di integrare componenti distribuiti in modo semplice e rapido, un approccio basato su team e tecnologie centralizzati può creare un collo di bottiglia. A seconda delle esigenze in termini di dati e servizi, per garantire uno sviluppo applicativo moderno è consigliabile adottare una combinazione di messaggistica, connettori applicativi, flussi di dati, modelli di integrazione aziendale e interfacce di programmazione delle applicazioni (API), che può essere adottata in modo rapido e iterativo..
Messaggistica
La messaggistica permette la comunicazione fra i vari componenti di un' architettura applicativa distribuita. I componenti possono inviare e ricevere messaggi in più linguaggi, compilatori e sistemi operativi, a condizione che le parti mittente/ricevente comprendano il formato e il protocollo di messaggistica comuni.
Per indirizzare i messaggi all'interno di un'architettura a microservizi viene utilizzata una mesh di servizi .
Connettori applicativi
I connettori applicativi sono elementi architettonici che regolano le modalità di interazione tra i componenti. Si tratta di collegamenti standard personalizzati per alcune API, che vengono utilizzati per integrare con rapidità nuovi endpoint.
Flussi di dati
I flussi di dati garantiscono un flusso di informazioni costante, che le applicazioni possono aggiungere o utilizzare, indipendentemente dalla trasmissione dei dati. Apache Kafka è, ad esempio, una piattaforma distribuita per lo streaming dei dati che permette di pubblicare, sottoscrivere, archiviare ed elaborare flussi di archiviazione in tempo reale.
Modelli di integrazione aziendale
I modelli di integrazione aziendale sono gruppi di soluzioni, indipendenti dalla tecnologia, ai problemi di integrazione più comuni. Forniscono inoltre un linguaggio comune utilizzabile da sviluppatori e architetti per descrivere le integrazioni.
Interfaccia di programmazione delle applicazioni (API)
Un'API è un set di strumenti, definizioni e protocolli per lo sviluppo di software applicativi. Consente ai tuoi prodotti o servizi di comunicare con altri prodotti o servizi anche senza sapere come sono stati adottati.
L'approccio all'integrazione di Red Hat
Red Hat ritiene che l'approccio tradizionale all'integrazione, caratterizzato da team centralizzati che controllano tecnologie monolitiche, ostacoli lo sviluppo e comprometta l'utilità a lungo termine delle applicazioni distribuite. Le tecnologie di integrazione tradizionali, come ESB, offrono vantaggi come l'importanza prioritaria della sicurezza e dell'integrità dei dati, ma dipendono da un solo team che definisce le integrazioni per l'intera azienda.
Le architetture applicative cloud-native a basso livello di accoppiamento e sviluppate attraverso i metodi Agile e DevOps di oggi, però, hanno bisogno di un approccio altrettanto agile e scalabile all'integrazione. Nella visione di Red Hat, l'integrazione agile è esattamente questo: un approccio al collegamento delle risorse che combina tecnologie di integrazione, tecniche di distribuzione agile e piattaforme cloud-native per migliorare la velocità e la sicurezza nella distribuzione del software. In particolare l'integrazione agile implica il deployment di tecnologie di integrazione, come le API, nei container Linux e l'estensione dei ruoli di integrazione ai team interfunzionali.
L'integrazione in un'architettura cloud-native
Un'applicazione cloud-native è una raccolta di microservizi piccoli, indipendenti e a basso livello di accoppiamento distribuiti in container Linux e connessi tramite API o un sistema di messaggistica. Ogni servizio implementa una capacità aziendale ed è sviluppato da team formati da poche persone, che adottano processi DevOps come l' integrazione e il deployment continui (CI/CD) . Non esistono più, di conseguenza, i cicli di sviluppo monolitici a cascata: i servizi vengono compilati in tempi rapidi, distribuiti in modo automatico e regolarmente aggiornati.
DevOps
DevOps è un approccio alla cultura, all'automazione e alla progettazione di piattaforme destinate a fornire un valore aziendale e una reattività superiori.
Container
I container permettono di raggruppare e isolare le app con tutto il loro ambiente di runtime, semplificando quindi lo spostamento tra ambienti, ma conservando al tempo stesso la piena funzionalità.
Microservizi
Un'architettura a microservizi frammenta le app nei loro componenti più piccoli, indipendenti l'uno dall'altro.
API
Un'interfaccia di programmazione delle applicazioni (API) è un set di strumenti, definizioni e protocolli per lo sviluppo di software applicativi. Le API permettono di collegare prodotti e servizi anche senza sapere come sono stati adottati.
Le applicazioni cloud-native sono espressamente concepite per offrire all'azienda vantaggi tangibili, come la possibilità di integrare in breve tempo i feedback degli utenti, agevolando lo sviluppo continuo. Lo sviluppo di applicazioni cloud-native è quindi un metodo per accelerare la creazione di nuove applicazioni, ottimizzare quelle esistenti e integrare il tutto.
A differenza delle monolitiche app tradizionali, quelle cloud-native sono distribuite e questo introduce nuove, considerevoli difficoltà a livello di integrazione. L'integrazione agile supporta lo sviluppo cloud-native in parte grazie alla sua capacità di conciliare i requisiti delle applicazioni con le esigenze dell'integrazione.
Scopri i prodotti Red Hat Application Services
Red Hat Integration è una delle tre categorie di prodotti dell'offerta Red Hat Application Services. Red Hat Integration consente agli sviluppatori di integrare le applicazioni con una gamma diversificata di sistemi interni ed esterni alle architetture ibride.