A cloud application is one which you access over the internet and not your own computer’s hard disk. Today, everyone seems to be moving to the cloud. Cloud products are the latest in technology trends and all companies seem to be having some offering or the other on “cloud”. But it is important to be able to analyze for ourselves, if the product is really cloud – cloud-based/cloud-ready or cloud-native/cloud-centric?
A cloud based or a cloud ready application is one which was born was on-premise deployment but has been later “prepared” to run on cloud. Any application is born cloud-ready. But just dropping a tweaked on-premise application onto a public cloud will help only to a certain point. Because it’s landscape will include many servers and virtual machines which are connected by a unique network topology with load balancing and firewalls using different forms of storage with tiering and backup mechanisms and these are all choreographed to work in a unique manner with a unique set of rules!
So what is the problem with this approach? To understand why this is not the best path to reach the cloud, we need to understand the inherent features of cloud.
As we move more and more towards a server-free architecture, a cloud based or cloud readied application would not be able to take complete advantage of these features, would not be able to deliver optimal performance on cloud and hence would not be really “cloud”.
With this realization comes the awareness that we need to create a cloud-native or a cloud-centric application – application which are built to run solely on cloud.
Identifying Cloud Native Applications
Let us have a look at how we can identify a cloud native application vis-à-vis a cloud based application, because a prima facie check shows that both will “look” very similar to each other.
Principles of Building Cloud Native Applications
Why Cloud Native Applications?
A true cloud native application consists of well-orchestrated microservices which are never offline and the application can shrink and grow real-time on-demand. They are created as easily redundant applications – automatic recovery from server failure by re-mapping IP addresses because the application is not tied to a particular hardware topology.