Uncategorized

What does cloud native actually mean?


No time right now?

Cloud Native is considered the contemporary design principle for modern and dynamic applications. But why and how exactly do cloud-native technologies lead to the best possible use of the clouds?

There are numerous paths to the cloud and different opinions about the phases of adaptation. But the market agrees on one point: “Cloud Native” is the last leg of the journey. Only in the supreme discipline of software development and migration of applications can all the advantages of the cloud be used.

But what exactly is Cloud Native?

In simple terms, one could say: the more platform services in the cloud the application uses, the closer it comes to being in the cloud-native state. The Cloud Native Computing Foundation (CNCF) gives a somewhat more complex definition of the term: “Cloud-native technologies enable companies to implement and operate scalable applications in modern, dynamic environments. These can be public, private and hybrid clouds. ”Best practices such as containers, service meshes, microservices, immutable infrastructure and declarative API support this approach.

In essence, it is about developing modern applications with agile methods – and making them available in one or more clouds in a dynamic, scalable and fault-tolerant manner. It is important that the architecture is modular and flexible. Microservices form the basis here. Software is developed in smaller, independent units that can be updated more granularly and delivered faster.

The big players are leading the way

One of the pioneers of this approach is Netflix. The streaming provider realized that operating a global video platform in the age of public clouds does not require its own infrastructure. Instead, Netflix went “all in” early on and over the years developed one of the largest cloud-native applications in the world. In retrospect, the use of Amazon Web Services as a platform has probably made the Netflix growth possible in recent years. Because in addition to the rapid scaling of resources, the globally standardized interfaces played a decisive role. In this way, the same code could simply be rolled out in other countries without any adjustments – an immense time and cost saving.

Almost finished!

Please click on the link in the confirmation email to complete your registration.

Would you like more information about the newsletter? Find out more now

Another success factor was that Netflix developed its service from scratch as part of the cloud migration and used as many native services from AWS as possible. If Netflix had tried to transfer its application from the existing infrastructure one-to-one to the cloud, the problems from the data center would have moved with it.

The problem with the lock-in – and possible solutions

The dependency on the chosen platform is often cited as an argument against the cloud-native approach. If, for example, you opt for AWS and the serverless database Dynamo-DB, like Netflix, you can only switch to another cloud with a great deal of effort. The problem is the different syntax for database queries. If you move, it means that large parts of the code have to be rewritten or at least rewritten.

The use of containers can help here. Because in addition to cost savings, the greatest advantage of containerized applications is that they are portable and can run anywhere. Kubernetes / K8s in particular, the container orchestration solution from Google, can be used flexibly throughout. The interfaces to the developer or devops engineer remain the same – regardless of which cloud the application ultimately runs on.

Would you like a little less? Functions-as-a-Service

In addition to these container-based services (CaaS), the large public cloud providers also have Function-as-a-Service (FaaS) and Platform-as-a-Service (PaaS) offers, which are also for cloud-native applications are suitable.

With FaaS services such as Lambda, Google Cloud Functions or Azure Functions, code snippets in the form of functions of a programming language are uploaded to the platform and linked. This approach is also known as serverless, as you no longer have to worry about servers and their operating systems during operation.

Serverless architectures are “pay as you go” in perfection and particularly suitable for heavily fluctuating loads. As long as no functions are performed, there are no costs. However, in order to be able to use these FaaS offers effectively, existing apps have to be broken down into their individual parts (functions) and rewired or completely rewritten.

The vendor lock-in is again high at FaaS – you are initially “trapped” in the respective cloud. Various initiatives have therefore taken up this topic: All layers are combined with one another: IaaS, PaaS and FaaS. K8s enables FaaS to be used on any Kubernetes-enabled cloud. The application remains portable and can be operated on a different cloud at any time.

However, the cloud-native concept not only includes the development process, but also the rollout of new application versions. Cloud native apps rely exclusively on continuous integration and continuous delivery: so-called delivery pipelines are completely automated and provided with autonomously running tests so that the developer can push his application into the cloud at the push of a button.

Safety first!

Such CI / CD pipelines can also have a positive effect on security. With automated checks for weak points in the code or classic programming errors before each deployment, the code quality can be significantly increased without much effort.

In general, cloud native applications are often more secure than their classically operated predecessors. Because apart from the security of the application, for which the developers are responsible, with the FaaS and PaaS models, large parts of the operational responsibility are transferred to the operators of the platforms. This means that in-house teams no longer have to worry about the security of the operating system and the timely application of patches.

In general, one speaks here of the four Cs:

  • code
  • Container
  • Cluster
  • Cloud

So there is a shared responsibility between cloud customer and provider. That’s a good thing, because many developers only have experience with the code. But in order not to experience a nasty surprise, the other three Cs must also be covered. It is important, for example, to carry out version upgrades that have to be confirmed promptly, since the changes are often significant and security-relevant, even with small version jumps.

Conclusion

Cloud Native offers a high degree of flexibility and enables you to take full advantage of the cloud. There are various alternatives for transforming your own applications. A company has to weigh up which approach meets its specific requirements and what weighting the different factors have on the way to the cloud.

Most read

Leave a Reply

Your email address will not be published. Required fields are marked *