Cloud-native è un approccio allo sviluppo delle applicazioni che sfrutta le tecnologie fondamentali del cloud computing per garantire sviluppo, distribuzione e gestione coerenti negli ambienti cloud ibridi.
Le attuali applicazioni cloud-native sono realizzate da microservizi e distribuite in container che utilizzano Kubernetes, una piattaforma di orchestrazione dei contenitori ampiamente utilizzata.
I microservizi sono componenti applicativi liberamente accoppiati che comprendono un proprio stack, possono essere distribuiti e aggiornati indipendentemente l'uno dall'altro e comunicano utilizzando una combinazione di API REST, broker di messaggi e flussi di eventi.
I container sono attività di esecuzione leggere che "impacchettano" il codice delle applicazioni, come quello dei microservizi, insieme alle librerie e alle dipendenze del sistema operativo necessarie per eseguirlo su qualsiasi cloud o infrastruttura IT tradizionale.
Insieme, queste e altre tecnologie creano una piattaforma potente che può essere sviluppata una volta sola e distribuita ovunque, per offrire nuove applicazioni di cloud ibrido e modernizzare i sistemi tradizionali legacy per l'uso nel cloud. Tuttavia, portano anche a un ambiente di sviluppo complesso che combina ancora più applicazioni software, fonti di dati, linguaggi di programmazione, strumenti e sistemi distribuiti.
Il middleware è in grado di risolvere parte di questa complessità. Tuttavia, l'esecuzione di applicazioni containerizzate con middleware convenzionali può aggiungere complessità come il sovraccarico dell'infrastruttura che i container erano dovevano eliminare. Per questo motivo, le piattaforme di sviluppo di applicazioni cloud includono middleware containerizzato o modularizzato, in modo che solo le funzioni di connettività necessarie vengano ripartite nei container.