Cos'è il cloud-native

Ripresa media del data center con porta aperta sul rack del server

Cos'è il cloud-native

Cloud-native non si riferisce tanto al luogo in cui risiede un'applicazione, ma più al modo in cui viene creata e implementata. Un'applicazione cloud-native è costituita da componenti discreti e riutilizzabili noti come microservizi, progettati per integrarsi in qualsiasi ambiente cloud.

  • Un'applicazione cloud-native è costituita da componenti discreti e riutilizzabili noti come     , progettati per integrarsi in qualsiasi ambiente cloud.

  • Questi microservizi fungono da elementi di base e sono spesso impacchettati in container.

  • I microservizi interagiscono nel loro insieme per formare un'applicazione, ma ognuno può essere scalato in modo indipendente, continuamente migliorato e iterato rapidamente attraverso processi di automazione e orchestrazione.

  • La flessibilità di ogni microservizio si aggiunge all'agilità e al miglioramento continuo dell'applicazione cloud-native.
Veduta aerea di uno snodo di autostrade

Rimani con la testa nel cloud 


Ricevi la newsletter settimanale Think per una guida esperta sull'ottimizzazione delle impostazioni multicloud nell'era dell'AI.

Microservizi e container

I microservizi (chiamati anche architettura di microservizi) sono un approccio architettonico in cui una singola applicazione è composta da molti componenti più piccoli, accoppiati liberamente e distribuibili indipendentemente come servizi o microservizi. Questi servizi (chiamati anche microservizi) in genere dispongono di un proprio stack, comprensivo di database e modello di dati. Comunicano tra loro tramite una combinazione di API REST, event streaming e broker di messaggi.

Perché i microservizi possono essere implementati e reimplementati indipendentemente, senza influire l'uno sull'altro o interrompere l'esperienza dell'utente finale. Sono la soluzione perfetta per metodologie di distribuzione automatizzate e iterative come integrazione continua/distribuzione continua (CI/CD) o DevOps.

In aggiunta all'essere utilizzati per creare nuove applicazioni cloud-native, i microservizi possono essere utilizzati per modernizzare le tradizionali applicazioni monolitiche.

In una ricerca IBM® tra dirigenti IT, dirigenti degli sviluppatori e sviluppatori, l'87% degli utenti di microservizi ha concordato che l'adozione di microservizi vale la spesa e l'impegno.

Gli sviluppatori spesso implementano microservizi all'interno di container, ovvero componenti applicativi leggeri ed eseguibili che combinano il codice sorgente dell'applicazione (in questo caso, il codice dei microservizi) con tutte le librerie e le dipendenze del sistema operativo (OS) necessarie per eseguire il codice in qualsiasi ambiente. Più piccoli, più efficienti in termini di risorse e più portatili delle macchine virtuali (VM), i container sono di fatto le unità di elaborazione delle moderne applicazioni cloud-native.

I container amplificano i vantaggi dei microservizi consentendo un'esperienza di implementazione e gestione coerente in un ambiente multicloud ibrido: cloud pubblico, cloud privato e infrastrutture on-premise. Ma man mano che le applicazioni cloud-native si moltiplicano, aumentano anche i container e la complessità della loro gestione. La maggior parte delle organizzazioni che utilizzano microservizi containerizzati utilizza anche una piattaforma di orchestrazione dei container, come Kubernetes, per automatizzare la distribuzione e la gestione dei container su larga scala.

Sviluppo di applicazioni

Sali a bordo: sviluppo di applicazioni Enterprise nel cloud

In questo video il Dr. Peter Haumer illustra l'aspetto del moderno sviluppo di applicazioni aziendali nell'hybrid cloud, mostrando diversi componenti e pratiche, tra cui IBM Z Open Editor, IBM Wazi e Zowe. 

Vantaggi e svantaggi

I clienti IBM si trovano sempre più spesso a dover migliorare le applicazioni esistenti, creare nuove applicazioni e migliorare l'esperienza utente. Le applicazioni cloud-native soddisfano queste esigenze migliorando le prestazioni, la flessibilità e l'estensibilità dell'app.

Vantaggi

  • Rispetto alle tradizionali app monolitiche, le applicazioni cloud-native possono essere più facili da gestire man mano che si verificano miglioramenti iterativi utilizzando processi Agile e DevOps. 

  • Composte da singoli microservizi, le applicazioni cloud-native possono essere migliorate in modo incrementale e automatico per aggiungere continuamente nuove e migliorate caratteristiche dell'applicazione.

  • I miglioramenti possono essere apportati in modo non intrusivo, senza causare tempi di inattività o interruzioni dell'esperienza dell'utente finale.

  • Scalare verso l'alto o verso il basso è più facile con l'infrastruttura elastica che sta alla base delle app cloud-native.

  • Il processo di sviluppo cloud-native corrisponde maggiormente alla velocità e all'innovazione richiesta dall'ambiente aziendale odierno.

Svantaggi

  • Sebbene i microservizi consentano un approccio iterativo al miglioramento delle applicazioni, creano anche la necessità di gestire più elementi. Invece di un'unica grande applicazione, diventa necessario gestire molti più servizi piccoli e discreti.

  • Le app cloud-native richiedono set di strumenti aggiuntivi per gestire la pipeline DevOps, sostituire le strutture di monitoraggio tradizionali e controllare l'architettura di microservizi.

  • Le applicazioni cloud-native consentono uno sviluppo e una distribuzione rapida, ma richiedono anche una cultura aziendale in grado di far fronte al ritmo di tale innovazione.

Esempi di applicazioni

Le applicazioni cloud-native hanno spesso funzioni specifiche. Considera come potrebbero essere utilizzate le applicazioni cloud-native su un sito web di viaggio. Ogni argomento trattato dal sito (voli, hotel, auto, offerte speciali) è un microservizio a sé stante. Ogni microservizio può implementare nuove caratteristiche indipendentemente dagli altri microservizi. Le offerte speciali e gli sconti possono essere applicati anche in modo indipendente. Sebbene il sito di viaggi sia presentato ai clienti nel suo insieme, ogni microservizio rimane indipendente e può essere ridimensionato o aggiornato secondo necessità senza influire sugli altri servizi.

IBM Cloud Garage fornisce ai clienti IBM competenze di consulenza per creare rapidamente app cloud-native scalabili e innovative. Offre un hub di innovazione in cui le aziende di tutte le dimensioni possono progettare e creare app che risolvono esigenze aziendali reali.

Principi di sviluppo

Che si tratti di creare una nuova applicazione cloud-native o di modernizzare un'applicazione, gli sviluppatori aderiscono a una serie di principi coerenti:

  • Segui l'approccio architettonico di microservizi: suddividi le applicazioni in servizi a funzione singola noti come microservizi. I microservizi sono accoppiati liberamente ma rimangono indipendenti, consentendo il miglioramento incrementale, automatizzato e continuo di un'applicazione senza causare tempo di inattività.

  • Affidati ai container per la massima flessibilità e scalabilità: i container raggruppano il software con tutto il codice e le dipendenze in un unico posto, consentendo al software di funzionare ovunque. Ciò consente la massima flessibilità e portabilità in un ambiente multicloud. I container consentono anche un rapido ridimensionamento verso l'alto o verso il basso con le politiche di orchestrazione di Kubernetes definite dall'utente.

  • Adottare metodi Agile: i metodi Agile accelerano il processo di creazione e miglioramento. Gli sviluppatori possono iterare rapidamente gli aggiornamenti in base al feedback degli utenti, consentendo alla versione funzionante dell'applicazione di corrispondere il più possibile alle aspettative degli utenti finali.

Storage

Le applicazioni cloud-native si basano spesso su container. Il vantaggio dei container risiede nel fatto che sono flessibili, leggeri e portatili. L'uso iniziale dei container tendeva a concentrarsi su applicazioni stateless che non avevano bisogno di salvare i dati utente da una sessione utente all'altra.

Tuttavia, man mano che sempre più funzioni core business si spostano sul cloud, il problema dello storage persistente deve essere risolto in un ambiente cloud-native. Ciò richiede agli sviluppatori di prendere in considerazione nuovi modi di affrontare il cloud storage.

Proprio come lo sviluppo di applicazioni cloud native adotta un approccio modulare e basato sui microservizi, così deve fare l'archiviazione cloud-native. I dati cloud-native possono risiedere in qualsiasi numero di luoghi, come registri di eventi o di sistema, database relazionali e archivi di documenti o oggetti.

La posizione dei dati, le richieste di conservazione, la portabilità, la compatibilità della piattaforma e la sicurezza sono solo alcuni degli aspetti che gli sviluppatori devono considerare quando pianificano lo storage cloud-native.

Applicazioni cloud-native e tradizionali a confronto

Cloud native e abilitazione per il cloud a confronto

Un'applicazione abilitata al cloud è un'applicazione sviluppata per la distribuzione in un data center tradizionale, ma successivamente modificata in modo da poter funzionare anche in un ambiente cloud. Tuttavia, le applicazioni cloud-native sono progettate per funzionare solo nel cloud. Gli sviluppatori progettano applicazioni cloud-native in modo che siano scalabili, indipendenti dalla piattaforma e composte da microservizi.

Confronto tra cloud-native e cloud ready

Nella breve storia del cloud computing, il significato di "cloud ready" è cambiato più volte. Inizialmente il termine si applicava ai servizi o ai software progettati per funzionare tramite internet. Oggi, il termine è usato più spesso per descrivere un'applicazione che funziona in un ambiente cloud o un'app tradizionale che è stata riconfigurata per un ambiente cloud. Il termine "cloud native" ha una storia più breve e si riferisce a un'applicazione sviluppata fin dall'inizio per funzionare solo nel cloud. Oltre a sfruttare le caratteristiche dell'architettura cloud o di un'app esistente che è stata rifattorizzata e riconfigurata con principi cloud-native.

Confronto tra cloud-native e basato su cloud

Un servizio o un'applicazione basata sul cloud viene fornito su internet. È un termine generico che viene applicato liberamente a qualsiasi offerta cloud. Cloud-native, invece, è un termine più specifico che descrive le applicazioni progettate per funzionare in ambienti cloud. Il termine indica le applicazioni che si basano su microservizi, integrazione continua e distribuzione continua (CI/CD) e possono essere utilizzate tramite qualsiasi piattaforma cloud.

Cloud-native e cloud first a confronto

Cloud first descrive una strategia aziendale in cui le organizzazioni si impegnano a utilizzare prima le risorse cloud quando avviano nuovi servizi IT, aggiornano servizi esistenti o sostituiscono tecnologie legacy. I risparmi sui costi e l'efficienza operativa sono alla base di questa strategia. Le applicazioni cloud-native si integrano perfettamente con una strategia cloud-first perché utilizzano solo risorse cloud e sono progettate per utilizzare al meglio le caratteristiche vantaggiose dell'architettura cloud.

Soluzioni correlate
IBM Enterprise Application Service for Java

Un servizio single-tenant completamente gestito per lo sviluppo e la distribuzione di applicazioni Java.

Esplora le applicazioni Java
Soluzioni DevOps

Utilizza il software e gli strumenti DevOps per creare, distribuire e gestire app cloud-native su più dispositivi e ambienti.

Esplora le soluzioni DevOps
Enterprise Application Development Services

Lo sviluppo di applicazioni cloud significa programmare una volta, iterare rapidamente e distribuire ovunque.

Servizi per lo sviluppo di applicazioni
Fai il passo successivo

I servizi di consulenza per lo sviluppo delle applicazioni IBM Cloud offrono consulenza esperta e soluzioni innovative per semplificare la tua strategia cloud. Collabora con gli esperti di cloud e sviluppo di IBM per modernizzare, scalare e accelerare le tue applicazioni, ottenendo risultati trasformativi per la tua azienda.

Esplora i servizi per lo sviluppo di applicazioni Inizia a creare gratuitamente con IBM Cloud