Cloud-native ist ein Ansatz zur Anwendungsentwicklung, der grundlegende Cloud-Computing-Technologien nutzt, um eine konsistente Entwicklung, Bereitstellung und Verwaltung in Hybrid-Cloud-Umgebungen zu gewährleisten.
Heutige cloudnative Anwendungen basieren auf Microservices und werden in Containern bereitgestellt, die Kubernetes, eine weit verbreitete Container-Orchestrierungsplattform, verwenden.
Microservices sind lose gekoppelte Anwendungskomponenten, die ihren eigenen Stack umfassen und unabhängig voneinander bereitgestellt und aktualisiert werden können. Sie kommunizieren über eine Kombination aus REST-APIs, Nachrichtenbrokern und Event Streams.
Container sind leichtgewichtige Ausführungsaufgaben, die Anwendungscode, wie z. B. Microservices, zusammen mit genau den Betriebssystembibliotheken und Abhängigkeiten verpacken, die erforderlich sind, um diesen Code auf einer beliebigen Cloud- oder herkömmlichen IT-Infrastruktur auszuführen.
Zusammen bilden diese und verwandte Technologien eine leistungsstarke, einmal entwickelte und überall einsetzbare Plattform für die Bereitstellung neuer Hybrid-Cloud-Anwendungen und die Modernisierung traditioneller Altsysteme für die Nutzung in der Cloud. Sie führen jedoch auch zu einer komplexen Entwicklungsumgebung, die noch mehr Softwareanwendungen, Datenquellen, Programmiersprachen, Tools und verteilte Systeme miteinander kombiniert.
Middleware kann einen Teil dieser Komplexität lösen. Allerdings kann die Ausführung von containerisierten Anwendungen mit herkömmlicher Middleware die eigene Komplexität erhöhen, einschließlich des Infrastruktur-Overheads, für dessen Beseitigung Container konzipiert wurden. Aus diesem Grund umfassen Cloud-Anwendungsentwicklungsplattformen containerisierte oder modularisierte Middleware, sodass nur die erforderlichen Konnektivitätsfunktionen in einen Container gepackt werden können.