Cosa si intende per nativo del cloud?
Un'applicazione nativa del cloud è costituita da componenti discreti e riutilizzabili noti come microservizi, progettati per integrarsi in qualsiasi ambiente cloud.
Sfondo nero e blu
Cosa si intende per nativo del cloud?

"Nativo del cloud" fa meno riferimento all'ubicazione in cui risiede un'applicazione e più al modo in cui viene creata e implementata.

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

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

  • I microservizi lavorano insieme come se fossero un tutt'uno per costituire un'applicazione, eppure ciascuno di essi può essere scalato, migliorato continuamente e iterato rapidamente in modo indipendente mediante i processi di automazione e orchestrazione.

  • La flessibilità di ogni microservizio contribuisce all'agilità e al miglioramento continuo delle applicazioni native del cloud.

Nel video "What is Cloud Native?", Andrea Crawford fornisce una panoramica di questi e altri concetti chiave:

Microservizi e container

I microservizi (indicati anche come architettura di microservizi) rappresentano un approccio architetturale in cui una singola applicazione è formata da molti servizi o componenti più piccoli, accoppiati debolmente e implementabili  in modo indipendente. Questi servizi (chiamati anche microservizi) in genere hanno il proprio stack di tecnologia, che include database e modello di dati e comunicano reciprocamente attraverso una combinazione di API REST, flusso di eventi e broker di messaggi.

Poiché i microservizi possono essere implementati e reimplementati in modo indipendente, senza alcun impatto reciproco o interruzione dell'esperienza dell'utente finale, essi rappresentano un abbinamento perfetto con metodologie di distribuzione iterative e automatizzate, quali ad esempio  integrazione continua/distribuzione continua (CI/CD) o DevOps

Oltre ad essere utilizzati per creare applicazioni native del cloud completamente nuove, i microservizi possono essere utilizzati per modernizzare applicazioni monolitiche tradizionali.

In  un recente sondaggio IBM rivolto a dirigenti IT, dirigenti del reparto sviluppo e sviluppatori, l'87% degli utenti di microservizi concorda sul fatto che l'adozione dei microservizi valga la spesa e l'impegno richiesti.

Gli sviluppatori spesso implementano  i microservizi all'interno di container - componenti dell'applicazione leggeri ed eseguibili che combinano il codice sorgente dell'applicazione (in questo caso il codice dei microservizi) con tutte le librerie e  dipendenze  del  sistema operativo  (SO) necessarie per l'esecuzione del codice in qualsiasi ambiente. Più piccoli, più efficienti in termini di risorse e più portabili rispetto alle  VM  (Virtual Machine), i container sono le unità di calcolo  de facto  delle moderne applicazioni native del cloud.

I container amplificano i vantaggi dei microservizi consentendo un'esperienza di implementazione e gestione coerente  in un ambiente di cloud ibrido - cloud pubblici, cloud privato  e infrastruttura on-premise. Col moltiplicarsi però delle applicazioni native del cloud, anche i container e la complessità della loro gestione si moltiplicano. La maggior parte delle organizzazioni che utilizza i microservizi containerizzati utilizza anche una piattaforma di orchestrazione dei container, come ad esempio Kubernetes, per automatizzare l'implementazione e la gestione dei container su vasta scala.

Perché dovresti utilizzare microservizi e container?
Vantaggi e svantaggi

I clienti IBM sono sempre più spesso incaricati del miglioramento delle applicazioni esistenti, della creazione di nuove applicazioni e dell'ottimizzazione dell'esperienza dell'utente. Le applicazioni native del cloud soddisfano queste esigenze migliorando le prestazioni, la flessibilità e l'estendibilità delle applicazioni.

Vantaggi

  • Rispetto alle applicazioni monolitiche tradizionali, le applicazioni native del cloud possono essere più facili da gestire in quanto i miglioramenti iterativi avvengono utilizzando processi di tipo Agile e DevOps.

  • Composte da singoli microservizi, le applicazioni native del cloud possono essere migliorate in modo incrementale e automatico per aggiungere continuamente funzioni applicative nuove e migliorate.

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

  • La scalabilità incrementale o decrementale risulta più facile grazie all'infrastruttura elastica che è alla base delle applicazioni native del cloud.

  • Il processo di sviluppo nativo del cloud corrisponde maggiormente alla velocità e all'innovazione richieste dall'ambiente di business di oggi.

Svantaggi

  • Anche se i microservizi consentono un approccio iterativo al miglioramento delle applicazioni, creano altresì la necessità di gestire un numero maggiore di elementi. Invece di una singola applicazione di grandi dimensioni, diventa necessario gestire un numero molto più elevato di servizi piccoli e discreti.

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

  • Le applicazioni native del cloud consentono uno sviluppo e un'implementazione rapidi, ma richiedono anche una cultura di business che possa sostenere il ritmo di tale innovazione.
Esempi di applicazioni

Le applicazioni native del cloud spesso hanno funzioni piuttosto specifiche. Considera in che modo le applicazioni native del cloud potrebbero essere utilizzate su un sito web di viaggi. Ogni argomento trattato dal sito - voli, alberghi, auto, offerte speciali - è un microservizio a sé stante. Ogni microservizio può implementare nuove funzioni in modo indipendente dagli altri microservizi. Le offerte speciali e gli sconti possono eseguire anche la scalabilità orizzontale in modo indipendente. Sebbene il sito di viaggi venga presentato ai clienti come un tutt'uno, ogni microservizio resta indipendente e può essere scalato oppure aggiornato come necessario senza alcuna ripercussione sugli altri servizi. Di seguito sono riportati alcuni esempi di altre applicazioni native del cloud.

  • American Airlines (2:50) ha collaborato con IBM per creare un'applicazione di modifica delle prenotazioni dinamica, che ha lanciato in un periodo di condizioni meteorologiche avverse. L'applicazione ha migliorato l'esperienza dei clienti fornendo loro maggiori informazioni e un processo di cambio della prenotazione migliorato.

  • XComP Analytics (1:56), una piattaforma di analytics per l'istruzione e la formazione, aveva bisogno di risolvere un problema di analytics ma, mentre interveniva su un singolo problema, è riuscita, grazie alla collaborazione con IBM Cloud Garage, a sviluppare sei nuovi prodotti. La soluzione includeva l'uso dell'architettura di microservizi e il collegamento di IBM Watson per risolvere specifici problemi di analytics.

  • UBank (2:45) aveva l'esigenza di business di migliorare la sua offerta di mutui per l'acquisto di una casa e aiutare i clienti a completare il processo per accenderli. L'applicazione di assistente intelligente dell'azienda, RoboChat, ha risposto a questa necessità ed è stata creata utilizzando la toolchain IBM DevOps. I clienti che hanno usato RoboChat hanno avuto un incremento del tasso di perfezionamento dell'accensione del mutuo del 15%.

  • Un punto critico della ricerca medica è quello di consigliare i medici sulle best practice per l'assistenza ai pazienti. Tuttavia, una ricerca medica da cui emergono le best practice impiega 17 anni per riuscire a entrare a far parte dell'effettiva pratica medica. ThinkResearch  (2:06) utilizza IBM Cloud per fornire le migliori informazioni sanitarie nelle varie fasi del trattamento. Utilizzando l'infrastruttura IBM Cloud e i servizi Kubernetes gestiti, il team ThinkResearch di DevOps può concentrarsi sull'innovazione e sull'assistenza ai pazienti invece che sull'infrastruttura.

IBM Cloud Garage fornisce ai clienti IBM competenze di consulenza per creare rapidamente applicazioni native del cloud scalabili e innovative. Offre un hub di innovazione in cui le aziende di tutte le dimensioni possono progettare e creare applicazioni che risolvono esigenze di business del mondo reale.

Principi di sviluppo

Che stiano creando una nuova applicazione nativa del cloud oppure modernizzando un'applicazione esistente, gli sviluppatori rispettano una serie coerente di principi:

  • Seguire l'approccio architettonico dei microservizi: suddividere le applicazioni in servizi con una singola funzione, noti come microservizi. I microservizi sono accoppiati debolmente ma rimangono indipendenti, consentendo un miglioramento incrementale, automatizzato e continuo di un'applicazione senza causare tempi di inattività.

  • Fare affidamento sui container per ottenere la massima flessibilità e scalabilità: i container includono il software con tutto il suo codice e le sue dipendenze in un'unica ubicazione, consentendo l'esecuzione del software ovunque. Ciò consente la massima flessibilità e portabilità in un ambiente multicloud. I container consentono anche di eseguire rapidamente la scalabilità incrementale o decrementale con 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 aggiornamenti sulla base del feedback degli utenti, facendo in modo che la versione dell'applicazione di lavoro corrisponda quanto più esattamente possibile alle aspettative degli utenti finali.
Storage

Le applicazioni native del cloud fanno spesso affidamento sui container. I container attirano l'interesse perché sono flessibili, leggeri e portabili. All'inizio, l'uso dei container tendeva a concentrarsi sulle applicazioni stateless, che non avevano bisogno di salvare i dati dell'utente da una sessione utente alla successiva.

Tuttavia, lo spostamento sul cloud di un numero crescente di funzioni di business di base ha reso necessario occuparsi del problema dello storage persistente in un ambiente nativo del cloud. Questo richiede agli sviluppatori di prendere in considerazione nuovi modi per avvicinarsi allo storage su cloud.

Proprio come lo sviluppo di applicazioni nativo del cloud adotta un approccio basato su microservizi e modulare, lo stesso deve fare lo storage nativo del cloud. I dati nativi del cloud possono risiedere ovunque, ad esempio in log di eventi o di sistema, database relazionali e archivi di documenti o oggetti.

L'ubicazione dei dati, le esigenze di conservazione, la portabilità, la compatibilità della piattaforma e la sicurezza sono solo alcuni degli aspetti che gli sviluppatori devono prendere in considerazione quando pianificano lo storage nativo del cloud.

Scopri di più sullo storage dei dati nativo del cloud
Confronto tra applicazioni native del cloud e applicazioni tradizionali

Confronto tra i concetti di nativo del cloud e abilitato per il cloud

Un'applicazione abilitata per il cloud è un'applicazione che è stata sviluppata per l'implementazione in un data center tradizionale ma che è stata successivamente modificata in modo da poter essere eseguita anche in un ambiente cloud. Le applicazioni native del cloud, però, sono realizzate per essere utilizzate solo nel cloud. Gli sviluppatori progettano le applicazioni native del cloud perché siano scalabili, indipendenti dalla piattaforma e composte di microservizi.

Confronto tra i concetti di nativo del cloud e pronto per il cloud

Nella breve storia del cloud computing, il significato di "pronto per il cloud" è cambiato diverse volte. Inizialmente, il termine veniva usato per i servizi o il software progettati per funzionare su internet. Oggi il termine viene utilizzato con maggiore frequenza per descrivere un'applicazione che funziona in un ambiente cloud oppure per un'applicazione tradizionale che è stata riconfigurata per un ambiente cloud. Il termine "nativo del cloud" ha una storia molto più breve e si riferisce a un'applicazione sviluppata fin dall'inizio per lavorare solo nel cloud e per avvalersi delle caratteristiche dell'architettura cloud oppure a un'applicazione esistente che è stata sottoposta a refactoring e riconfigurata con principi nativi del cloud.

Confronto tra i concetti di nativo del cloud e basato sul cloud

Un servizio o un'applicazione basati sul cloud sono distribuiti su internet. È un termine generico largamente applicato a tantissime offerte cloud. Nativo del cloud è un termine più specifico. Nativo del cloud descrive le applicazioni progettate per funzionare negli ambienti cloud. Il termine denota le applicazioni che si basano su microservizi, integrazione continua e distribuzione continua (CI/CD, continuous integration/continuous delivery) e possono essere utilizzate tramite qualsiasi piattaforma cloud.

Confronto tra i concetti di nativo del cloud e priorità al cloud

"Priorità al cloud" (o cloud first) descrive una strategia di business in cui le organizzazioni si impegnano a utilizzare in modo prioritario le risorse cloud quando lanciano nuovi servizi IT, aggiornano i servizi esistenti oppure sostituiscono la tecnologia legacy. I risparmi sui costi e le efficienze operative promuovono questa strategia. Le applicazioni native del cloud si abbinano bene a una strategia che dà la priorità al cloud, perché utilizzano solo le risorse cloud e sono progettate per usufruire delle caratteristiche vantaggiose dell'architettura cloud.

Soluzioni correlate
IBM per il nativo del cloud

IBM Cloud è un leader nello sviluppo di applicazioni native del cloud e un partner affidabile per creare rapidamente le tue applicazioni aziendali, su una piattaforma sicura, integrata e aperta.

Esplora IBM per il nativo del cloud
Red Hat OpenShift on IBM Cloud

Implementa cluster Kubernetes completamente gestiti e altamente disponibili per le tue applicazioni containerizzate con un singolo clic

Esplora Red Hat OpenShift on IBM Cloud
IBM Cloud Code Engine

Esegui immagini di container, processi batch o codice sorgente come carichi di lavoro serverless, senza necessità di dimensionamento, implementazione, gestione di rete o scalabilità

Esplora IBM Cloud Code Engine
Risorse Cosa sono i microservizi?

In un'architettura di microservizi, ogni applicazione è composta da diversi servizi più piccoli, debolmente accoppiati e implementabili in modo indipendente.

Cosa sono i container?

I container sono unità eseguibili di software che impacchettano il codice dell'applicazione insieme alle dipendenze delle sue librerie e possono essere eseguiti ovunque, sia sul desktop che sull'IT tradizionale o sul cloud.

Cos'è Kubernetes?

Kubernetes è una piattaforma di orchestrazione dei container open source che automatizza l'implementazione, la gestione e la scalabilità delle applicazioni containerizzate.

Passa alla fase successiva

Negli ultimi 20 anni, IBM ha investito in modo significativo in codice open source, community e governance, tra cui la Cloud Native Computing Foundation.Con più di 20.000 cluster Kubernetes attualmente in produzione e in esecuzione, IBM Cloud è progettato per garantire prestazioni.Fornisce uno dei più elevati standard di settore per la crittografia dei dati e aderisce a più di 30 programmi di conformità.

Esplora il nativo del cloud su IBM Cloud