www.wikidata.de-de.nina.az
Cloud native Computing ist ein Ansatz in der Softwareentwicklung der Cloud Computing nutzt um skalierbare Anwendungen in Cloud Infrastrukturen Plattformen und Umgebungen zu erstellen und auszufuhren Gemass der Cloud Native Computing Foundation CNCF pragen diesen Remote Computing Ansatz insbesondere Technologien wie Container Microservices sowie serverlose Funktionen und unveranderliche Infrastrukturen Immutable Infrastructures und Infrastructure as Code die zumeist uber deklarativen Code bereitgestellt werden 1 Definition BearbeitenCloud native Technologien ermoglichen lose gekoppelte Software Systeme Cloud native Applikationen die resilient beobachtbar und dank Auto Scaling und Self Healing in automatisierten Umgebungen mit minimaler Interaktion durch Administratoren betreibbar sind Eine Cloud native Anwendung CNA ist ein verteiltes beobachtbares elastisches und auf horizontale Skalierbarkeit optimiertes Service of Services System das seinen Zustand in einem Minimum an zustandsbehafteten Komponenten isoliert Die Anwendung und jede in sich geschlossene Bereitstellungseinheit dieser Anwendung wird nach Cloud fokussierten Designmustern entworfen und auf elastischen Self Service Plattformen betrieben 2 3 Eigenschaften BearbeitenCloud native Anwendungen sind daher oft durch eine oder mehrere der folgenden Eigenschaften charakterisiert Beobachtbarkeit bei Software Systemen bezieht sich typischerweise auf Telemetriedaten die meist in drei Aspekte unterteilt werden Tracing verteilte Ablaufverfolgung ermoglicht Einblick in den Lebenszyklus von Requests in einem verteilten System Metriken im Rahmen eines Monitorings liefern quantitative Informationen zu Prozessen die im System ausgefuhrt werden Mittels Logging Protokollierung lasst sich Einblick in anwendungsspezifische Nachrichten die von Prozessen ausgegeben werden gewinnen Diese Beobachtbarkeit ist insbesondere fur die DevOps Prinzipien des Feedback essentiell Elastizitat ist der Grad in dem ein System in der Lage ist sich an Workload Anderungen anzupassen indem es Ressourcen in einer autonomen Art und Weise provisioniert und deprovisioniert so dass zu jedem Zeitpunkt die verfugbaren Ressourcen so gut wie moglich mit dem aktuellen Bedarf ubereinstimmen 4 Skalierbarkeit kann in strukturelle Skalierbarkeit und Lastskalierbarkeit unterschieden werden Strukturelle Skalierbarkeit ist die Fahigkeit eines Systems sich in einer gewahlten Dimension ohne grossere Anderungen an seiner Architektur zu erweitern Unter Lastskalierbarkeit ist die Fahigkeit eines Systems zu verstehen auch steigendem Datenverkehr bewaltigen zu konnen Service of Services Systeme werden bei Cloud nativen Anwendungen zumeist im Microservice Architekturstil verstanden Dieser Architekturstil versteht eine einzelne Anwendung als eine Suite kleiner Services die jeweils in einem eigenen Prozess laufen und mit leichtgewichtigen Mechanismen kommunizieren Diese Services sind um Geschaftsfunktionen herum aufgebaut und konnen unabhangig voneinander von vollautomatischen Bereitstellungsmechanismen aktualisiert werden Es gibt nur ein Minimum an zentraler Verwaltung dieser Dienste die in verschiedenen Programmiersprachen polyglotte Programmierung geschrieben sein konnen und unterschiedliche Datenspeichertechnologien verwenden polyglotte Datenhaltung 5 In sich geschlossene Bereitstellungseinheiten Deployment Unit sind ein Teil der Deployment Topologie der Anwendung zur Realisierung einer bestimmten technischen Einheit Immer haufiger wird eine Deployment Unit als ein Standardcontainer verstanden Das Ziel eines Standardcontainers ist es eine Softwarekomponente und alle ihre Abhangigkeiten in einem Format zu kapseln das selbstbeschreibend und portabel ist so dass jede konforme Laufzeitumgebung sie ohne zusatzliche Abhangigkeiten ausfuhren kann unabhangig von der zugrunde liegenden Maschine und dem Inhalt des Containers 6 Zustandsbehaftete Komponenten meist Datenbanken werden fur mehrere Instanzen einer skalierten Anwendungskomponente verwendet die ihren internen Zustand synchronisieren um ein einheitliches Verhalten zu bieten 7 Da die Skalierung zustandsbehafteter Komponenten meist aufwandiger ist als die Skalierung zustandsloser Komponenten versucht man Zustande in moglichst wenigen zustandsbehafteten Komponenten zu isolieren Unter einer elastischen Plattform versteht man eine Middleware fur die Ausfuhrung von benutzerdefinierten Anwendungen deren Kommunikation und Datenspeicherung uber eine Self Service Schnittstelle mittels eines Netzwerks angeboten wird 8 Solche gut automatisierbaren Plattformen sind insbesondere fur die DevOps Prinzipien des Flow essentiell Haufig werden Cloud native Anwendungen daher als eine Reihe von Microservices erstellt die in Containern ausgefuhrt werden 9 Sie konnen mittels Container Plattformen wie bspw Kubernetes orchestriert und mit DevOps und Git basierten Continuous Integration und Deployment Workflows verwaltet und bereitgestellt werden Der Vorteil der Verwendung von Containern besteht darin dass die gesamte Software inklusive aller Abhangigkeiten die zur Ausfuhrung benotigt wird in Form in sich geschlossener Bereitstellungseinheiten vorgehalten werden kann Container werden hierzu in virtualisierten Umgebungen Betriebssystemvirtualisierung ausgefuhrt die die enthaltene Anwendung von ihrer Umgebung isoliert Einzelnachweise Bearbeiten Cloud Native Computing Foundation Policy Repo Cloud Native Computing Foundation CNCF 3 Januar 2022 abgerufen am 3 Januar 2022 Kapitel 1 bis 4 Cloud native Computing Abgerufen am 4 Januar 2022 Nane Kratzke Cloud native Computing Software Engineering von Diensten und Applikationen fur die Cloud 1 Auflage Munchen 2021 ISBN 978 3 446 46228 1 Nikolas Roman Herbst Samuel Kounev Ralf Reussner Elasticity in Cloud Computing What It Is and What It Is Not 2013 ISBN 978 1 931971 02 7 S 23 27 usenix org abgerufen am 4 Januar 2022 Microservices Abgerufen am 4 Januar 2022 Open Container Initiative Runtime Specification Open Container Initiative 4 Januar 2022 abgerufen am 4 Januar 2022 Cristoph Fehling Cloud computing patterns fundamentals to design build and manage cloud applications Wien 2014 ISBN 978 3 7091 1568 8 Cristoph Fehling Cloud computing patterns fundamentals to design build and manage cloud applications Wien 2014 ISBN 978 3 7091 1568 8 Sam Newman Building Microservices 2nd Edition 2nd edition Auflage 2021 ISBN 1 4920 3402 9 Abgerufen von https de wikipedia org w index php title Cloud native Computing amp oldid 239326444