Per una maggiore flessibilità, le applicazioni Cloud Native si basano su un’architettura orientata ai microservizi: servizi indipendenti tra loro e che comunicano tra loro. Pertanto, le risorse per alcuni servizi possono essere ampliate, mentre per altri no, in base alle esigenze e alla capacità. L’applicazione si adatta all’uso. A esempio, alcune applicazioni richiedono un numero elevato di utenti. Potrebbe esserci ridondanza di servizi che sono puramente accessi web, mentre in altre applicazioni il problema sarà altrove. Il vantaggio del microservizio è di poter adattare il carico secondo le reali necessità.
La soluzione Cloud Native offre API di comunicazione e in particolare API REST, che consentono scambi con il resto del mondo, in particolare nel caso di scambi tra microservizi o layer front-end.
Ottimizza i flussi scambiati. I flussi passeranno attraverso reti esterne. Il loro volume deve essere ridotto al minimo per ottimizzare i tempi di risposta e ridurre i costi. L’applicazione deve essere progettata per ridurre al minimo questi costi. Ad esempio, su un rich client, vengono spesso recuperati volumi di dati molto grandi, mentre il client necessita solo di poche righe. Un’applicazione destinata a un Cloud tenterà di ottimizzare il numero di elementi trasferiti lavorando sotto forma di griglia virtuale.
L’applicazione deve essere progettata per essere testata e distribuita automaticamente attraverso una catena di integrazione continua. Gli interventi manuali sono limitati e le implementazioni possono essere eseguite in modalità multinodo, in modo automatizzato. Questo è l’approccio CI/CD. Questo approccio si basa su linguaggi moderni e dinamici che soddisfano i requisiti del Cloud. Al di là dell’applicazione stessa, il core dello strumento deve anche sapere come affrontare il Cloud.
Infine, un’altra caratteristica dell’applicazione Cloud Native è la gestione della funzione multi-tenant. Poiché l’applicazione viene distribuita per più client che ne condividono l’utilizzo, è essenziale poter separare fisicamente i dati di ciascun cliente. È inconcepibile unire i dati di più clienti. In molte applicazioni, la separazione dei dati è puramente logica; una semplice chiave separa i dati. In caso di intrusione, la persona che riuscirà ad irrompere avrà accesso a tutti i dati di tutti i clienti. Una buona applicazione cloud isolerà i domini di dati di ciascuno dei clienti. Tutto è diviso e separato fisicamente.