Photo by Alex Machado on Unsplash

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?

  • Serverless
  • Autoscaling
  • 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

Why?

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!

I am a Software Engineer 👨‍💻 that works remotely, builds his own projects, and shares the journey online