Advanced Docker

Termin

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

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

Abstract

Container Technologien sind aus dem Entiwckleralltag nicht mehr wegzudenken. Vielen Entwicklern ist Docker ein Begriff und einige setzen es täglich ein. Dennoch gibt es, trotz der großen Bekanntheit, Teilbereiche von Docker, die oft übersehen oder nicht beachtet werden. In diesem Vortrag möchte ich einen Blick unter die Haube wagen und dabei auf Themen eingehen, die hoffentlich den meisten noch nicht bekannt sind. Wir fokussieren uns vor allem auf das Image Building, Onion FS und CLI/Docker deprecation in Kubernetes. Das Ganze wird mit Beispielen begleitet. Abgerundet wird der Vortrag mit Tipps und Tricks und dem einen oder anderen interessanten Projekt/Tool.

Bio

Simon Pelczer arbeitet als SDE III bei LivePerson im FaaS Core Team. Er beschäftigt sich daher viel mit Container Technologien und Serverless Architecture. Neben der Arbeit widmet er sich auch der Open Source Entwicklung in kleineren Projekten.

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.