Laufzeitumgebung als produktionebereit eingestuft Microsoft gibt Runtime Dapr 1.0 frei

Autor / Redakteur: Dipl. -Ing. Thomas Drilling / Stephan Augsten

Die Distributed Application Runtime, kurz Dapr, vereinfacht das Erstellen von Microservice-Applikationen, die auf Cloud- und Edge-Umgebungen laufen können. Microsoft hat die seit 2019 quelloffen entwickelte Laufzeitumgebung mit Version 1.0 als produktionsbereit eingestuft.

Firmen zum Thema

Die Microservice-orientierte Laufzeitumgebung Dapr hat mit Version 1.0 die Produktionsreife erlangt.
Die Microservice-orientierte Laufzeitumgebung Dapr hat mit Version 1.0 die Produktionsreife erlangt.
(Bild: Microsoft)

Mit Dapr lassen sich recht einfach ereignisgesteuerte Services erstellen, die sowohl zustandslos als auch zustandsbehaftet und in beliebigen Sprachen und Entwicklungsumgebungen programmiert sein können. Seit dem 18. Februar 2021 ist Dapr mit Version 1.0 laut Microsoft für den produktiven Einsatz geeignet.

Mit Dapr können sich Entwickler darauf konzentrieren, Geschäftslogik zu schreiben. Sie müssen nicht die Herausforderungen verteilter Systeme lösen, denn die Runtime kümmert sich um alle die Bereitstellung der benötigten Infrastruktur betreffenden Aufgaben für den Betrieb von Microservices wie z. B. State-Management, Bindings, Service-to-Service-Aufrufe oder das Management von Secrets. Die Kommunikation mit den eigentlichen Anwendungen erfolgt dann wahlweise über HTTP oder gRPC.

Damit verbessert Dapr die Produktivität erheblich und verkürzt Entwicklungszeiten. Die primäre Intention des Dapr-Projektes ist es, die Einstiegshürde für die Entwickelung und Verwaltung verteilter Anwendungen in der Cloud zu senken. Primär adressiert Dapr zwar Microservices-Anwendungen, die auf Kubernetes laufen, eignet sich aber auch für den Einsatz in On Primse-Umgebungen. In der Cloud lässt sich die Runtime aber nicht nur auf Microsoft Azure, sondern auch mit Amazon Web Services und der Google Kubernetes Engine oder unter Alibaba verwenden. Seit der ersten Vorstellung wurde 14 Releases freigegeben.

Mit Dapr entwickelte Microservices können unter anderem in Go, JavaScript/Node.js, Python, Java, .NET, C++ oder PHP geschrieben werden. Außer der erwähnten generischen Anbindung via HTTP oder gRPC stellt Dapr für Java, .NET, Python und PHP auch Client- und Actor-SDKs zur Verfügung. Für Go gibt es ein bisher ein Client-SDK; an Weiteren für C++, Rust und JavaScript arbeitet man laut Dapr-Dokumentation bereits.

Seit der Gründung richtet sich das Open-Source-Projekt Dapr an Entwickler, die neue reale Greenfield-Anwendungen erstellen oder vorhandene Anwendungen und Komponenten in Cloud-nativen Architekturen migrieren und nutzen. In Version 1.0 haben sich die Dapr-Entwickler auf Kubernetes als primäre Hosting-Umgebung für die Ausführung von Produktionsanwendungen konzentriert. Mit zunehmender Reife erwarten die Entwickler, dass Dapr auch in serverlosen Umgebungen eingesetzt wird.

Kubernetes als Produktionsumgebung

Gemäß dem kontinuierlichen Feedback, das Dapr mit Early Adoptors pflegt, bildet Dapr häufig das Kernstück Kubernetes-basierter Produktions- und Vorproduktionsanwendungen. Daher ist Kubernetes in Version 1.0 tief in die Dapr-Steuerebene und die Dapr-Sidecar-Achitektur integriert. So lässt sich Dapr mit Hilfe der Dienste „dapr-sidecar-injector“ und „dapr-operator“ als Sidecar-Container in den Pod injizieren, der die Service-Container bereitstellt.

So wird beispielsweise die betriebliche Installation und Aktualisierung von Dapr auf Kubernetes durch die Dapr-CLI-Befehle „init“ und „upgrade“ vereinfacht, mit denen die richtigen Dapr-Laufzeitversionen abgerufen werden und sichergestellt ist, dass Diese auf kontrollierte Weise eingeführt werden, einschließlich der Migration der verwendeten Zertifikate. Nutzer können den Dapr-Control-Plane im HA-Modus installieren, um sicherzustellen, dass mehrere Instanzen ausgeführt werden und das Dapr-Sidecar über einen Integritätsendpunkt verfügt, mit dem Kubernetes Readyness- und Live-Time-Tests durchführen kann um den Integritätsstatus zuverlässig zu bestimmen können.

Leistung, Konformität und Support

Dapr verfügt über mehr als 70 Komponenten, die von der Community entwickelt wurden. Um das Vertrauen in die Verwendung dieser Komponenten zu gewährleisten, werden sie einer Reihe von Konformitätstests unterzogen. Nur eine Teilmenge der Komponenten ist für die Version 1.0 von GA zugelassen vor allem Solche, die zuvor ausgiebig in Produktion verwendet wurden. Andere sollen hinzukommen, wenn sie die Kriterien erfüllen. Wie bei vielen nativen Open-Source-Cloud-Technologien werden Änderungen, Korrekturen und Verbesserungen schnell eingeführt, was ein fortlaufendes Fenster unterstützter Versionen mitbringt.

Zur Abwehr von Man-in-the-Middle-Angriffen zwischen Anwendungen ist Verschlüsselung obligatorisch, welche Dapr über x.509-Zertifikate ermöglicht, welche wiederrum durch einen Dienst der Steuerebene ausgestellt sowie automatisch erneuert und aktualisiert werden. Um die Zugriffssteuerung für Ressourcen wie State Stores, Geheimnisse, Service-Calls oder die Möglichkeit zum Veröffentlichen/Abonnieren bestimmter Topics bereitzustellen, stellt Dapr zudem differenzierte Zugriffssteuerungsrichtlinien (ACLs) für den Zugriff auf Ressourcen mittels Spiffe als Identitätsstandard bereit.

Zwei unabhängige Security Audits haben sich im Sommer 2020 und noch einmal kurz vor Erscheinen von Version 1.0 mit der Sicherheit der Laufzeitumgebung auseinandergesetzt.

Aktuelle und künftige Entwicklungen

Version 1.0 legt laut Microsoft den Grundstein für die wesentlichen Bausteine, die für die Erstellung moderner nativer Cloud-Anwendungen erforderlich sind. Zu den Highlights gehört beispielsweise die Möglichkeit, mehrere Werte in der Statusverwaltung mit Microsofts Open Data Protocol (OData) abzufragen und zu filtern. Auch für die Kommunikation per Publish/Subscripe unterstützt Dapr das Filtern nach CloudEvents v1.0. So lassen sich beispielsweise Ereignisse herausfiltern, die für den Abonnenten auf Basis des Nachrichteninhalt von Interesse sind.

In Bezug auf die Beobachtbarkeit verhindert die Bereitstellung einer neuen API zum Verfolgen von Ereignissen aus der Anwendung, dass Entwickler sich an bestimmte Überwachungsbibliotheken binden müssen und erlaubt das direkte Abonnieren von Publisher/Subsciber-Ereignissen zur Unterstützung einer Fülle von ereignisgesteuerten Szenarien.

Außerdem wurde Dapr in der Version 1.0 in mehrere Entwickler-Frameworks integriert, darunter ASP.NET Core, Java Spring Boot, Azure Functions und Azure Logic Apps. Dies soll in Zukunft auch bei Open-Source-Frameworks wie Django, Nodejs und Kyma fortgesetzt werden. Angesichts der Unabhängigkeit der Hosting-Plattform von Dapr ermöglicht die Unterstützung der Dapr-Steuerebene auf VMs, Edge-Plattformen (wie Azure Stack Hub oder AWS Outpost) und anderen verteilten Systemplattformen die oben erwähnte Portabilität von Apps.

Zu den neuen Bausteinvorschlägen aus der Dapr-Community gehört auch eine Konfigurations-API zum Lesen und Schreiben von Anwendungskonfigurationsdaten, z. B. von Azure Configuration Manager oder GCP Configuration Management. Ebenfalls für künftige Releases interessant ist ein transparenter Proxy-Baustein für den Dienstaufruf auf Netzwerkebene, mit dem Nutzer Nachrichten basierend auf URLs oder DNS-Adressen empfangen.

(ID:47168785)

Über den Autor

Dipl. -Ing. Thomas Drilling

Dipl. -Ing. Thomas Drilling

IT-Consultant, Trainer, Freier Journalist