Architettura applicativa: perché deve evolvere con il mercato

4 minutes read
10 Novembre 2020

La sfida dell’IT è oggi quella di accompagnare l’evoluzione delle esigenze del mercato e dell’impresa attraverso scelte efficaci a livello dell’architettura applicativa. Per rispondere alle necessità del business e dei clienti, l’IT deve poter reagire più velocemente, intervenendo sulle tecnologie e sulle metodologie per fare in modo che il software sia flessibile e abilitante al processo d’innovazione continua di prodotti e servizi.
Com’è possibile farlo? Certamente non con le applicazioni monolitiche e le infrastrutture rigide che caratterizzavano i sistemi legacy del passato, ma con architetture progettate per l’evoluzione ossia facili da aggiornare e rimodellare al momento del bisogno. In particolare con l’uso estensivo della pratica di containerizzazione (secondo Gartner l’impiego presso le grandi imprese crescerà dall’attuale 30% al 75% già entro il 2022) e il ridisegno delle applicazioni in chiave cloud-native a microservizi.

 

Come è fatta un’architettura applicativa capace di evolvere

Gli specialisti d’Oltreoceano le chiamano evolvable architectures (architetture evolvibili) per distinguerle da quelle tradizionali che oggi frenano, o comunque non sono d’aiuto, al cambiamento. Le architetture applicative sono basate sullo stile architetturale a microservizi e sono pensate per operare al meglio nei moderni ambienti IT virtualizzati e di cloud.

L’idea alla base è creare applicazioni facilmente “smontabili” i cui componenti possono essere riutilizzati in altri contesti o combinazioni, come in un Lego. Sviluppare una serie di microservizi, ciascuno per lo svolgimento di una singola funzione di business (in accordo con il Single Responsibility Principle) permette di guadagnare una considerevole flessibilità di sviluppo ed evoluzione delle applicazioni stesse. I servizi, infatti, possono essere sviluppati, aggiornati e testati autonomamente, seguendo lo specifico ciclo di vita delle funzionalità supportate.

Inoltre, un’architettura applicativa a microservizi presenta grandi vantaggi nell’ambito del deploy: i singoli microservizi possono essere scalati – on premise o in cloud – nella potenza di cui hanno bisogno sfruttando le risorse disponibili.

Per fare questo, le applicazioni a microservizi sono sorrette da infrastrutture basate su container, gestite tramite sistemi di orchestrazione (tipicamente Kubernetes) che automatizzano e rendono agile lo spostamento dei job software tra i sistemi aziendali e da questi ai servizi dei provider cloud.

 

I vantaggi di un’architettura applicativa che evolve con il business

Le architetture applicative a microservizi godono di una maggiore autonomia sia a livello dello sviluppo sia del deploy: come abbiamo visto, i microservizi possono essere singolarmente implementati, dismessi, aggiornati e riutilizzati in altre applicazioni, riducendo così i tempi e i costi di progettazione/sviluppo di ogni nuova realizzazione richiesta dal mercato, dall’evoluzione dei prodotti o delle esigenze dei clienti.
Inoltre, ricorrendo alla pratica della containerizzazione, è possibile semplificare il deploy delle applicazioni su ogni ambiente – on premise, cloud, multicloud o ibrido – ottimizzando i costi.

Tra i vantaggi dello stile architetturale a microservizi troviamo inoltre la possibilità di ottenere una maggiore trasparenza sulle conversazioni tra i vari servizi e sullo stato dei medesimi: una migliore observability che si traduce in una gestione più facile dei problemi delle applicazioni complesse. Gli amministratori possono infatti individuare e risolvere più rapidamente i problemi di performance e di sicurezza, realizzando mitigazioni a livello delle operation e del codice, conciliando quindi la velocità di reazione con l’efficacia nel lungo termine delle modifiche.

Con l’adozione dei microservizi e delle nuove metodologie di sviluppo e deploy è possibile creare architetture applicative capaci di evolvere nel tempo. Al di là delle nuove competenze che i team IT devono acquisire, serve avere una chiara visione sul futuro dell’impresa per fare in modo che i servizi realizzati possano essere utili per gli sviluppi del business

Realizzare un’architettura applicativa capace di evolvere

Abbiamo visto come un’architettura applicativa moderna basata sui microservizi garantisca flessibilità del software e permetta di trarre vantaggio da tutte le risorse disponibili on premise e on-demand, distribuendo i job laddove conviene per ottenere le prestazioni richieste, ridurre i costi o tutelare i dati nel modo più appropriato.

Perché sia possibile, serve creare e gestire ambienti IT virtualizzati, in cloud e ibridi, oltre che adottare le metodologie e strategie più adatte. Per esempio, nell’ambito DevOps – che serve per collegare insieme le attività di sviluppo e operation – il supporto metodologico delle strategie di Continuous Integration/Continuous Delivery (CI/CD) che contribuisce a migliorare la velocità di aggiornamento e la qualità del software applicativo.

Inoltre, i microservizi facilitano l’integrazione delle applicazioni legacy, permettendo alle aziende di essere più agili e sfruttare le soluzioni più avanzate disponibili sul mercato. In concerto con l’acquisizione di nuove competenze e metodi di lavoro, le architetture applicative evolvibili sono oggi necessarie per supportare le esigenze mutevoli dettate dalla digital transformation con i supporti digitali più adeguati.

Mia-Platform Composable Enterprise
Back to start ↑
TABLE OF CONTENT
Come è fatta un’architettura applicativa capace di evolvere
I vantaggi di un’architettura applicativa che evolve con il business
Realizzare un’architettura applicativa capace di evolvere