• Livestream: Integrationstests mit Docker und Testcontainern (Kevin Wittek)

    ++++++++++++++++++++++ Hier geht's zum Livestream: https://youtu.be/hY7a5eN3oEk ++++++++++++++++++++++ Unit-Tests sind okay, aber ohne ordentliche Integrationstests wissen wir nicht, wie sich unsere Anwendung nach der Bereitstellung in der realen Produktionsumgebung tatsächlich verhalten wird - insbesondere, wenn wir mit externen Ressourcen wie Datenbanken und anderen Diensten arbeiten. Vor Docker war die Konfiguration der Testumgebung für Integrationstests schmerzhaft: Wir verwendeten gefälschte Datenbankimplementierungen, verspotteten Server und unsere Tests waren zumeist nicht plattformübergreifend. Dank Docker können wir die Umgebung heute schnell auf unsere Tests vorbereiten. In diesem Vortrag zeigt Kevin, wie wir Testcontainer verwenden können. Dazu stellt er die beliebte Java-Testbibliothek vor, die Docker nutzt, um Testabhängigkeiten einfach und zuverlässig zu verbessern. Link: https://github.com/testcontainers/testcontainers-java Wir werden sie ausprobieren, indem wir sie mit einem Spring-Boot-Microservice verwenden und gegen echte PostgreSQL- und MongoDB-Datenspeicher testen, wir werden sie von anderen Microservices isolieren, dann Selenium-Browser in Docker starten und unsere Anwendung durchtesten - alles mit der gleichen Bibliothek! Speaker: Kevin Wittek, Testcontainers-Co-Maintainer und Testcontainers-Spock-Autor, erhielt den Oracle Groundbreaker Ambassador Award für seine Verdienste um die Open Source Community. Sein Herz gehört seit Langem FLOSS und er sagt, er habe sich wegen Spock zudem in TDD verliebt. Kevin versteht sich als Software-Handwerker und Testfan. Schon während seiner Studienzeit gründete Kevin sein eigenes Unternehmen und entwickelte dort mobile Apps und Client-Server-Anwendungen, die ihn mit Grals und dem Groovy-Ökosystem bekannt machten. Nach langjähriger Tätigkeit als Ingenieur für die Industrie promoviert Kevin nun am Institut für Internetsicherheit und leitet ein Forschungsteam im Bereich der Blockchain-Technologie. In seinem zweiten Leben spielt Kevin spielt E-Gitarre und ist Musiker.

  • Livestream: Datenbanktuning für Entwickler (Steve Ulrich)

    ++++++++++++++++++++++ Hier geht's zum Livestream: https://youtu.be/MTr5tuGaEic ++++++++++++++++++++++ Die Platten rotieren, die CPU glüht - und trotzdem sind die Datenbankabfragen zu langsam? Keine Sorge, deshalb muss nicht gleich das Datenbanksystem gewechselt oder mit neuer Hardware aufgerüstet werden! Stattdessen reicht ein gezieltes Tuning an wenigen, aber den richtigen Stellen. Dieser Vortrag vermittelt die nötigen Grundlagen für ein solches Datenbanktuning und beantwortet folgende Fragen: - Welche Performancebremsen gibt es? - Welche Möglichkeiten hat eine Datenbank eigentlich, um zu optimieren? - Wie wähle ich die richtige Optimierung aus? - Wie wählt die Datenbank die richtige Optimierung und was mache ich, wenn sie das nicht tut? - Wie kontrolliere ich das Ergebnis? Zum Speaker: Seit rund zwei Jahrzehnten weist seine Jobbezeichung Steve Ulrich als Softwareentwickler aus. Dabei hat er in dieser Zeit nicht nur entwickelt, sondern Pflege und Betrieb ganz unterschiedlicher Softwarelösungen aktiv mitgestaltet. Als Scrum Master hat er außerdem agile Teams auf Kurs gehalten und seit ein paar Jahren verstärkt den Fokus auf Datenbanken gelegt – aus seiner Sicht einem der wichtigsten Teile von IT-Lösungen, deren Bedeutung aber leider oft verkannt wird. Das möchte er ändern.

  • Live-Streaming in Prüfung: Cloud Native FaaS Lebowski (Mario-Leander Reimer)

    HINWEIS ++++++++++++++++++++++++ LIVE STREAM HIER: https://www.bigmarker.com/cyberland/JUG-Hessen-Cloud-Native-FaaS-Lebowski-Mario-Leander-Reimer?show_live_page=true HINWEIS ++++++++++++++++++++++++ Liebe Java-Freunde, aufgrund der Corona-Krise prüfen wir gerade die Möglichkeiten eines Live-Streamings für diesen Talk. Unsere JUGH-Botschafter Seppel und Johannes werden euch dazu hier auf dem Laufenden halten. Herzliche Grüße im Namen der JUGH & bleibt gesund! Jule +++++++++++++++++++++++++++++++++ Vor nicht allzu langer Zeit war das Aufkommen von Mikroservice-Architekturen eine große Störung im Software-Engineering: Systeme wurden nun als autonome Dienste gebaut, komponiert und betrieben. Aber das ging nur zum Preis zusätzlichen Komplexität. Serverless und FaaS scheinen die nächste Störung zu sein. Sie sind eine logische Weiterentwicklung, die der inhärenten technologischen Komplexität Rechnung trägt, mit der wir bei der Entwicklung nativer Cloud-Anwendungen konfrontiert sind. FaaS-Frameworks und Plattformen schießen derzeit wie Pilze aus dem Boden: Knative, OpenFaaS, Fission oder Nuclio sind nur einige Beispiele. Aber welches davon ist geeignet für dein nächstes Projekt? Und ist es eine Alles-oder-Nichts-Entscheidung oder auch für hybride Architekturen brauchbar? Lasst es uns herausfinden! Ziel des Vortrags: - ein gutes Verständnis der Serverless-Architektur und des FaaS-Programmiermodells - ein Kriterienkatalog mit wesentlichen Merkmalen zur Auswahl einer geeigneten FaaS-Plattform - ein Überblick über das Ökosystem der nativen FaaS-Plattform der Cloud - mehrere Arbeitsvitrinen, die Sie mit nach Hause nehmen und mit sich selbst experimentieren können Erforderliche Publikumserfahrung: Grundlegende Programmierkenntnisse und Erfahrungen mit Microservices und nativer Cloud-Technologie sind von Vorteil.

    1
  • Vault in Action (Dominik Schadow)

    Micromata GmbH

    Weg mit den fest hinterlegten Zugangsdaten im Applikations-Code! Dafür gibt's nämlich was Kostenloses von HashiCorp: Vault. Das initiale Setup von Vault erfordert erstaunlich wenig Aufwand und bietet per Default bereits eine Menge Schutz für sensible Daten. Dafür muss sich die Webanwendung gegenüber Vault irgendwie authentifizieren und autorisieren und sie darf nur Zugriff auf „ihre“ Credentials erhalten. Wer das geschafft hat, kann zusätzlich den nächsten Schritt tun und je nach Datenbank bzw. Cloud einige statische Zugangsdaten durch dynamische ersetzen: Credentials zur Datenbank oder in die "Cloud“ werden dabei bei Bedarf dynamisch erzeugt und unmittelbar nach der Nutzung automatisch invalidiert. Die Session stellt Vault in unterschiedlichen Szenarien vor und zeigt, wie Webanwendungen von diesem Tool profitieren können. Neben der dazu notwendigen Authentifizierung und Autorisierung gegenüber Vault geht es auch um die Umstellung von statischen auf dynamische Geheimnisse und darum, welche weiteren Möglichkeiten Vault für den Entwickler von Spring Boot basierten Webanwendungen bietet.“ Zielgruppe sind Java-Entwickler und -Architekten, wobei Vault nicht bekannt sein muss. Dauer wären dann 60-90 Minuten inkl. Fragen (kann dann ja auch mehr werden je nach Publikum).

  • JUnit 5 - Testing In The Modular World (Christian Stein)

    Ing.-Schule Universität Kassel, Raum HS 0315

    Das mit Java 9 eingeführte Java Platform Module System (JPMS) stellt neue Herausforderungen an die Organisation und Durchführung automatisierter Softwaretests. Das Auffinden von Tests und deren Ausführung über die Reflection-API ist weiterhin möglich, erfordert aber eine zusätzliche Konfiguration. JUnit 5 unterstützt das Scannen nach Tests in Modulen seit 5.1 und verfügt über ein Beispielprojekt, das drei mögliche Ansätze zeigt. Der Vortrag beginnt mit einer grundlegenden Einführung in JUnit 5 und das Java-Modulsystem, bevor die drei Ansätze zur Durchführung von Tests bei Verwendung des JPMS von der Kommandozeile aus vorgestellt werden: Rückgriff auf den Klassenpfad Patchen von Test-Binärdateien in Hauptmodule zur Laufzeit Patchen von Hauptquellen in Testmodule zur Kompilierungszeit Es schließt mit einem Ausblick: Gibt es Abweichungen oder andere Ansätze? Wie unterstützen Sie Build-Tools? Was sind Best Practices in IDEs? Viel Spaß beim modularen Testen! Über den Speaker: Christian ist ein Open-Source-Softwareentwickler, der seit 1998 mit Java programmiert. Er hat eine Leidenschaft für automatisiertes Testen und kam 2017 zum Kernteam von JUnit, ist aktiver Apache Maven-Entwickler und erhielt 2019 den OpenJDK-Autorenstatus. Er lebt in Bonn und arbeitet für die MICROMATA GmbH.

  • ENTFÄLLT: Der Architekt - gibt es den wirklich? (Jochen Mader)

    Ing.-Schule Universität Kassel, Raum HS 0315

    Der Begriff "Software-Architektur" löst bei Entwicklern oft verschieden Varianten allergischer Reaktionen hervor. Trotzdem gilt: Jeder Software liegen architektonische Entscheidungen zugrunde. Wir treffen diese, mehr oder weniger bewusst, täglich. Das geht bei der Wahl einer API (Fancy-Streams oder Oldschool-for-Loops?) los und hört nicht mit der Entscheidung für eine Datenbank auf. Noch viel Interessanter wird das Ganze, wenn Buzzwords wie Microservices, SOA und Good/Bad-Monolith vom Chef aufgegriffen werden. Wie findet man den richtigen Weg, wer entscheidet und wer zum Geier ist dieses mythische Wesen "Software-Architekt", von dem so oft gesprochen wird? Ziel dieses Talks ist es, die Allgegenwärtigkeit von Software-Architektur zu verdeutlichen, und Wege zu zeigen, wie man zu einer weniger problembehafteten Sicht auf das Thema kommen kann. Viel dreht sich dabei um Team-Dynamik und die Art, wie wir Software bauen, alles mit Beispielen aus dem "wahren Leben" untermalt. Zum Speaker: Als C64-Nerd aufgewachsen, nach einer Wanderschaft von Basic über C bis Assembly ist Jochen irgendwie auf der JVM gelandet. Nach Architekturberatung, Fast-Data-Infrastrukturen und allerlei verteilten Systemen ist er mittlerweile bei Instana, wo er der Welt hilft, ihre verteilten Systeme zu bändigen. Neben seiner Haupttätigkeit ist er auf Konferenzen als Speaker anzutreffen, schreibt für diverse Fachmagazine und ist Maintainer im Vert.x-Projekt.

  • Java Next - New Releases, Amber, Valhalla and more Goodies (Nicolai Parlog)

    Ing.-Schule Universität Kassel, Raum HS 0315

    Mit der Umstellung von Java auf einen sechsmonatigen Release-Rhythmus, muss auch die Community das Tempo anziehen, um auf dem neuesten Stand zu bleiben. Anstatt ein Jahr oder mehr Zeit für die Vorbereitung auf eine neue Version zu haben, sind es heute nur drei Monate. Deshalb sollten wir alle gut darüber informiert sein, was passiert, wenn Änderungen anstehen - und zwar bevor sie veröffentlicht werden. Diese Session: • erklärt die Details hinter dem neuen Zeitplan und wie man auf dem Laufenden bleibt, • präsentiert Sprachfunktionen wie z. B. Var- und Switch-Ausdrücke, • zeigt die Zukunft von Java anhand der Projekte Walhalla, Amber u. a., • befasst sich mit den Funktionen der kommenden Versionen, wie z. B. Musterabgleich, Werttypen und Fasern. Anschließend wissen die Teilnehmer nicht nur über die nahe Zukunft von Java Bescheid, sondern auch, wie sie ohne großen Aufwand auf dem Laufenden bleiben können. Zum Speaker: Nicolai Parlog ist, wie er selbst sagt, ein "dreißigjähriger Junge", der seine Leidenschaft Softwareentwicklung (meist Java) zum Beruf gemacht hat. Er bloggt, schreibt, spricht, chattet, streamt, trainiert und berät - natürlich nicht alles gleichzeitig, sondern so, dass ein effizienter Multi-Channel-Know-how-Transfer entsteht. Sein Zuhause ist codefx.org.

  • Hibernate Tips 'n' Tricks (Thorben Janssen)

    Campus Center der Universität Kassel, Seminarraum 6

    Schnelle Lösungen für typische Probleme und Anwendungsfälle Kennst Du das auch? Ein Kunde fordert mal wieder “nur eine kleine Änderung” in der Aufbereitung der Daten. Und nach ein paar Stunden ... oder Tagen ... stellst Du fest, dass sich das nicht so leicht im Code umsetzen lässt. Hättest Du doch besser den Datenbankzugriff angepasst? Und überhaupt, das hat doch bestimmt schon mal jemand gemacht … Die gute Nachricht ist: In vielen Fällen gibt es wirklich schon ein Hibernate Feature, das Dir den Großteil der Arbeit abnimmt. Eine Annotation oder wenige Zeilen Code reichen bereits aus um: - Multi-Tenancy zu implementieren, - datenbank-spezifische Datentypen zu unterstützen, - SQL-Schnipsel auf Entitäten abzubilden, - die Elemente einer Assoziation in einer vorgegebenen Reihenfolge zu lesen, - UUIDs zu generieren und als Primärschlüssel zu verwenden, - Änderungen in einem Auditlog zu dokumentieren. All das und noch viel mehr wird Gegenstand dieser Session sein.

  • Open Source as a Business & Sommergrillen (Philipp Krenn)

    Micromata GmbH

    Wie baut man ein nachhaltiges und erfolgreiches Unternehmen auf, das auch seinen Open-Source-Wurzeln treu bleibt? Dieser Vortrag wirft einen Blick darauf, warum Open Source für die Wirtschaft wichtig ist und drei wesentliche Elemente dieses Weges: * Strategie: Wie können wir unser Open-Source-Produkt monetarisieren? Handelt es sich um Support, einen offenen Kernansatz, Cloud Services oder eine Kombination aus beidem? Und welches sind die Funktionen, die wir kommerzialisieren können, ohne die Community zu vernachlässigen? * Kämpfen: "Du hast 100 Millionen Dollar an Risikokapital erhalten und hast doch sooo viele offene Fragen?!" Sobald es um Geld geht, ändert sich die Dynamik oft. Wie können wir Erwartungen managen und trotzdem auf einer florierenden Open-Source-Community aufbauen? * Erfolgreich: Wie bringen wir Open Source und wirtschaftlichen Erfolg in Einklang? Wie stimmen wir Entwicklungs- und Vertriebsentscheidungen ab? Dieser Vortrag nimmt die Perspektive von Elastic ein, dem Unternehmen hinter den Open-Source-Produkten Elasticsearch, Kibana, Beats und Logstash, das mit Support, kommerziellen X-Pack-Erweiterungen und Cloud-Angeboten sein Geld verdient. Aber wir werfen auch einen Blick darauf, wie andere an diese Herausforderung herangehen, was funktioniert hat und was nicht. WICHTIGE HINWEISE +++++++ 1. Philipp Krenn bietet von 15:00 bis 17:00 zusätzlich einen Workshop an: Volltextsuche in Theorie & Praxis und Aggregierte Logging Patterns. Bei Micromata, im selben Raum wie das anschließende JUGH-Treffen (wird ausgeschildert). 2. Anschließend Sommergrillen! Micromata sponsert Speisen & Getränke.

    4
  • Entfällt: Selenium-Tests in der Cloud (Sebastian Hardt aka Seppel)

    Ing.-Schule Universität Kassel, Raum HS 0315

    WICHTIGER HINWEIS: Dieser Talk muss aus persönlichen Gründen kurzfristig entfallen. Wir setzen aber alles daran, ihn sobald wie möglich nachzuholen (voraussichtlich Q1/2020) ++++++++++++++++++++++ In seinem Talk bei der JUGH will Seppel zeigen, wie man die Testinfrastruktur Selenium in der Cloud betreiben kann. Selenium ist ein Framework, um Webanwendungen automatisiert zu testen und so den manuellen Tippaufwand auf ein absolutes Minimum zu reduzieren. In der Cloud kann es eingesetzt werden, um Webanwendungen über mehrere Browser hinweg zu testen. Dabei interagiert es nicht nur mit Webbrowsern, um Aktionen, Eingaben und erwartete Ergebnisse zu prüfen, sondern verbessert die Geräte- und Plattformabdeckung insgesamt. Seppel wird außerdem wertvolle Tipps geben, was dafür in der Praxis zu beachten ist.