Ab in den Sandkasten: Cosmonic spendet WebAssembly-Runtime an die CNCF
wasmCloud entsorgt Boilerplate, portiert App-Architektur sprachĂĽbergreifend und erlaubt Einklinken von Anwendungen in unterschiedliche AusfĂĽhrungsumgebungen.
- Silke Hahn
wasmCloud, eine verteilte Runtime zum Erstellen Cloud-nativer portierbarer Anwendungen, ist von der Cloud Native Computing Foundation (CNCF) als Sandbox-Projekt akzeptiert worden. Der Herausgeber Cosmonic hatte sich entschieden, das Projekt zur Weiterentwicklung an die Stiftung zu übergeben, da die noch recht junge Technologie inzwischen eine kritische Masse an Entwicklern und Anwendern erreicht, eine stabile Community hinter sich versammelt hat und von mittlerweile zahlreichen Organisationen regelmäßig eingesetzt wird. Damit hat sich wasmCloud für die Aufnahme in die CNCF qualifiziert.
Universell ĂĽbertragbare Anwendungen fĂĽr alle Plattformen
Der technische Leiter des Projekts Kevin Hoffman begründet die Code-Spende an die Stiftung in einem Presse-Statement damit, dass man sich durch Open Source ein weiteres Wachstum der Community und beschleunigte Akzeptanz der wasmCloud-Technologie erhoffe. wasmCloud soll ihm zufolge Boilerplate-Code obsolet machen, das beschleunige die Entwicklungszeit und erleichtere die Wartung. Die so erstellten Anwendungen sollen in zahlreichen Ausführungsumgebungen auf allen Arten von CPUs, Browsern und Betriebssystemen laufen, obendrein in Cloud-Umgebungen, Rechenzentren, im Edge Computing und auf Endnutzergeräten. Hinsichtlich der Leistung betont der Anbieter, dass die Performance nah an eine native Geschwindigkeit heranreiche. Für die Sicherheit der Anwendungen soll ein "Deny-by-Default"-System in der WebAssembly-Sandbox sorgen.
Unter dem Motto "Weder Web noch Assembly" findet eine Online-Konferenz zum portablen, maschinencodenahen Format WebAssembly (Wasm) statt. Am 31. August 2021 fĂĽhren Fachleute vor, was WebAssembly ist und was es Entwicklern bringt. Rust, .NET, C#, Blazor WebAssembly, JavaScript und Flutter stehen ebenso auf dem Programm wie Wasm als Container-Alternative mit WASI und WAGI fĂĽr die Cloud und fĂĽr Serverless. Die Keynote liefert Andreas Rossberg, einer der Key-Designer der Technologie, die mittlerweile ein W3C-Standard ist. Dezentrales Cloud Computing mit Wasm ist die Zukunft.
Hands-on: Crashkurs Blazor Wasm & Wasm-Module mit Rust
- Crashkurs Blazor WebAssembly 6.0: Single Page Web Apps mit .NET und C#, 10. September, 9-17 Uhr
- Wasm-Module fĂĽr den Browser mit Rust, 27. Oktober, 9-17 Uhr
Mehr Informationen hält die Veranstaltungs-Website bereit. Konferenztickets kosten 199 Euro, Workshop-Tickets 449 Euro (alle Preise zzgl. MwSt.). Für Gruppen, Schüler, Studierende und Hochschulbedienstete gibt es einen Preisnachlass.
FĂĽr verteilte Szenarien: Multi-Cloud, Multi-Edge, Multi-Browser
Liam Randall, der Mitgründer und Leiter von Cosmonic, beschreibt wasmCloud im Gespräch mit heise Developer als eine Zukunftstechnologie für das verteilte Computing, unter anderem in Multi-Cloud-Szenarien. Die Herausforderung für Entwickler besteht ihm zufolge darin, dass heute über zwei Milliarden Geräte mit dem Internet verbunden sind, verschiedene CPUs, Kombinationen unterschiedlicher Betriebssysteme und Browser als Ausführungsziele infrage kommen. Anwendungen müssen in möglichst vielen verteilten Szenarien übertragbar sein, und die Sicherheit der Applikationen spielt dabei eine Schlüsselrolle.
Die Plattform bietet Entwicklern die Möglichkeit, auf Boilerplate-Code zu verzichten, der offenbar oft 20.000 Zeilen und mehr ausmacht. Mit wasmCloud lassen sich Randall zufolge mittels Cloud-nativer Technologie und WebAssembly Anwendungen erstellen, die sich in unterschiedliche Multi-Cloud-, Multi-Edge- und Multi-Browser-Umgebungen einklinken lassen.
Ă„hnlich wie Low-Code, doch unter der Haube sitzt Rust
Technisch liegt wasmCloud das maschinenlesbare Code-Format WebAssembly (Wasm) zugrunde, und die Software stellt eine Sammlung von Bibliotheken zur Verfügung, mit denen sich in verteilten Applikationen fähigkeitsgesteuerte Sicherheitsmodelle umsetzen lassen (Capability-driven). Die Codebasis von wasmCloud ist überwiegend in Rust und daneben in anderen Programmiersprachen wie Elixir und TypeScript geschrieben, die Arbeit damit soll sich ähnlich intuitiv gestalten wie bei einer Low-Code-Plattform.
Dabei betont Randall, dass es sich nicht um einen No-Code-Dienst handele, Fachkenntnisse im Programmieren sind offenbar weiterhin erforderlich, um die Microservices sinnvoll in Applikationen zu bündeln. Bei dieser Form des App-Entwickelns spielen allerdings maschinengesteuerte Vorgänge eine größere Rolle als zuvor: Vom Gerät über das Betriebssystem, die Libraries, den Host (WebAssembly) bis zu den Capabilities stelle die Plattform alles zur Verfügung. Die Entwicklungsteams können sich bei diesem Modell auf die Geschäftslogik ihrer Anwendungen konzentrieren.
Von jedem Ort und Gerät auf die gleiche Datenbank zugreifen
Das Konzept besteht darin, dass die Entwicklerinnen und Entwickler von Applikationen mit wasmCloud Features nach dem Plug-in-Prinzip zur Laufzeit in ihre Anwendungen einbauen können – Randall verwendete gegenüber heise Developer zur Veranschaulichung das Bild von Lego-Steinen. Für die sprach- und plattformübergreifende Portierbarkeit in Multi-Cloud-Szenarien sorgen unter anderem in Rust geschriebene Krustlets, die sich in der Wasm-Cloud frei bewegen können. WebAssembly kann ihm zufolge auf jeglicher CPU laufen.
Wer mit wasmCloud Applikationen erstellt, kann die Topologie frei wählen: Die Plattform stellt sichere Netzwerk-Layer bereit, die das Ein- und Ausklinken aus verschiedenen Umgebungen ermöglichen. Die Anwendungen können dabei stets auf dieselbe Datenbank zugreifen und an der Geschäftslogik müssen keine Anpassungen vorgenommen werden, auch ist die Portierbarkeit der Architektur unabhängig von der zugrundeliegenden Programmiersprache, in der die Applikation ursprünglich geschrieben wurde.
Portierbarkeit im Internet der Dinge mit WebAssembly
Laut dem CEO Randall, der aus der theoretischen Informatik kommt und in anderen Projekten zuvor als Lead-Entwickler gearbeitet hatte, ist die Technologie zurzeit insbesondere im Bankensektor, im IoT-Bereich (Internet of Things) sowie überall dort gefragt, wo verteilte Anwendungen eine Rolle spielen, oder um es in seinen eigenen Worten zu sagen: "Anything that has a hard way into users' life." Dabei fungiert WebAssembly (Wasm) als "connective tissue", da es sowohl im Browser als auch im Edge-Computing, aber auch auf Kleinstgeräten im Internet der Dinge lauffähig ist.
Als Referenzkunden nennt Randall unter anderem das britische IT-Beratungsunternehmen Red Badger, das in Unternehmen Backlogs auflöst und schlanke beziehungsweise agile Prozesse einführt. Dabei setzen die Briten unter anderem auf die Programmiersprachen Rust, Go, TypeScript und auf Cloud-native Technologien aus dem Docker- und Kubernetes-Umfeld. Im GitHub-Repository von Red Badger ist eine wasmCloud-Demo für Kubernetes zu finden, die das Migrieren von Actors zwischen verschiedenen Clouds zeigt und mit der wasmCloud-Schicht verschiedene Public-Cloud-Anbieter wie Google Cloud oder AWS einbinden kann. Zum Portfolio gehört so genanntes Chaos-Testing, und mit krustlets sowie wasmCloud lässt sich der Projektbeschreibung zufolge GitOps in die Praxis umsetzen.
Wer sich fĂĽr wasmCloud interessiert, findet weiterfĂĽhrende Informationen auf der Webseite von Cosmonic. Die Projekt-Repositories sind auch auf GitHub zu finden, auf einer Unterseite zur wasmCloud stehen weitere Hinweise, Tutorials und Anwendungsszenarien bereit. Die Software ist fĂĽr Linux, Mac und Windows verfĂĽgbar.
Ăśber wasmCloud von Cosmonic
Cosmonic ist eine Gründung von Liam Randall, der schon lange im Open-Source-Bereich aktiv ist. Das Kernteam von Cosmonic besteht aus 9 Mitarbeitern, und das Unternehmen hat seinen Sitz an der Ostküste der USA. Das Projekt wasmCloud existiert seit zwei Jahren, im Dezember 2020 erfuhr es einen Relaunch. Mittlerweile sind Geschäftsführer Randall zufolge rund 80 Mitarbeiter verschiedener Organisationen an der Entwicklung von wasmCloud beteiligt, und Unternehmen wie die Deutsche Telekom, Volvo, SUSE und Microsoft sowie eine Reihe von Anbietern aus dem Bank- und Finanzbereich, aber auch Firmen der Gesundheitsbranche sind in einer Liste der laut GitHub aktivsten Kontributoren verzeichnet.
wasmCloud ist eines von vier Sandkasten-Projekten der Cloud Native Computing Foundation, die WebAssembly auf Enterprise-Niveau nutzen: Krustlet, Krator und Orcas sind die anderen drei. Wer mehr wissen möchte, kann sich auch die Keynote von Liam Randall und Ralph Squillance (Microsoft Azure) auf der KubeCon Europe aus dem Frühjahr 2021 auf YouTube anschauen ("Cloud Native and WebAssembly: Better Together").
(sih)