Verwaltung macht Zukunft

ThoughtWorks Technology Radar - Teil 2

11:00 31.07.2017

Von André Gode, Chefarchitekt

Was bisher geschah

Im ersten Teil der Serie habe ich die grundsätzliche Idee vom ThoughtWorks Technology Radar vorgestellt und die Bewertungen aus dem Bereich "Techniques" kurz erläutert. In diesem zweiten Teil möchte ich mir aus den übrigen Bereichen ein paar nennenswerte Aspekte herauspicken.

Technology Radar

Plattformen (Platforms)

Auch bei den Plattformen ist festzustellen, dass Amazon sehr präsent ist. Sei es nun das API Gateway, das gerade mit AWS Lambda im Hintergrund eine leichtgewichtige Möglichkeit zur Veröffentlichung von APIs bereitstellt, oder auch die Device Farm zum Testen mobiler Applikationen auf verschiedenen (virtuellen) Endgeräten. Erwähnung findet Amazon auch beim Stichwort "cloudbased image comprehension" mit dem Rekognition-Service zur Bilderkennung. Ich hoffe, die Menschen, die da viel Arbeit reinstecken, verzeihen mir, wenn ich es aktuell noch als "nette Spielerei" mit viel Potenzial abtue, aber für unsere Anwendungsfälle ist die Erkennungsrate noch nicht ausreichend. Wer einen AWS-Account hat, kann ja mal ein paar Testbildchen bei Rekognition hochladen und sich von den Ergebnissen überraschen lassen. :-)

Eine sinnvolle Sache für die Microservice-Welt ist sicherlich OpenTracing. Das ist ein herstellerübergreifender Standard, um in verteilten Systemen nicht den Überblick in den unzähligen Requests zu verlieren und verteiltes Tracing zu ermöglichen. Es gibt Bibliotheken in den bekanntesten Programmiersprachen, so dass auch ein plattformübergreifendes Tracing möglich ist.  Wo wir gerade bei den Microservices sind: Vermutlich kommt dabei niemand um die Querschnittsaufgaben Autorisierung und Authentifizierung herum. Da man so etwas am besten nicht selbst macht, ist also der Einsatz eines Identity und Access Management Systems (IAM) empfehlenswert. Hier gibt es seit einigen Monaten mit KeyCloak ein Opensource-Tool am Markt, das es zumindest als assessable bereits ins letzte Technology Radar geschafft hat. KeyCloak stammt aus dem Hause RedHat kommt mit Schlagworten wie Single Sign On, Social Login, Unterstützung für SAML, OAuth 2.0 und OpenID daher.

Etwas tiefer setzt "Mesos DC/OS" an. Als Plattform zur Containerisierung kümmert es sich in einer Multi-Node-Umgebung um die Verteilung und Organisation von (Docker-)Containern in dieser Umgebung.

Ein absolutes Hype-Thema ist "Ethereum" als neue Crypto-Währung, mit der Möglichkeit selbst Ethereum auf dem eigenen PC zu schürfen - entsprechende Hardware vorausgesetzt.

Letztlich dreht sich bei den Plattformen fast alles um Cloud, öffentliche Services und verteilte Systeme. Hier ist der assess-Bereich deutlich ausgeprägter als er es bei den Techniques war.

 

Werkzeuge

Werkzeuge

Die Bewertung hold wurde im Bereich der Werkzeuge nicht vergeben. Das heißt mit anderen Worten, dass man sich über all die in diesem Bereich genannten Werkzeuge zumindest mal informieren sollte.

... as Code liegt im Trend. Warum nicht auch direkte azyklische Graphen (DAG) as Code mit Airflow? So mancher wird jetzt wahrscheinlich ein Fragezeichen im Gesicht haben. Ging mir auch so. Worum geht's also? Airflow ist eine von Airbnb als Opensource veröffentlichte Workflow Management Plattform im Umfeld von Datenanalysen. Die Jobs, die in so einem Workflow anfallen, lassen sich in einem DAG abbilden. Airflow unterstützt die Datenanalysten mit seinen data pipelines bei Tätigkeiten wie Aufräumen, Verwalten und Befüllen von Datawarehouses, dem Berechnen von Metriken, A/B-Test-Experimente, Search Ranking und einigem mehr. Wer sich mit Datenanalyse in größeren Stil beschäftigt, sollte mal einen Blick wagen.

Auch bei den Tools ist AWS wieder ein mehrfach zu lesender Begriff. Neben dem bereits oben erwähnten Rekognition gibt zum Einsatz von AWS Lambda zwei interessante Tools. Das erste ist das Serverless Framework, das ein SDK auf Basis von Node.js für die Kommandozeile ist und neben der lokalen Arbeit wie dem Scaffolding einer serverless function auch das Deployment in die Cloud anbietet. Das zweite Werkzeug geht in eine ähnliche Richtung, heißt Claudia und soll auch beim Deployment und der Konfiguration von AWS Lambda und API Gateway unterstützen.

Eine, wenn nicht sogar die Herausforderung von verteilten Systemen ist der Umgang mit der komplexen Infrastruktur. Hier können Inspec, Molecule und TestInfra unterstützen - wo es passt sogar im Zusammenspiel. Inspec als Weiterentwicklung von Serverspec im Ruby-Umfeld verfolgt den Slogan "compliance as code" und soll Sicherheitsbeauftragte und Entwickler dabei unterstützen, dass Produktivsysteme auch langfristig sicher sind und den Compliance-Anforderungen genügen. Testinfra soll ebenfalls das Testen von Infrastructure as Code unterstützen und wird als Pendant zu Serverspec in der Python-Welt gesehen. Etwas höher setzt Molecule an, da es sich neben dem Ausführen der eigentlichen Tests (z.B. mit Serverspec oder TestInfra) auch um das vorbereitende Deployment auf VM oder im Container sowie das abschließende Zusammenführen der Testergebnisse kümmert.

Abschließend sei noch Spinnaker erwähnt, dass Netflix gerade als Continuous Delivery-Plattform für Microservices als Opensource veröffentlicht hat. Als Alleinstellungsmerkmale gegenüber anderen CD-/CI-Tools unterstützt es Clustermanagement und das Deployment von baked Images in der Cloud auf alle relevanten Plattformen wie CloudFoundry, AWS und Google Cloud.

Sprachen/Frameworks

Sprachen und Frameworks wird im Wesentlichen von zwei Sprachen dominiert: Javascript und Python.

Überrascht hat mich im Bereich der Sprachen die Einstufung von Python 3 als adopt, also als "zu übernehmen in den Arbeitsalltag". Hier hätte ich erwartet, dass Python 3 bereits seit längeren diesen Status hat. Wahrscheinlich tat sich Python 3 bisher mit der Marktdurchdringung etwas schwer, da es nicht abwärtskompatibel zu Python 2 ist und es auch noch nicht alle Bibliotheken für Python 3 gibt, so dass gerade Bestandsanwendungen weiterhin in Python 2 entwickelt werden. Vielleicht ändert die Einschätzung von ThoughtWorks ja etwas an der bisherigen Zurückhaltung. Denn unabhängig von der Versionsnummer findet Python sehr viel Zuspruch in der Entwicklercommunity. Im Tiobe-Index hat es sich bereits auf Platz 4 vor C#(!) hochgearbeitet. Dies hängt sicherlich mit seiner guten Eignung für maschinelles Lernen und künstliche Intelligenz zusammen. Während es bei den Werkzeugen das in "der Szene" bekannte SciKit-learn aufs Radar geschafft hat, sind es bei den Frameworks Caffe und Keras, die Unterstützung beim deep learning bzw. dem Aufbau von neuronalen Netzen bieten.

In der Javascript-Welt deutet sich (nicht nur im Technology Radar) eine vielleicht vergleichbare "Machtablösung" an: Während AngularJS auf hold gesetzt wurde, wurde Angular 2 mit assess bewertet. Auch hier (vgl. Python 2 vs. Python 3) erschwert die nicht vorhandene Abwärtskompatibilität den Umstieg und damit sicherlich auch die Verbreitung. Als leichtgewichtige Alternative mit Fokus auf den View-Layer hat es Vue.js ins Radar geschafft. Im Internet sind bereits zahlreiche Artikel zu Vergleichen zwischen Angular2, Vue.js, React und Ember zu finden. Gerade die beiden letzt genannten werden im Radar mit adopt bewertet. Hier ist es sicherlich notwendig, vor dem Einsatz eines Frameworks genau zu prüfen, welches aus dem mittlerweile fast unüberschaubaren Dschungel an JS-UI-Frameworks sich am besten für die eigenen Zwecke eignet.

Die JVM-Welt hat einen relativ geringen Anteil in diesem Radar, wohlgleich Java im Tiobe-Index immer noch mit ~13% Anteil auf Platz 1 liegt. Spring Cloud hat es in die Liste der assess-Kandidaten geschafft. Es soll dem Benutzer die Entwicklung (in) einer Microservice-Architektur erleichtern, indem es Anbindungen an zentrale Komponenten wie Service-Discoveries, Loadbalancing, Circuit-Breaker etc. vereinfacht und teilweise vereinheitlicht. So lässt sich sehr elegant der Netflix OSS Stack oder auch bekannte Tools und Plattformen wie Consul, Zookeeper, AWS und CloudFoundry anbinden bzw. nutzen.

Ebenfalls JVM-basiert aber kein Java-Framework ist die Programmiersprache Kotlin. Entwickelt wird Kotlin vom IntelliJ-Produzenten JetBrains unter der Apache 2 Opensource Lizenz und ist z.B. interessant für Java-Entwickler die funktionale Programmierkonzepte einsetzen wollen, denen die Lernkurve von Scala nicht steil genug ist. Da Kotlin in JVM-Bytecode kompiliert, fügt es sich nahtlos in die Java-Welt mit seinen unzähligen Tools und Komponenten ein.

Fazit/Ausblick

Wie eingangs bereits erwähnt ist dies nur ein Ausschnitt aller im 25-seitigen Originaldokument erwähnten Technologien, Plattformen etc.

Was ich bei der Lektüre des Technology Radars immer wieder spannend finde, ist das Stolpern über mir bis dato unbekannte Themen und das anschließende Recherchieren im Internet, was sich eigentlich dahinter verbirgt. Da die öffentliche Verwaltung viele Trends etwas später aufgreift, haben wir meist etwas mehr Zeit haben, Technologien und Methoden zu adaptieren. Wer auch das Glück hat, nicht immer als Erster Cutting-Edge-Technologien erproben zu müssen, dem kann ich nur empfehlen, mal einen Blick ins Radar zu werfen.

André Gode

André Gode

Bei MACH arbeite ich als Chefarchitekt und Gruppenleiter seit 2006.

An meiner Arbeit gefällt mir, dass hinter einer scheinbar sehr trockenen Verwaltungssoftware viele softwaretechnische Herausforderungen stecken.

Besonders spannend finde ich die Architektur von großen Softwaresystemen.

Zurück

Einen Kommentar schreiben

Diese Website verwendet Cookies. weiterlesen