Skip to main content
Eseguire una migrazione verso un ambiente cloud può garantire all’organizzazione maggiore controllo sulla gestione operativa, in quanto offre la possibilità di scalare le risorse hardware e software in base alle reali necessità, aumentandole nei momenti di picco e diminuendole o addirittura eliminandole quando non servono più.

Per sfruttare i vantaggi, come una maggior flessibilità infrastrutturale e velocità nella delivery del digitale, al meglio è spesso essenziale procedere all’application modernization.

Parlando dell’aspetto architetturale, le applicazioni moderne sono concepite e sviluppate a microservizi, cioè come un insieme di unità funzionali indipendenti, che possono essere aggiunte, modificate o eliminate singolarmente.

In questo modo si possono creare dei mini gruppi di sviluppo, ognuno indipendente e focalizzato su una funzionalità specifica.

Da quali elementi è composta?

Dobbiamo sempre considerare che l’architettura nativa del cloud è caratterizzata dall’utilizzo di container e microservizi. 

Vediamoli nel dettaglio con una breve descrizione.

Il container è, come dice il nome stesso, un contenitore di software, che contiene tutti gli elementi necessari per il funzionamento di un’applicazione.

I container sono quindi ambienti runtime completi ed isolati (assicurando così il funzionamento indipendentemente dall’hardware sottostante e garantendo così la portabilità in ambienti ibridi e multicloud), che si integrano e vengono gestiti tramite sistemi di orchestrazione come Kubernetes.

Possono essere gestiti in modo dinamico e automatizzato, eliminando le complessità che si potrebbero presentare.

L’architettura nativa del cloud è stata progettata per l’uso di microservizi, ovveri servizi piccoli e indipendenti, che eseguono un’azione mirata e precisa.

Essi sono infatti delle unità funzionali che compongono il software come dei mattoncini, e comunicano tra loro tramite un’interfaccia di programmazione (API).

Quando combinata all’automazione, l’architettura nativa del cloud permette di apportare modifiche significative con il minimo sforzo o aggiungere nuove funzionalità senza intervenire su quanto di già esistente.

Pensiamo ad una portale composto da una applicazione tipo wordpress e un database.
Ognuno dei due componenti “vive” nel suo container, ma tramite un orchestratore come Kubernetes possono comunicare: scrivo un nuovo articolo, sto interagendo con il container wordpress, e quando lo salvo, il container wordpress comunica al container database l’azione di persistenza suld DB.
Cosa succede se abbiamo dei picchi di visite? Il container sottoposto ai picchi viene scalato orizzontalmente, cioè viene “clonato” per soddisfare le richieste crescenti; man mano che le richieste diminuiscono, i container creati in più vengono distrutti, sino a tornare alla situazione iniziale.

Cosa succede se vogliamo aggiornare il database? Prepariamo un nuovo container con la versione aggiornata del database, poi elimiamo il container della versione ormai obsoleta del database.

Non è un percorso semplice, ma è necessario e vantaggioso.

Naturalmente non si tratta di un percorso semplice e va affrontato analizzando caso per caso, tenendo conto delle applicazioni, della loro tipologia e della loro criticità.

Infatti non è necessario che tutte le applicazioni tradizionali affrontino degli interventi e delle modifiche massicce. Il passaggio al cloud idealmente avviene in modalità seamless, ovvero senza interferire e bloccare l’operatività del servizio.

Oltre a questo, un’altra strategia per assicurarsi il successo, è lo sviluppo di una roadmap a lungo termine che permetta di gestire in modo efficace le risorse, coinvolgendo sia gli sviluppatori che i PM e le altre figure più funzionali, e condividendo i progressi all’interno del team.

È possibile procedere alla modernizzazioni delle applicazioni in modo graduale, così da consentire ai team di gestire correttamente le prestazioni di quelle esistenti.

L’application modernization in cloud offre vantaggi in tutte le aree dell’organizzazione, rendendo i processi aziendali più efficienti ed efficaci nel lungo periodo.