Il mercato odierno si evolve rapidamente come mai prima d’ora: spinti dalle potenzialità del mondo digital, ogni giorno vengono lanciati nuovi servizi. Alcuni di questi hanno un impatto così disruptive sul mercato da obbligare tutti gli altri ad adeguarsi velocemente per non rimanere indietro e perdere clienti. Basti pensare, per fare un esempio virtuoso del panorama italiano, a quanto è successo con Scalapay: la rapida e larga diffusione del metodo di pagamento dilazionato ha costretto player del calibro di Apple e Google a sviluppare velocemente un’alternativa simile per evitare un esodo di clienti verso la startup.

Per reagire così rapidamente ed efficacemente a questi stimoli provenienti dal mercato è necessario poter fare affidamento su un’architettura software agile e flessibile. La tecnologia infatti deve essere un fattore che aiuta l’innovazione: ci sono invece casi in cui sistemi legacy, tipicamente costituiti da software monolitici, costituiscono un vero e proprio limite tecnico che ha ripercussioni dirette sulle capacità di cogliere e creare opportunità di business.

La modernizzazione dei sistemi legacy è sicuramente il primo passo importante per superare questi limiti, ma, se non eseguita correttamente, può non essere sufficiente. La scelta del tipo di architettura può essere determinante per il successo dell’azienda. Uno dei pattern che garantisce la flessibilità e la velocità necessarie per aggiungere, riutilizzare e scalare nuovi servizi con un time‑to‑market ridotto è quello della Composable Architecture.

In questo blog post illustreremo le caratteristiche principali della Composable Architecture, i benefici che porta a chi adotta questo approccio, le sfide a cui prestare attenzione e come superarle.

 

Cos’è la Composable Architecture

La Composable Architecture è un Software Architecture Pattern secondo il quale l’architettura finale del software è il risultato della composizione di diversi moduli software indipendenti. Per sua stessa natura, quindi, la Composable Architecture si evolve continuamente e rapidamente: nuovi moduli possono essere aggiunti, i moduli esistenti possono essere aggiornati senza compromettere il resto del sistema e le funzionalità divenute obsolete possono essere rimosse, tutto con estrema facilità.

I singoli moduli alla base della Composable Architecture sono chiamati da Gartner Packaged Business Capability (PBC). Semplificando, una PBC è a sua volta un insieme di componenti che condividono lo stesso obiettivo e assolvono così a un determinato compito o funzionalità di business. Le PBC possono essere sviluppate internamente all’organizzazione, acquistate da fornitori terzi, oppure possono essere componenti open‑source.

 

Le caratteristiche della Composable Architecture

Il paradigma della Composable Architecture non definisce nel dettaglio come devono essere sviluppate le PBC e l’architettura finale. Nonostante questo, per poter realizzare anche dal punto di vista tecnico una Composable Architecture è necessario prestare attenzione ad alcune caratteristiche e requisiti.

Innanzitutto è necessario che le PBC siano sviluppate utilizzando tecnologie cloud native, in quanto sfruttano al massimo i benefici del cloud computing. Il cloud computing è ormai una risorsa indispensabile per garantire la stabilità e l’accesso ai servizi anche al variare del carico di richieste, cosa che i sistemi legacy non sono più in grado di sostenere.

Come già menzionato, la Composable Architecture è definita dalla combinazione di diversi moduli software, ossia microservizi. Ciascuno di essi è sviluppato in maniera indipendente dagli altri e assolve a una precisa funzione. Il vantaggio è che potenzialmente ciascun microservizio può essere sviluppato in un linguaggio diverso, scegliendo quello più adatto a svolgere la sua precisa funzione. Inoltre, ciascuno può essere scalato, sostituito o rimosso singolarmente con il minor impatto possibile sul resto dell’architettura, in quanto per loro stessa natura i microservizi sono loosely-coupled (debolmente accoppiati) tra loro.

Per comunicare tra loro i microservizi utilizzano le API, che sono ormai diventate lo standard de‑facto per la comunicazione. Le API permettono infatti di condividere informazioni tra servizi e sistemi senza la necessità di dover conoscere la tecnologia sottostante; microservizi scritti utilizzando linguaggi differenti possono così comunicare facilmente tra loro. Un altro grande vantaggio delle API consiste nella possibilità di offrire risposte in formati diversi: potenzialmente, lo stesso endpoint potrebbe restituire i dati in formato JSON, XML e YAML, aumentando così i servizi che possono utilizzare quei dati. I modelli di API più diffusi al momento sono REST e GraphQL, ma in passato è stato molto utilizzato anche SOAP.

 

I vantaggi della Composable Architecture

L’adozione di una Composable Architecture fornisce diversi benefici, sia sul breve sia sul lungo periodo. Secondo Gartner, infatti, entro il 2024 l’adozione della composizione (unita ad un approccio olistico all’iperautomazione) ridurrà del 40% i costi legati alle singole iniziative.

Oltre a questo, gli altri vantaggi della Composable Architecture sono:

  • Velocità: poiché ogni microservizio ha una sola funzione specifica, le sue dimensioni sono piuttosto ridotte e può essere sviluppato più velocemente rispetto a un monolite;
  • Riuso: grazie a soluzioni come i Service Catalog, è possibile raccogliere in un un unico posto tutti i microservizi, sia quelli sviluppati internamente sia quelli acquistati da terze parti, e metterli a disposizione di tutti i team di sviluppo, in modo che siano riutilizzati in altre componenti;
  • Standardizzazione: il riutilizzo degli stessi elementi e la comunicazione tramite API predefinite contribuisce a creare degli standard condivisi;
  • Flessibilità: potendo aggiungere, sostituire e rimuovere facilmente i singoli microservizi con un impatto minimo sul resto dell’architettura, questa risulta molto flessibile;
  • Scalabilità: ogni microservizio può essere scalato indipendemente a seconda delle necessità, creando un’architettura capace di reagire velocemente al traffico.

 

Le sfide poste dalla Composable Architecture

Una Composable Architecture porta da un lato dei vantaggi evidenti, ma dall’altro presenta anche delle sfide che è bene tenere a mente. Non considerare o sottovalutare questi aspetti potrebbe vanificare gli sforzi e i benefici che si avrebbero con una corretta implementazione.

Di seguito raccogliamo i principali caveat e sfide poste dalla Composable Architecture:

  • Maggiore complessità: all’aumentare dei singoli moduli aumenta anche la complessità di gestione, in quanto cresce il numero delle dipendenze e delle rotte API disponibili;
  • Standardizzazione preliminare: avere componenti quanto più standardizzati aiuta a migliorare la governance, ma per farlo nel modo giusto è necessario un grande lavoro preliminare di mappatura di tutti gli elementi;
  • Orchestrazione complessa: per poter funzionare e comunicare tra di loro, i singoli moduli devono essere orchestrati e configurati correttamente;
  • Necessità di un marketplace: per esporre le PBC tue e di terzi è necessario un Service Catalog, che però diventa un ulteriore asset da gestire e mantenere.

Queste sfide non sono indifferenti, ma affidandoti a Mia‑Platform hai un tool che ti permette di superarle facilmente e goderti solo i benefici della Composable Architecture. Mia‑Platform Console infatti semplifica l’orchestrazione e la gestione di complesse architetture a microservizi, mentre Mia‑Platform Marketplace fornisce template e plugin pronti all’uso per velocizzare lo sviluppo.

 

Conclusione

Le esigenze di mercato richiedono che le organizzazioni colgano le occasioni velocemente: per potersi muovere così rapidamente, sono necessarie architetture software agili e flessibili. Uno dei pattern architetturali che garantisce una grande flessibilità è quello della Composable Architecture, nel quale l’architettura finale è data dalla composizione di moduli indipendenti tra loro. Le Composable Architecture garantiscono velocità di sviluppo, riutilizzo di componenti, standardizzazione, flessibilità e scalabilità ma è consigliabile affidarsi a piattaforme come Mia‑Platform per superare le complessità che introducono.

Una Composable Architecture unita a un approccio componibile a 360° (anche chiamato Composable Thinking) permette di trasformare l’intera azienda in una Composable Enterprise capace di reagire velocemente ai cambiamenti richiesti dal mercato.


Questo articolo è stato scritto da Michel Murabito, Developer Advocate di Mia‑Platform.

Torna all'inizio

Mia-Platform Composable Enterprise

© MIA s.r.l. Tutti i diritti riservati