JAX 2016 - Im Zeichen des Wandels

Eschborn, 19. Juli 2016

Auch in diesem Jahr war unser Mitarbeiter Nils Müller auf der JAX  und fasst im Folgenden die wichtigsten Beiträge kurz und knapp zusammen.

Schon direkt in der Eröffnungsrede von JAX Program Chair Sebastian Meyen wird deutlich, was die Grundpfeiler der diesjährigen JAX sein werden:

1. Microservices

2. Continuous Delivery

3. Container (Docker)

4. Cloud (Infrastructure als Code)

und dazwischen (als verbindendes Element) DevOps. Das alles im Zeichen des Wandels, denn auch jenseits der Technologien findet eine Veränderung statt: von „Process Excellence“ zu „Customer Experience“ mit der konsequenten Ausrichtung am Kunden. Und hier kommen die Entwickler ins Spiel, die mit ihrem Know-How in Sachen Agilität die Zukunft von Unternehmen aktiv mitgestalten können, Zitat: "Lassen Sie sich nicht die Show stehlen!"

Microservices zur Architekturmodernisierung

Alexander Heusingfeld und Michael Vitz zeigen die Probleme eines Software-Monolithen und dass ein schnell losgetretenes Refactoring nicht immer der beste Weg sein muss, diese in den Griff zu bekommen. Mit aim42 wird eine Methode zur Architekturverbesserung vorgestellt. In den drei Phasen Analyze, Evaluate und Improve kann der Monolith iterativ verbessert werden. Hierzu gibt aim42 Patterns an die Hand. Anschließend wird der „Self-Contained System“ (SCS) Ansatz (http://scs-architecture.org) als Mittel der Wahl vorgestellt.

JavaScript-Frameworks: Wieso überhaupt, und dann welches?

In der Session werden die vier Frameworks Angular, React, Angular2 und WebComponents anhand einer HelloWorld-Applikation verglichen. React und Angular sind einen näheren Blick wert und der Vortrag von Oliver Zeigermann (Autor von „JavaScript für Java-Entwickler“) ist nicht nur kurzweilig sondern auch durchaus unterhaltsam.

Wie Microservices-Ansätze scheitern – fünf Antipatterns

Stefan Toth erläutert in seinem Talk die folgenden Antipatterns:

  • #1 Wiederverwendung - wiederverwendbare Services sind komplexer, haben mehr Abhängigkeiten und erschweren die Wartbarkeit, was den Grundgedanken von Microservices widerspricht.
  • #2 Orchestrierung - resultiert oft in zentral verwalteter Funktionalität (z.B. zum Routing), die zu ähnlichen Problemen führen kann wie in Antipattern #1 Wiederverwendung.
  • #3 Zu wenig Automatisierung - Automatisierung ist Grundvoraussetzung für Microservices. Das korrekte Zusammenspiel mehrerer autarker Microservices lässt sich nur mit ausreichend Automatisierung entwickeln, testen und monitoren.
  • #4 Fertigstellung zu Q4 201x - der Produktgedanke hilft bei Microservices mehr als der Projektgedanke. Das Projekt „Ablösung eines Monolithen“ mit Enddatum und anschließender Übergabe an ein reduziertes Wartungsteam wird zu einer Verwässerung des Systems führen. Der Produktgedanke ist der evolutionären Architektur eines Microservices-Systems dienlicher.
  • #5 „Grenzzaun“ Security - ist zu vermeiden! Microservices oder die Kommunikation zwischen Microservices bieten viele Angriffspunkte. Eine zentrale Autorisierung/Authentifizierung, die am Anfang durchgeführt wird und anschließend alle Freiheiten in der Applikation lässt, reicht nicht aus!

Testen fängt beim Schneiden an

Ein bisschen Produktvision, ein bisschen Personas zum gemeinsamen Verständnis, ein bisschen Story Map, User Story, Akzeptanzkriterien, INVEST Kriterien, ein paar Schnittmuster, Akzeptanztest mit Szenarien und abschließender Doku (und fertig ist der Kuchen; Backen ist ein Steckenpferd von Ina Einemann). Für meinen Geschmack ein bisschen viel Beiwerk zum eigentlichen Thema.

Wie sieht ein Microservices-Technologiestack aus?

Nein, Eberhard Wolff betreibt keine Schönfärberei. In seinem Talk stößt er einen immer wieder auf die Fallen und Hindernisse, die bei der Verwendung von Microservices lauern. Zur Umgehung werden Konzepte und Technologien angeboten. Die letzte Folie fasst den Talk noch mal treffend zusammen: „Microservices create additional technical complexity!“. Das sollte einem bei dem ganzen Hype immer bewusst sein!

Hystrix Warstories

Nach einer kurzen Einführung in Hystrix, zeigen Benjamin Wilms und Felix Braun anhand zweier Projekte, wie sich Hystrix im wahren Leben anfühlt. Interessant hier besonders der Einsatz des „Chaos Monkeys“.

Stream Puzzlers – Nützliches und Verblüffendes im Umgang mit Streams in Java 8

Angelika Langer und Klaus Kreft zeigen mithilfe von Codebeispielen nicht immer ganz offensichtliches Verhalten der Stream-API in Java 8. Klaus Kreft bedient die IDE und Angelika Langer gibt die (wie erwartet) fundierten Erläuterungen. Eine runde Sache.

MEAN-Stack – Durchgängige JavaScript-Entwicklung von der Datenbank bis zum Frontend

In der Session stellt Dr. Norman Lahme-Hütig den MEAN-Stack (MongoDB, Express, AngularJS und Node.js) mittels einer Beispielapplikation vor und zeigt, dass JavaScript durchaus geeignet ist für die durchgängige Entwicklung von Webanwendungen.

Docker - eine Einführung

Der Titel sagt bereits alles. Andreas Hartmann zeigt in seiner Session, wie Docker mit Produkten aus dem Docker-Ökosystem, wie Docker Machine, Docker Compose, Docker Swarm und Docker Kitematic gerade in der Entwicklung sinnvoll eingesetzt werden können. Da bekommt man direkt Lust zum Ausprobieren. 

Kontinuierliche Architekturdokumentation im agilen Umfeld

Um nicht auch in der WYSIWYG-Hölle einer Textverarbeitung oder im tiefen Schlund eines Wikis bei der Architekturdokumentation zu enden, gibt Falk Sippach Tipps, wie aufbauend auf bestehenden Tools und Textformaten eine möglichst redundanzfreie Dokumentation erstellt und für verschiedene Zielgruppen in ansprechenden Formaten ausgeliefert werden kann. Nachdem die Fragen geklärt sind, warum Dokumentation sinnvoll ist und warum auch agile Projekte nicht ohne Dokumentation auskommen, wird noch das Was und Wie der Architekturdokumentation geklärt. Nützliche Tools und Templates, wie zum Beispiel arc42 (Template für Software-Architekturbeschreibung), Marcdown (Auszeichnungssprache zur Dokumentation), Dillinger (Marcdown-Editor), yEd (Tool zur Diagrammerstellung) oder Balsamiq (Wireframing-Tool) werden vorgestellt.

Resilient Microservices

Oliver Wronak zeigt in seiner Session, was Resilient in Bezug auf Microservices bedeutet und welche Anstrengungen unternommen werden müssen, um (Hoch-)Verfügbarkeit einer Microservices-Anwendung zu gewährleisten.

Werkzeugkasten eines Security-Professionals

Mit einem prall gefüllten Werkzeugkasten geht Christian Schneider an die Arbeit. In einem Live-Hack zeigt er, wie sich mit frei verfügbaren Tools Sicherheitslücken aufdecken und ausnutzen lassen. Ein Einstieg über die Weboberfläche bis in App- und DB-Server. Verblüffend und erschreckend zugleich! Folgende Tools kommen zum Einsatz: nmap, CVEDetails.com, Nikto, dnsmap, theHarvester, WS-Attacker, Google Dorks, testssl.sh, OWASP ZAP, Arachni, sqlmap, md5cracker.org, hqlmap, nosqlmap, Lynis, LinuxPrivChecker

Alles in allem war auch dieses Jahr wieder ein gelungenes JAX-Jahr, mit vielseitigem Programm und einer nahezu perfekten Organisation. Wir sehen uns 2017 sicherlich wieder!

Autor: Nils Müller

Kontakt

Nicole Heyne

Marketing

Person_Bild

Telefon +49 6196 80269-28
E-Mail senden