Cloud-nativ: Microsoft erklärt die Laufzeitumgebung Dapr für einsatzbereit

Die Versionsnummer 1.0 kennzeichnet die plattformunabhängige, verteilte Laufzeitumgebung als bereit für den produktiven Einsatz im Unternehmen.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 3 Beiträge
Fotografiert man mit geschlossener Blende direkt in die Sonne, entsteht ein Sonnenstern, wie hier bei Sonnenaufgang in den Bayerischen Alpen.Canon EOS 5DS R  16 mm  ISO 100  f/16  1/8 s

(Bild: Denis Linine/Shutterstock.com)

Von
  • Rainald Menge-Sonnentag

Microsoft hat die Distributed Application Runtime (Dapr) in Version 1.0 veröffentlicht und erklärt, dass die Open-Source-Software stabil genug für den produktiven Einsatz im Unternehmen sei. Dapr soll die Einstiegshürde für das Entwickeln und Verwalten verteilter Anwendungen (primär) in der Cloud vereinfachen. Sie zielt auf Microservices-Anwendungen, die wahlweise auf Kubernetes oder einer eigenen Infrastruktur laufen.

Seit der ersten Vorstellung im Oktober 2019 hat das Projekt auf dem Weg zu Version 1.0 insgesamt vierzehn Releases erhalten. Dapr-Anwendungen können in der Cloud, an der Edge oder im Rechenzentrum laufen. In der Cloud lässt sich die Runtime nicht nur auf Microsoft Azure, sondern unter anderem auch auf Amazon Web Services (AWS), der Google Cloud Platform oder Alibaba verwenden.

Die Laufzeitumgebung kümmert sich um infrastrukturelle Aufgaben im Betrieb von Microservices wie State-Management, Bindings und Service-to-Service-Aufrufe. Die Kommunikation mit den eigentlichen Anwendungen erfolgt wahlweise über HTTP oder gRPC.

Dapr spielt mit zahlreichen Frameworks, Sprachen und Cloud-Anbietern zusammen.

(Bild: Microsoft)

Die Microservices können unter anderem in Go, JavaScript beziehungsweise Node.js, Python, Java, .NET, C++ oder PHP geschrieben sein. Neben der generischen Anbindung über HTTP und gRPC existieren für Java, .NET, Python und PHP sowohl Client- als auch Actor-SDKs (Software Development Kits). Ein Client-SDK liegt auch für Go vor, und für C++, Rust und JavaScript ist es jeweils in Arbeit. Details zu den SDKs und Service Extensions finden sich in der Dapr-Dokumentation.

Mit Version 1.0 gilt Kubernetes als primäre Umgebung. Dapr bringt dafür eine Integration der Steuerebene (Control Plane) und der Sidecar-Architektur in die Containerisierungsplattform mit. Über die Dienste dapr-sidecar-injector und dapr-operator lässt sich Dapr als Sidecar-Container in dem Pod bereitstellen, in dem sich der Service-Container befindet.

Auf der Kommandozeile können Entwicklerinnen und Entwickler über die Befehle init beziehungsweise upgrade die passende Dapr-Version kontrolliert bereitstellen. Die Control Plane von Dapr können sie im Hochverfügbarkeitsmodus installieren, um mehrere Instanzen bereitzustellen. Das Dapr-Sidecar stellt in diesem Modus Health-Endpoints zur Abfrage im Kubernetes-Cluster bereit.

Im Juni 2020 sowie kurz vor dem 1.0-Release haben sich zwei unabhängige Security Audits mit der Sicherheit der Laufzeitumgebung beschäftigt, und Microsoft hat die Ergebnisse in der Dapr-Dokumentation verlinkt.

Dapr kümmert sich unter anderem um die Zertifikatsverwaltung und die Verschlüsselung.

(Bild: Microsoft)

Für die sichere Kommunikation zwischen den Microservices verwaltet Dapr die verschlüsselte Kommunikation und stellt X.509-Zertifikate über die Steuerebene bereit. Für die Zugriffskontrolle zu anderen Ressourcen wie State Stores kümmert es sich um passende ACL-Richtlinien (Access Control List). Für das Identitätsmanagement setzt Dapr auf das spiffe-Framework, dessen Name als Akronym für Secure Production Identity Framework for Everyone steht.

Die Ankündigung zu Dapr 1.0 gibt neben den Neuigkeiten einen Ausblick auf geplante Erweiterungen der Plattform. So soll mittelfristig das Abfragen und Filtern für State Stores mit Microsofts Open Data Protocol (OData) möglich sein. Für die Kommunikation via Publish/Subscribe ist ebenfalls das Filtern nach spezifischen CloudEvent-Themen möglich sein. Daneben ist eine API zum Tracen von Events geplant, die das Bereitstellen der Ereignisse über eine Pub/Sub-Schnittstelle ermöglicht.

Wer sich für Dapr interessiert, findet in der Dokumentation einen Leitfaden als Starthilfe. Das GitHub-Repository von Dapr bietet zudem einige Beispiele als Grundlage für eigene Projekte.

(rme)