Magazine

Come realizzare un'evoluzione multicloud in direzione microservizi

08/06/2023
Come realizzare un'evoluzione multicloud in direzione microservizi
Enterprise
Il termine “microservizi” è apparso per la prima volta nel 2005 quando il Dr. Peter Rodgers ha affrontato il tema durante una conferenza sul Web Services Edge. All’epoca, la prima generazione di microservizi era basata sull'architettura SOA, un modulo software “autonomo” che si comporta come un task, permettendo al servizio di comunicare in base a cosiddetti SOAP (Simple Object Access Protocol). L'idea alla base, oggi come allora, è fare in modo che una piattaforma esegua il compito nella modalità più semplice possibile.

Nello scenario attuale, non si può evitare di parlare di microservizi nello sviluppo del web, soprattutto in relazione al multicloud, ossia a quei progetti che devono prevedere modularità, scalabilità e multiutenza. 

Facciamo prima un passo indietro: un microservizio è un modello architetturale che consente alle applicazioni di essere costituite da moduli liberamente accoppiati. Tuttavia, affinché sia davvero funzionale, l’adozione dei microservizi dovrebbe seguire alcune regole:
  • ogni modulo o microservizio ha dati propri e pertanto dovrebbe avere un database indipendente;
  • ogni microservizio dovrebbe essere sviluppato dal proprio team. Ciò non significa che le applicazioni basate su microservizi non possano essere sviluppate in outsourcing, ma avere un team dedicato mostra quanto possano essere indipendenti i microservizi stessi;
  • il processo di distribuzione dovrebbe inoltre essere indipendente e offrire un controllo migliore sulle risorse e sulla potenza di calcolo, in modo da poter ridimensionare ogni servizio in modo autonomo e in base alle esigenze;
  • i microservizi possono essere scritti in linguaggi diversi, ma devono comunicare con un unico protocollo.

Due mondi interconnessi

Cosa c’entra tutto questo con il multicloud?

Il cloud ibrido consente di adottare diversi approcci per la gestione della nuvola. Ad esempio possiamo creare applicazioni principali sul cloud di un fornitore e distribuire alcune sue parti su altre piattaforme; oppure nel caso di un'app progettata per un cloud viene migrata a un altro con modifiche minori. 

Ne consegue che indipendenza, flessibilità e dinamismo sono i concetti chiave che mettono in relazione i microservizi con il multicloud. Il motivo è semplice: è ancora radicata l'idea che l'utilizzo degli attuali strumenti di automazione DevSecOps possa aiutarli a raggiungere la portabilità, automatizzando la creazione e la distribuzione delle macchine virtuali.

Tuttavia, questo processo presenta alcuni difetti. Il primo è che limita l'utilizzo di applicazioni cloud-native e servizi gestiti, comprese le funzionalità di sicurezza. In più, la gestione di una “cassetta degli attrezzi” personalizzata risulterebbe costosa e con forti inefficienze lato manutenzione.

Le sfide legate alla rapidità di implementazione, applicazione di patch e scalabilità riducono il funzionamento e l'efficienza. La soluzione è, dunque, nelle architetture a microservizi che, utilizzando i contenitori, aiutano a distribuire il software in modo indipendente, con la portabilità flessibile necessaria per passare da un ambiente cloud all'altro senza alcuna modifica del codice.

Ne è un esempio Kubernetes, una piattaforma open-source capace di aiutare con l'orchestrazione, la distribuzione, il ridimensionamento e la gestione trasparente dei carichi di lavoro containerizzati. Grazie a Kubernetes, un'applicazione containerizzata, sviluppata su un sistema operativo, può essere facilmente distribuita in un ambiente multicloud, usando le funzionalità indipendenti e migliorando la produttività.

Difficile, non impossibile

La creazione di applicazioni altamente disponibili, scalabili e performanti può essere impegnativa. L'architettura a microservizi offre la possibilità di creare non solo servizi indipendenti, ma anche di creare diversi team per supportare ciascun microservizio, sperimentando l'approccio DevOps. Infine, una strategia ibrida e multicloud può rivelarsi una soluzione solida per ottenere quella flessibilità necessaria per scalare orizzontalmente e verticalmente, con investimenti minimi per modernizzare le app.

La tua organizzazione sta andando nella direzione dell’application modernization? Scopri l’offerta Aruba Enterprise per il cloud native