To answer what is Cloud Native I will need to first explain what does a Native Application mean
Native App is a term known from mobile applications
In short it means a application that was created for a dedicated OS/Phone where it can use some specific features of a particular device
That kind of app will not be executed in a proxy like a web browser but in OS directly
Example of Native Apps
- desktop application (native runtime would be the PC OS)
- mentioned already mobile native app (native runtime would be the phone OS)
- video game running in PS4 console (native runtime would be the gaming console OS)
Ok but how does that relates to the cloud and cloud native which is the subject of this post?
Well a cloud native app will be the app which native runtime environment is the cloud
what does that mean?
Let’s say we decided to build a product that will be designed as a Cloud Native App. Then we will need to build the app in a specific way such that we will know it will use cloud features and take advantage of doing so
What kind of features we can say are native to the cloud?
- Phenix infrastructure
- Limitless access to resources like memory
- Easiness of creating new microservices
- Deployments managed with CI/CD
- frequent releases
- A container-based infrastructure with containers orchestrator (for example Kuberrnetes)
I think a good example is Serverless where you can’t build a Serverless solution without using the Cloud like AWS or Azure
What is a difference between a Cloud Native App and a application that just runs in the Cloud
for example a web app like Wordpress blog that was migrated from some hosting to AWS cloud and now runs in a EC2 machine is not a Cloud Native App although it runs in AWS cloud
because it is not taking advantage of any features native to the cloud
Cloud Native applications are designed to exist in the cloud and to take advantage of the cloud’s benefits
Cloud-native apps are the ones that are originally written for cloud frameworks instead of being ported over to the Cloud as an afterthought
What do you think ? Let me know in comments below to help me improve this article
Thanks for reading!