Don't test your Infrastructure as Code – prove it to be right

Termin

Der Vortrag findet am 03.02.2022 um 18:30 Uhr online statt.

Für die Planung freuen wir uns über eine Anmeldung über unsere Meetup-Seite.

Abstract

Du realisierst deine Infrastruktur als Code (IaC), z. B. mit Ansible, Terraform, oder Kubernetes Manifests und Helm Charts? Dabei überprüfst du sicher schon die syntaktische Korrektheit und ein lesbares Layout? Vielleicht führst du sogar schon einfache Tests auf deinen IaC-Definitionen durch? Prima, aber wie kannst du sicher sein, dass alles auch semantisch korrekt ist, ohne es in eine reale Umgebung zu deployen? Kannst du leicht beantworten, welche Teile deiner Infrastruktur durch welche Code-Fragmente auf welcher Pipeline provisioniert werden? Weißt du, wie sich dein Staging-Environment von der Produktion unterscheidet? Lässt du neue Team-Mitglieder dein Heiligtum ändern? Hast du Vertrauen, dass niemand versehentlich alles kaputt macht?

Die Rettung liegt möglicherweise im Einsatz von jQAssistant (jQA). Du kannst deine IaC-Definitionen scannen und analysieren. Es ist möglich, semantische Prüfung auszuführen und Constraints zu prüfen, die bei jeder Code-Änderung erfüllt sein müssen. Das Tool integriert sich in deine Pipelines und kann so die Feedback-Loop durch frühzeitiges Erkennen von Problemen deutlich verkürzen. Neben der Analyze kannst du mit jQA deine Infrastruktur dokumentieren und aussagekräftige Reports in textueller oder graphischer Form aus den enthaltenen Informationen erzeugen. jQA zeichnet sich seit langem durch die Analyse von Java Code und Frameworks (wie Spring, Java EE, OSGi etc), Dokumentation (AsciiDoctor, PlantUML) und weiteren Informationen (Git, Maven, …) aus. Es lädt alle Daten in eine Graph-Datenbank (Neo4j) und kann darauf Konzepte und Constraints prüfen, sowie Reports erzeugen. Seine offene Architektur ermöglicht Erweiterungen in Form von Plugins um IaC-Definitionen zu scannen und zu analysieren.

Der Vortrag stellt jQA und einige dieser Erweiterungen vor.

Bio

Gerd Aschemann arbeitet kontinuierlich daran, die Grenze zwischen Dev und Ops aufzuheben. Als freiberuflicher Software-Architekt aktualisiert und erweitert er permanent die agile Kultur und den Technologie-Stack seiner Kunden durch zeitgemäße Methoden und Komponenten. In den letzten Jahren hat er in mehreren Cloud-Nativen Software-Projekten die Transition zu Continuous Delivery vorangetrieben.

Java After Eleven

Termin

Der Vortrag findet am 29.07.2021 um 19:30 Uhr online statt.

Der Vortrag wird über Google Meet gehalten: https://meet.google.com/mtx-sjpr-iqh. Die Teilnahme ist per Web Browser möglich, ein Google-Account ist nicht erforderlich. Nach dem Zuschalten bitte das Mikrofon auf stumm stellen, Fragen können über den Hand-Heben-Knopf signalisiert werden. Natürlich kann auch der Chat in Google Meet benutzt werden.

Für die Planung freuen wir uns über eine Anmeldung über unsere Meetup-Seite.

Abstract

Most projects that updated past Java 8 decided to stick to the LTS release 11. The new cadence created the illusion of not much happening after that, but nothing could be further from the truth - with new language features like switch expressions, text blocks, records, pattern matching, and sealed classes, Java is moving faster than ever.

In this talk, we’ll take a simple Java 11 code base, update it to 17, and refactor it to use the new language features and APIs. You’ll be surprised how much the code changes!

Bio

Nicolai (aka nipafx) is a Java enthusiast focused on language features and core APIs with a passion for learning and sharing - in articles, newsletters, and books; in tweets, videos, and streams; in demo repos and at conferences - more on all of that on nipafx.dev. He’s a Java Developer Advocate at Oracle and organizer of Accento. That aside, he’s best known for his haircut.

javax.measure bringt verständliche Einheiten in die Software

Termin

Der Vortrag findet am 20.05.2021 um 19:00 Uhr online statt. Zugangsdaten werden über meetup.com bekannt gegeben.

Abstract

Einheiten im Code bieten immer wieder Herausforderungen. Wofür stand nochmal der eine “double” Wert, wofür der andere “int”? Sind die Dinger “Metrisch”, im “U.S. customary system” oder was ganz eigenes? In diesem Vortrag soll ein Überblick über die Möglichkeiten ausgehend von der Java API javax.measure gegeben werden. Außerdem soll darauf eingegangen werden, wie man die Werte persistiert oder auch in Frontend Clients (v.a. Angular, aber nicht nur) benutzen kann. Und die wichtigste Frage: Was hat das Ganze mit der Raumfahrt zu tun ?!?!?!?

Bio

Felix Schultze arbeitet bei der bridgingIT GmbH als Berater und Software Entwickler und treibt sich meist in Spring Applikationen mit Ausflügen ins Frontend herum. Nebenbei hilft er hier und da auch bei quarano e.V. aus, um unseren Gesundheitsämtern auf deren Wunsch hin das Leben etwas erleichtern zu können.

Property Based Resilience Testing Workshop

Termin

Der Workshop findet am 04.03.2021 um 19:00 Uhr online statt. Zugangsdaten werden über meetup.com bekannt gegeben.

Abstract

Property Based Resilience Testing bedeutet mit Hilfe von Property Based Testing (PBT) die Resilienz eines Systems zu testen. Wikipedia definiert Resilienz als “die Fähigkeit eines Systems bei Störungen oder Teilausfällen nicht vollständig zu versagen, sondern wesentliche Systemdienstleistungen aufrechtzuerhalten” und “[…] trotz massiver externer oder interner Störungen wieder in den Ausgangszustand zurückzukehren.” Wie verhält sich, zum Beispiel, eine Benutzerverwaltung während eines Datenbankausfalls? Was sind die Antwortzeiten? Wie schnell kann der normale Betrieb wieder hergestellt werden? Gerade in verteilten Systemen ist es sehr schwierig alle relevanten Fehlerszenarien zu finden und zu testen. Hier hilft PBT: Anstatt Fehlerszenarien selbst zu finden, wird erwünschtes Verhalten im Fehlerfall als Regelwerk beschrieben und ein PBT-Framework testet ob es von unserem Programm eingehalten wird. Im Fall der Benutzerverwaltung, kann eine Regel besagen, dass der normale Betrieb wieder hergestellt wird sobald der Datenbankausfall behoben wurde.

In diesem Workshop verwenden wir jqwik und testcontainers um container-basierte Systeme auf diese Art und Weise zu testen. Nach einer kurzen Einführung und Motivation des Themas, rekapitulieren wir was Property Based Testing ist und gehen insbesondere auf Modeling und Stateful Properties ein. Wir bauen ein Modell einer Applikation auf und benutzen es um bestimmte Eigenschaften zu falsifizieren. Danach erweitern wir dieses Modell um die Möglichkeit Fehlerzustände abzubilden. Zuletzt werden wir den Ansatz diskutieren und beenden den Workshop mit einer Retrospektive.

Der Workshop richtet sich an Anfänger und Fortgeschrittene und in Kooperation mit der Softwerkskammer Rhein-Neckar statt. Grundkenntnisse über Property Based Testing sind hilfreich aber nicht unbedingt notwendig. Für die Übungen werden die Teilnehmer in Kleingruppen unterteilt. Der Link zur Teilnahme wird noch veröffentlicht.

Voraussetzung

Computer mit Docker (siehe testcontainers für die minimale Version), Git und Java IDE.

Lernziele

Die Zuhörer/-innen lernen

  • wie eine container-basierte Umgebung in Tests aufgebaut wird und
  • wie Stateful Properties bestimmt und mit Hilfe von Modeling getestet werden.

Bio

Gregor Trefs ist Software Development Manager bei LivePerson, Mitorganisator der Java User Group Mannheim und Softwerkskammer Rhein-Neckar. Weiterhin ist er der Autor der testcontainers Extension für jqwik.

Spring Data JPA von 0 auf 100 in 60 Minuten

Registration

Dieser Termin ist aufgrund der aktuellen Situation mit dem neuen Coronavirus (SARS-CoV-2) kurzfristig abgesagt. Obwohl unsere Veranstaltungen einen kleineren Besucherkreis haben, möchten wir der aktuellen Lage mit der notwendigen Aufmerksamkeit begegnen und sehen uns in der Verantwortung potenzielle Infektionsketten zu minimieren.

Wir entschuldigen uns für die Kurzfristigkeit, jedoch haben wir es mit einer dynamischen Entwicklung zu tun bei der wir jeden Tag dazulernen.

Dieser Termin wird nachgeholt sobald sich die Situation entspannt.

Vielen Dank für euer Verständnis!

Termin

Der Vortrag findet nicht statt.

Ursprünglich war dieser am 12.03.2020 um 19:00 Uhr geplant..

Abstract

JPA is the most popular persistence technology for JAVA. In this talk, we’ll look into how it works and how it integrates with Spring by means of Spring Data JPA. We’ll look at the various ways one may use Spring Data from ready-made queries over query derivation, query by example, specifications, paging and sorting to custom method implementations.

We’ll also take a look at common pitfalls of JPA and how to circumvent them. And if time is left we’ll take a glance at other technologies available to Java developers to complement JPA and how these integrate with Spring Data.

Participants will learn to distinguish between JPA and Spring Data JPA, the various features Spring Data JPA offers and when to use which feature to achieve their goal.

Bio

Jens Schauder (@jensschauder) hat vor unglaublich langer Zeit auf einem in Assembler programmierbaren Tischrechner angefangen zu programmieren. Nach über 30 Jahren, davon fast 20 als Consultant für meist große Konzerne, hat er es 2017 geschafft sich beim Spring Data Team einzuschleichen. Dort arbeitet er meist an den Modulen Commons, JPA und JDBC, erzählt davon auf Konferenzen oder hilft anderen Entwicklern auf Stackoverflow. Wenn er nicht programmiert, spielt er mit seinen Kindern, läuft, macht Freeletics, spielt oder organisiert die JUG Ostfalen.