The simplest response to this question is: this is an application that takes advantage of the Cloud computing services and delivery model.
Cloud Native applications are architected specifically with the Cloud in mind, specifically to run in the elastic and distributed nature required by modern cloud computing platforms. These apps are loosely coupled, meaning the code is not hard-wired to any of the infrastructure components. This also means that the app can scale up and down on demand and embrace the concepts of immutable infrastructure.
We can also refer to the official definition of the Cloud Native Computing Foundation:
Typically, they are based on microservices architectures, they use managed services and they take advantage of continuous delivery to achieve reliability and faster time to market.
It is also important to distinguish the terms “Cloud Computing” and “Cloud Native”. Cloud Computing being the on-demand delivery of infrastructure storage, databases and all kinds of application services via the internet, while Cloud Native is a system architecture that combines Cloud-components in a way that shortens development time, reduces capital costs and better supports the go-to-market process.
In a nutshell, going Cloud Native means optimizing your architecture to take full advantage of a flexible infrastructure and managed services available in the Cloud – provided most often by one of the market leaders per example Microsoft Azure.