Cloud-native è un approccio moderno allo sviluppo e al deployment delle applicazioni che sfrutta la potenza del modello di distribuzione del cloud computing. L'idea è di sviluppare e implementare applicazioni in ambienti dinamici come i public, i private e gli hybrid cloud, dove le risorse sono scalabili in base alle esigenze. Le applicazioni cloud-native sono generalmente containerizzate, distribuite come microservizi con bassa dipendenza che vengono eseguiti nel cloud. Incarnano i principi delle metodologie Agile e DevOps e sono in genere distribuite come pipeline di integrazione continua e continuous delivery (CI/CD). Diamo un'occhiata ad alcune delle tecnologie e dei concetti fondamentali che sono alla base di un'applicazione cloud-native.
Containers
I containers portano la virtualizzazione al livello del sistema operativo. Consentono di creare pacchetti di tutto il codice e delle dipendenze, compresi i file binari, le librerie e i file di configurazione, necessari per l'esecuzione di un processo, di applicazioni o di un servizio. I software containerizzati possono essere eseguiti in maniera affidabile da un ambiente di elaborazione a un altro. Veloci, portatili e leggeri, i containers possono essere orchestrati dinamicamente per ottimizzare le performance e il consumo di risorse.
Architettura di microservizi
Un'architettura a microservizi è un approccio modulare allo sviluppo di sistemi software. Invece di creare una grande applicazione monolitica, si crea una suite di servizi a funzione singola con operations e interfacce ben definite. Questo approccio modulare allo sviluppo delle applicazioni determina un miglioramento della scalabilità, della flessibilità e della testabilità. I containers si adattano naturalmente alle architetture di microservizi.
DevOps
DevOps è una combinazione di metodologie, tecnologie di automazione e best practices volte a snellire il ciclo di vita dello sviluppo del software migliorando l'integrazione e la comunicazione tra i team di sviluppo e operativi, con l'obiettivo finale di realizzare una CI/CD pipeline per accelerare lo sviluppo e il deployment dei prodotti. I containers possono contribuire a semplificare e accelerare il processo di sviluppo, test e deployment.
Maggiori informazioni sulle applicazioni cloud-native.