Is your app native or agnostic… or both?
There is certainly no dispute that cloud applications are a must. Those created for on-premise operations are being reprogrammed and the new ones are being tailored specifically to the cloud. Can inefficiency still occur?
In this article, we will not focus on the possibilities of how to turn an on-premise application into a cloud service – that is a story for another conversation (which we will be happy to conduct with you personally).
Rather, we’ll focus on cloud application architecture and how to customize it to meet your team’s exact requirements. And in that case, we have to hone in on the area of cloud-native and cloud-agnostic applications. Terrible words, but you will see that they are worth recognizing.
What is a cloud native application?
First, we will focus on the aspect of the chassis on which the application runs. We have already mentioned applications that were prepared for an on-premise environment and then reworked to be delivered as a Service (for example, SoftLi took this route).
But that’s not a cloud native approach. The original environment for which the application was adapted was the physical infrastructure. In order for an application to be considered cloud native, it must be developed with the ability to operate in the cloud from the beginning.
Its individual components are built on cloud services and together form a whole that is at home in the cloud. Thanks to this, we are looking at very significant advantages:
- Efficient handling of computing resources
- Simple environment optimization
- Easy scalability as needed
But then there are advantages that no longer apply in general, and thus we enter the category of cloud agnostic applications.
What is a cloud agnostic application?
This is where we get into a bit of terminology trouble. Although all applications built for the cloud are referred to as cloud native, we also refer to those built for a specific cloud platform as cloud native. For clarity, we will refer to this second category as closed cloud native.
So if its opposite is a cloud agnostic application, it is an application that doesn’t really care on which cloud chassis it runs. It is not dependent on specific proprietary technologies of one provider.
Nowadays, these applications are increasingly being built on containerization platforms – Docker or Kubernetes – which give them all the advantages we mentioned for native applications, plus all the advantages of containers.
Thanks to this, these applications do not have to avoid different cloud providers, but even provide the freedom to use a multicloud environment.
Are closed cloud native apps bad?
Generally speaking – no. It may be that for a particular company and their particular application, a particular vendor provides such proprietary services that the benefits of technology lock-in outweigh the benefits.
But notice how many times the word specific or proprietary/locked appears in the previous paragraph. This is because each application is an individual solution that has individual requirements. So it cannot be said in general that closed cloud-native applications are bad. Likewise, it cannot be said that cloud agnostic is always the best solution.
So should you choose native or agnostic?
This decision is entirely up to you. But you need to consider how you want the application to work, which parameters are a priority for you and how you want the application to develop. Because moving a fully developed closed cloud native application into an agnostic coat later is a nightmare.
Each of these approaches is focused on certain benefits. Your task is to find the one whose benefits exactly match your goals.
We will say goodbye to you with a clear table of concepts that we mentioned in this article. As is sometimes the case in IT, it is not always clear what each term refers to.
So don’t get lost right at the beginning of the search for a suitable approach for your new application.
Name | Alternative name | Includes |
Cloud native | – | Application development for operation in the cloud |
Cloud native | Closed cloud native | Application developed to run on specific proprietary technology/technologies |
Cloud agnostic |
Open cloud native | An application developed for the cloud regardless of the chassis provider |