SAP Business Technology Platform

Was ist Cloud Native?

Cloud Native ist ein Ansatz für Softwareentwicklung und -betrieb, der die Vorteile von Cloud Computing nutzt. Cloud Native basiert auf einem neuen Ansatz zur Erstellung von Unternehmensanwendungen, bei dem es darum geht, wie Anwendungen für den Einsatz in einer Cloud entwickelt und bereitgestellt werden können.

Cloud native Technologien ermöglichen es Unternehmen, skalierbare Anwendungen in modernen, dynamischen Umgebungen zu implementieren und zu betreiben. Dies können öffentliche, private und Hybrid-Clouds sein. Best Practices, wie Container, Service-Meshs, Microservices, immutable Infrastruktur und deklarative APIs, unterstützen diesen Ansatz. Die zugrundeliegenden Techniken ermöglichen die Umsetzung von entkoppelten Systemen, die belastbar, handhabbar und beobachtbar sind. Kombiniert mit einer robusten Automatisierung können Softwareentwickler mit geringem Aufwand flexibel und schnell auf Änderungen reagieren.

Cloud Native Computing Foundation (CNCF)https://github.com/cncf/toc/blob/master/DEFINITION.md

Anwendungen werden immer komplexer, und die Anforderungen der Benutzer wachsen beständig. Diese erwarten schnelle Antworten, innovative Funktionen und keine Ausfallzeiten. Performance-Probleme, wiederkehrende Fehler und die Unfähigkeit, schnell zu arbeiten, verhindern eine dauerhafte Kundenbindung.

Bei traditionellen, monolithischen Anwendungen ist es für Entwickler schwierig, diese für eine Vielzahl von Bereitstellungsinfrastrukturen zu entwickeln. Traditionell bedeuten eng gekoppelte statt lose gekoppelte Komponenten einer Anwendung, dass bei Aktualisierungen die gesamte Anwendung neu kompiliert und an die Benutzer verteilt werden muss. Dadurch wird der monolithische Ansatz ineffizient und schwerfällig. Die cloud native Entwicklung ermöglicht Anwendungen, die mit vergleichsweise geringem Aufwand wartbarer und portabler sind.

Beispielsweise können agile und skalierbare Komponenten wie Container verwendet werden. Container ermöglichen es unter anderem, ihre Anwendung und deren Abhängigkeiten in einem kompakten und versionierbaren Manifest zu hinterlegen, was eine einfache Replikation Ihrer Anwendung zwischen den Entwicklern in Ihrem Team und den Computern in Ihrer Recheninfrastruktur ermöglicht. Dadurch können Sie eigenständige und wiederverwendbare Funktionalität bereitstellen, die über Technologiegrenzen hinweg standardisiert integriert werden kann. Dies ermöglicht es Entwicklungsteams, durch wiederholbare Automatisierung und Orchestrierung schnell zu iterieren.

Bei der cloud-nativen Anwendungsentwicklung kommen in der Regel agile Methoden, Microservices, Cloud-Plattformen, Container, DevOps und Continuous Delivery zum Einsatz. Es findet eine Wechselwirkung zwischen Methode und Technologie statt.

Cloud native Anwendungen entstehen durch die Kopplung mehrerer Microservices. Diese sind also die architektonische Grundlage für die cloud native Entwicklung. Jeder Microservice implementiert eine Geschäftsfunktion, wird in einem separaten Prozess ausgeführt und kommuniziert über eine HTTP-API. Dabei kann jeder Microservice unabhängig von anderen Services entwickelt, bereitgestellt, aktualisiert, skaliert und neu gestartet werden. Typischerweise geschieht das als Teil eines automatisierten Systems. Dies ermöglicht häufige Aktualisierungen kontinuierlich laufender Anwendungen, ohne die Benutzer zu beeinträchtigen.

SAP ILM - SAP DSGVO - Außerbetriebnahme

Durch die Entkopplung der Microservices kann sich ein Entwickler auf die Kernfunktionalität eines Service konzentrieren. Dieser Ansatz führt zu einem effizienten Lebenszyklusmanagement der gesamten Anwendung, da jeder Service unabhängig verwaltet wird.

DevOps ist eine Entwicklungsphilosophie, die eine enge Zusammenarbeit zwischen IT-Entwicklung (Development) und IT-Betrieb (Operations) vorsieht, um eine höhere Softwarequalität sowie eine schnellere und häufigere Testung sowie Bereitstellung von Updates zu erreichen.

Bei Continuous-Delivery-Prozessen kann eine einzelne Anwendungsänderung sofort freigegeben werden, unabhängig von parallelen Änderungsprozessen. Dadurch können Unternehmen häufig und mit weniger Risiko Änderungen bereitstellen und ein schnelles Feedback der Endbenutzer erhalten. Die häufige Bereitstellung neuer Versionen kann als wesentlicher Bestandteil des Geschäftsprozesses der Wettbewerbsfähigkeit des Unternehmens dienen, da von Kunden angefragte Funktionalitäten zeitnah zur Verfügung gestellt werden können. Dabei werden meist Feature Flags verwendet, welche den Zugriff auf neue Funktionen zunächst auf bestimmte Kunden oder Kundengruppen einschränken. Das erlaubt das schnelle erproben und verifizieren von Entwicklungen mit echten Kunden.

Aufgrund dieser zugrunde liegenden Konzepte sollten Sie zu Beginn zumindest ein Platform-as-a-Service-Modell in Erwägung ziehen. In diesem Modell stellt Ihnen der Anbieter eine Abstraktionsschicht für die Infrastruktur zur Verfügung, so dass Sie sich auf die Geschäftslogik Ihrer Anwendung konzentrieren und zugrundeliegenden Komponenten, wie beispielsweise das Betriebssystem, vernachlässigen können.

Eine weit verbreitete und akzeptierte Methode zur Erstellung nativer Cloud-Anwendungen ist die Twelve-Factor-App. Sie beschreibt eine Reihe von Prinzipien und Praktiken, die Entwickler befolgen können, um moderne, für die Cloud optimierte Anwendungen zu entwickeln. Diese Anwendungen:

 

  • minimieren den Zeit- und Kostenaufwand für neue Entwickler, die mit dem Projekt beginnen und dem Ökosystem beitreten, wobei die Einrichtung der Entwicklungsumgebung durch deklarative Syntax automatisiert abläuft;
  • zielen darauf ab, maximale Portabilität zwischen verschiedenen Ausführungsumgebungen zu bieten, indem die Softwareelemente vom zugrunde liegenden Betriebssystem entkoppelt werden;
  • sind für den Einsatz auf modernen Cloud-Plattformen geeignet, wodurch die Notwendigkeit von Servern und Systemadministration entfällt;
  • minimieren die Unterschiede zwischen Produktions- und Entwicklungsumgebungen, etwa durch die Anwendung von Continous Integration, Continous Delivery und Continous Deployment, was den Entwicklern beispielsweise die Fehleranalyse erleichtert;
  • können ohne wesentliche Änderungen an den Tools, der Architektur oder den Entwicklungspraktiken skaliert werden.

Die Zwölf-Faktoren-Methodik kann auf Software angewandt werden, die in irgendeiner Programmiersprache geschrieben wurde und eine beliebige Kombination von unterstützenden Diensten wie Datenbanken oder Nachrichtenwarteschlangen verwendet. Obwohl sie für jede webbasierte Anwendung einsetzbar ist, betrachten viele die Zwölf-Faktoren-Methodik als eine solide Grundlage für die Erstellung von Cloud-nativen Software-As-a-Service-Anwendungen. Systeme, die auf diesen Prinzipien aufbauen, lassen sich schnell implementieren, skalieren und mit zusätzlichen Funktionen ausstatten, um umgehend auf Marktveränderungen reagieren zu können.

Die folgende Liste der zwölf Faktoren dieser Methode, habe ich um drei weitere Faktoren ergänzt, die der Autor Kevin Hoffmann in seinem Buch „Beyond the Twelve-Factor App“ skizziert hat und die weitere Aspekte des modernen Designs von Cloud-Anwendungen widerspiegeln. Wenn Sie an weiteren Hintergrundinformationen über die Zwölf-Faktoren-App interessiert sind, empfehle ich Ihnen einen Besuch der 12-Factor Seite. Für eine detaillierte Erläuterung der insgesamt fünfzehn Faktoren empfehle ich das Buc „Beyond the Twelve-Factor App“ (O’Reilly Media, 2016).

Codebase
Abhängigkeiten
Konfiguration
Unterstützende Dienste
Build, Release, Run
Prozesse
Bindung an Ports
Nebenläufigkeit
Einweggebrauch
Dev-Prod-Vergleichbarkeit
Logs
Admin-Prozesse
API Zuerst
Telemetrie
Authentifizierung/Berechtigung

Auf der Suche nach Unterstützung? Zu unseren Serviceangeboten

Sprechen Sie mit einem Experten

Unsere letzten Blogbeiträge zum Thema SAP Cloud Platform

Hinterlasse eine Antwort