Le applicazioni di business hanno un impatto centrale sulla competitività d’impresa. Poterle adattare alle esigenze del mercato, introducendo nuove funzionalità e aggiornando quelle esistenti con continuità e tempestività, è fondamentale per il successo di qualsiasi organizzazione. Per raggiungere l’obiettivo, garantendo agli applicativi aziendali tutta l’agilità e la flessibilità di cui hanno bisogno, entrano in gioco diversi elementi: innanzitutto, il concetto di Composable Architecture, ma anche alcuni building block come i microservizi e le Packaged Business Capabilities (PBC). Vediamoli in dettaglio.
Architettura del software, l’evoluzione: dal monolite ai microservizi
L’architettura del software ha un peso importante sulla sua capacità di innovare e di rispondere tempestivamente alle esigenze moderne del business. Per esempio, un’architettura monolitica rende nativamente complesso e rischioso qualsiasi cambiamento, poiché le modifiche impattano tutto il sistema, e questo rallenta significativamente il processo di sviluppo e di aggiornamento nonché, soprattutto, la capacità innovativa dell’azienda.
Le architetture software devono essere agili e flessibili per adattarsi alle esigenze dei mercati. Non stupisce, quindi, che l’evoluzione si sia concentrata verso modelli più scalabili e modulari, che abbracciano i principi dell’architettura orientata ai servizi (SOA) e scompongono i sistemi monolitici in componenti più piccoli, modulari e riutilizzabili, così da semplificarne lo sviluppo, la manutenzione e l’implementazione di nuove funzionalità. In questo modo, l’architettura del software asseconda le esigenze di agilità dei mercati e massimizza l’efficienza dei processi IT.
L’architettura a microservizi rappresenta lo stato dell’arte dei modelli distribuiti ed è un pilastro fondante del paradigma Cloud Native. Si tratta di un pattern architetturale che organizza l’applicazione come un insieme di servizi applicativi loosely coupled (ovvero con il minor livello di dipendenza possibile tra di loro), iper-specializzati nelle funzionalità e comunicanti via API. Ogni microservizio supporta una specifica funzionalità, viene sviluppato, distribuito e gestito in modo indipendente dagli altri e, solitamente, ha un suo database.
Benefici e limiti dell’architettura a microservizi
L’architettura a microservizi è un pilastro del software moderno. Le sue caratteristiche native si allineano perfettamente alle esigenze di un mondo che chiede a gran voce innovazione e time to market.
Come detto, i microservizi sono progettati per essere sviluppati e gestiti in modo indipendente, possono essere scritti in linguaggi differenti e consentono lo scaling individuale senza sprechi di risorse. Sono altresì riutilizzabili e, in caso di problemi, non influenzano il funzionamento complessivo dell’applicazione. La loro indipendenza nello sviluppo e nel deployment li rende centrali del paradigma Cloud Native, dove ciascun microservizio può essere gestito con un approccio DevOps e integrato in pipeline Continuous Integration e Continuous Delivery (CI/CD) automatizzate. Questo approccio facilita l’implementazione rapida di innovazioni all’interno degli applicativi aziendali.
I microservizi presentano naturalmente anche delle limitazioni, in particolare a livello di scope: ognuno supporta una singola funzionalità, come ad esempio il catalogo prodotti, il carrello degli acquisti, l’ordine e molte altre. Considerando che un’applicazione può potenzialmente basarsi su centinaia o migliaia di microservizi, questo scenario introduce un notevole livello di complessità legato non solo alla gestione del singolo componente, ma anche all’osservabilità (observability) dell’applicazione in sé, alla sicurezza e alla comunicazione tra i microservizi, da cui potenziali criticità a livello di latenza e, in senso lato, di performance.
La Composable Architecture e le PBC
I microservizi sono concettualmente in linea con il paradigma delle Composable Architecture (Gartner), secondo cui i sistemi software dovrebbero essere realizzati integrando componenti indipendenti e riutilizzabili. Tuttavia, in questo caso la loro estrema granularità è un limite, poiché funzionalità aziendali core come il processo d’acquisto nell’e-commerce, i sistemi di rilevamento delle frodi nel settore bancario, la gestione dell’inventario, i sistemi PIM (Product Information Management) e la fatturazione non sono singoli microservizi ma bensì una funzione di business che può risultare dall’interazione sinergica di molti di essi.
Per rispondere all’esigenza di semplificazione, Gartner ha introdotto nel suo paradigma delle Composable Architecture un livello di astrazione maggiore attraverso le Packaged Business Capabilities (PBC), ovvero dei moduli indipendenti, standardizzati e riutilizzabili che abilitano una specifica business capability (funzionalità di business) e che sono solitamente composti da più microservizi.
A livello tecnico, le PBC sono moduli autonomi e completi dal punto di vista funzionale, con un proprio schema dati, un insieme di servizi, API e canali per gli eventi. Sono progettate per funzionare in modo indipendente da altre componenti esterne, e questo consente all’azienda che le sviluppa di usarle internamente su più applicativi e/o di offrirle a partner e clienti per l’integrazione nelle loro soluzioni.
I benefici sono evidenti: le PBC permettono un’implementazione più rapida e consistente delle funzionalità aziendali, riducendo tempi e costi di sviluppo rispetto a dover gestire i singoli microservizi. Inoltre, le PBC facilitano la standardizzazione e la coerenza delle applicazioni aziendali, migliorando la manutenibilità e la scalabilità delle soluzioni software. Infine, ma non per importanza, le PBC potrebbero diventare una nuova fonte di revenue o un modello di business innovativo, agile e moderno.
Vuoi scoprire di più sulle Packaged Business Capabilities?
Intesys offre un insieme di PBC dedicate a specifiche funzionalità per aiutare le aziende a semplificare l’integrazione e lo sviluppo applicativo e a conciliare le esigenze di business con quelle IT.