What is a cloud native stack?
The term “cloud native stack” refers to a stack of tools that build on one another and form the basis for developing cloud-native applications. It enables microservices to be bundled into one system. This has some advantages, but is not entirely trivial.
Cloud-native apps offer many advantages. They are highly automated, independent of the underlying infrastructure, largely free of technical requirements at the end user’s workstation, and they can be precisely adapted to current needs. Resources are allocated or withdrawn depending on the situation.
However, this only works on the basis of a combination of different solutions, the so-called cloud native stack . This stack of tools provides the framework for the operation of complex, distributed applications that are delivered, operated and sometimes already developed in the form of microservices in the cloud. Let’s break this down one by one.
Cloud native apps: the sum of microservices
Microservices are a special architecture pattern in the IT area. Actually independent processes are combined into a complex application. However, each of the services remains largely isolated and only performs a small task. What is needed is a language-independent interface that serves as a connection between the individual services.
A cloud structure is particularly well suited for this, as this is the easiest way to connect the services to such an interface. A cloud-native app is the sum of microservices that communicate in a cloud via a language-independent programming interface and thus provide certain services.
It follows:
- The microservices must be combined into a clearly recognizable system and must not be addressed by other applications.
- Depending on your needs, it is possible to add or remove individual microservices.
- What is needed is a structure that can react as quickly as possible to current needs. This means that it must always read out and analyze the latest information.
This results in a distributed application that, despite its complexity, has to be extremely robust. In order to operate cloud-native applications as flexibly as possible but to develop them uniformly, the stack on which they should run is first determined. Thanks to the efforts of the Cloud Native Computing Foundation (CNCF), in which the large cloud operators and tool developers are involved, there is already a whole range of open source components from which a stack can be composed.
Building a cloud native stack
A cloud native stack basically consists of three levels or layers:
- Cluster Scheduler: As a layer, it executes the containers of an application on cloud nodes in the most resource-efficient and reliable manner possible. It determines the necessary resources and makes them available. These can be virtual machines, for example.
- Cluster Orchestrator: As a layer, it controls and monitors the execution of the containers of an app. So he manages the entire application and has to ensure that all operational processes run automatically.
- Application Platform and / or Microservices Framework: This is where the applications and services are implemented and executed. This is the technical infrastructure for app development .
The distributed system services (read: the cloud native apps) use all three layers.
Cloud Native Stack explained graphically
A metaphor should clarify what has been explained above. Countless different processes take place in an office building. Personnel clean the aisles, copy other things, employees distribute mail, etc. – the whole thing is coordinated centrally by a single office as a cloud native stack. This must know which processes have to be carried out (microservices framework), when what has to take place where (cluster scheduler) and how it can be ensured that the processes are repeated automatically (cluster orchestrator). If new processes are to be added or existing ones removed, this can be initiated centrally from the office.