Suche
Interview mit Roland Kuhn

Reactive Anwendungen bauen: „Das stumpfe Kopieren von Mustern führt nicht zum Erfolg“

Redaktion JAXenter

Roland Kuhn

Reaktive Anwendungen – das ist das Thema in Roland Kuhns Session auf der diesjährigen W-JAX. Wir haben ihn im Vorfeld gefragt, wie diese die gesamte Anwendungsentwicklung beeinflussen – und wie sie sich in die Reihe aktueller IT-Trends wie DevOps und Co. einreihen.

JAXenter: Wir müssen unsere Anwendungen anders designen –  responsiv, wartbar, elastisch, skalierbar. Das sagst du in deinem W-JAX Sessionabstract. Sind diese Werte des reaktiven Manifests also etwas, das sich nicht nur auf einen bestimmten Typus von Anwendungen, sondern im Prinzip auf die gesamte Anwendungsentwicklung beziehen?

Roland Kuhn: Die Gewichtung der genannten Eigenschaften kann je nach Anwendung und Branche verschieden ausfallen, aber im Grunde sind dies universelle Charakteristika. Dies gilt insbesondere für Anwendungen oder Systeme, deren Dienste im weltweiten Internet angeboten werden, aber auch interne Anwendungen in größeren Betrieben oder Konzernen können entsprechend ihrer geschäftskritischen Funktion Anforderungen in diesem Bereich erfüllen müssen. Als Gegenbeispiel kann die auf dem Desktop-PC des Kleinbetriebes ausgeführte Buchungssoftware gelten, bei deren Versagen man mit einer Unterbrechung von Minuten oder sogar Stunden trotzdem nicht aufgeschmissen ist; würde ein solcher Fehler ein größeres Reisebüro lahmlegen, wäre der Schaden jedoch schnell signifikant. In jedem Fall ist es wichtig, sich als Entwickler mit den Stärken und Schwächen eines Programmentwurfes kritisch und bewusst auseinanderzusetzen, und hier geben die genannten Werte eine nützliche Skala ab.

JAXenter: Es gibt in reaktiven Systemen einige Architektur-Muster, die sich immer wieder finden. Kannst du hierfür ein Beispiel nennen?

Roland Kuhn: Ein Wesensmerkmal reaktiver Systeme ist, dass deren Architektur ganz bewusst die Nachrichtenströme modelliert, die in ihnen fließen. Sowohl Elastizität als auch Widerstandsfähigkeit sind nicht zu erreichen, ohne die Funktion über Netzwerkknoten oder Rechenzentren zu verteilen, und in solchen Systemen kommt der Kommunikation zwischen Komponenten eine entscheidende Rolle zu. Die Betrachtung der Nachrichtenflüsse kann als Meta-Muster angesehen werden, es gibt aber natürlich eine ganze Reihe von konkreten Mustern in deren Realisierung, als Beispiel kann der Aggregator gelten: Die zur Beantwortung einer einzelnen Anfrage notwendigen Daten von mehreren nachgelagerten Systemen werden hier in einer kurzlebigen Komponente gesammelt, die das Gesamtresultat schließlich an den Kunden weiterleitet.

JAXenter: Nun gibt es derzeit ja einige neue Trends in der IT, die alte Techniken und Technologien ablösen sollen: Wenn ich einmal die Schlagworte „Microservices, Cloud, Continuous Delivery, Container, DevOps“ nenne – wie reiht sich hier die Idee der reaktiven Anwendungen ein?

Roland Kuhn: Es ist kein Zufall, dass sich die genannten Schlagworte parallel zum Reaktiven Manifest entwickeln: Wir erleben als Softwareindustrie den Übergang von im wesentlichen lokaler und synchroner Datenverarbeitung hin zu verteilten Systemen, die den Globus umspannen und täglich Milliarden Menschen zugänglich sind. Um solche Systeme verstehen, entwickeln und warten zu können, müssen wir sie in kleinere Häppchen zerlegen können, die isoliert voneinander ihren Dienst versehen und getrennt voneinander weiterentwickelt werden können. Microservices sind so die Einheit, die kontinuierlich entwickelt, in Containern verpackt, in die Cloud verteilt und zum Einsatz gebracht werden. Treiber hinter dieser Entwicklung sind die reaktiven Eigenschaften: Antwortbereitschaft, Elastizität und Widerstandsfähigkeit.

JAXenter: Und dann ist da noch das Thema „Big Data“….

Roland Kuhn: Das „Big“ bezieht sich hierbei ja ebenfalls auf die Tatsache, dass die betreffenden Datensätze selbst in den größten verfügbaren Arbeitsspeicher nicht mehr hineinpassen und somit verteilt bearbeitet werden müssen. Die Gründe für das verteilte Rechnen mögen andere sein, aber die Schwierigkeiten, die damit verbunden sind, sind die gleichen wie immer und müssen auf entsprechende Weise angepackt werden.

JAXenter: Worum geht es dir in deiner W-JAX Session im Kern? Welche Botschaft sollen die Besucher auf jeden Fall mit nach Hause nehmen?

Roland Kuhn: Die Kernaussage ist, dass verteiltes Rechnen aus verschiedenen Gründen dabei ist, zur Norm zu werden und dass wir deswegen unser Repertoire and Lösungsansätzen um reaktive Architekturen und Werkzeuge ergänzen müssen. Hier gilt noch stärker als sonst, dass das stumpfe Kopieren von Mustern nicht zum Erfolg führt, die einschlägigen Vorlagen müssen mit Sinn und Verstand und im Wissen um die Eigenschaften verteilter Systeme angewandt werden.

 

Roland Kuhn is leading the Akka project at Typesafe, a co-author of the Reactive Manifesto, co-teaching the Coursera course “Principles of Reactive Programming” and a passionate open-source hakker. He also holds a Dr. rer. nat. in particle physics from TU München and has worked in the space industry for several years. He spends most of his life in the central European timezone.

Verwandte Themen:

Geschrieben von
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.