Infrastructure as Code ist schon fast ein alter Hut, und gerade in der cloud-basierten Entwicklung im Mainstream angekommen. Mit Werkzeugen wie AWS CDK und Pulumi geht der Trend hierbei zu einem klaren Fokus auf „as Code“ - im Gegensatz zum bisher oft üblichen "as Configuration".
Auf der anderen Seite des * as Code Spektrums etabliert sich „Architecture as Code“. Mit Angeboten wie Structurizr ist es nun auch möglich, System- und Anwendungs-Architektur in Form von Code zu…
Copy & Paste-Programmierung ist seit Jahrzehnten als Code-Smell verschrien. Das hat nicht verhindert, dass in allen größeren Systemen viele Klone vorkommen. Das schafft Probleme.
Clone Detection - die automatisierte Erkennung solcher Duplikate - ist inzwischen in einigen IDEs enthalten. Allerdings nützt es niemandem, eine Liste mit 100.000 Klonen zu erzeugen. Die Herausforderung ist der sinnvolle Umgang mit bestehenden Klonen. Welcher das ist, hängt vom eigenen Kontext…
Keycloak ist eine Open Source Lösung für Identity und Access Management, die seit vielen Jahren weltweit in großen und kleinen Installationen eingesetzt wird.
Von Anfang an unterstütze es relationalen Datenbanken via JPA/Hibernate. Über die Zeit kamen weitere Speichermöglichkeiten für Caching und ein In-Memory-Grid dazu, außerdem wurden Directory-Dienste wie LDAP integriert. Mit der Zeit verwoben sich die verschiedenen Bereiche, so dass neue Funktionen schwieriger…
Die Dokumentation Eurer Softwarearchitektur veraltet schnell? Deswegen fertigt Ihr gar keine an? In dieser Session zeige ich entlang von Beispielen, wie Du und Dein Team Eure Architekturansätze auf geringem Raum verdichtet und zugleich überzeugend darstellt. Für Neue im Team ebenso wie als Einstieg z. B. in ein Architektur-Review.
Ihr erfahrt, welche Inhalte mindestens in einen Architekturüberblick hineingehören und welche Formen sich in welcher Situation bewähren. Statt…
Die Geschichte Deines Projekts ist erzählt, die Domänen und Subdomänen stehen, die Schnitte sind angesetzt. Auf dem Weg zu funktionierender Software wirst Du allerdings noch Modelle erstellen. Du kannst Dich dabei dicht an der Domäne orientieren, bekommst aber ein Modell, das nur wenige tiefe Einsichten bietet und spröde auf Veränderungen reagiert. Du kannst auch Techniken aus der funktionalen Programmierung benutzen - die fördern tiefe Einsichten zutage, sind aber oft…
Langsame Entwicklung? Unter Last ächzende Server? Unglückliche User? Es gibt viel anzupacken in der Softwareentwicklung! Aber wo anfangen?
In diesem Vortrag gebe ich eine Einführung in den systematischen Umgang und der Lösung von vertrackten Situationen für Softwarearchitekt:innen. Wir sehen uns fundamentale Denkfehler an, die Problemlösende bereits bei der Sammlung und der Formulierung von „Problemen“ oft begehen. Damit gewappnet, suchen wir systematisch nach den echten…
Hört die Geschichte eines Unternehmens, das sich auf dem Weg von der alten monolithischen On-Premise-Wasserfall-Welt zur neuen modularen, agilen, domain-driven, mandantenfähigen, cloudbasierten Microservices-Welt befindet. Die Herausforderungen kommen aus verschiedenen Richtungen: Sowohl technische als auch organisatorische Aspekte müssen gemeistert werden. Die Domäne muss verstanden werden, damit das System richtig strukturiert werden kann. Der große Knall muss…
Event Storming ist eine Methode des Domain Driven Design, die es ermöglicht, sich gemeinsam die Fachlichkeit einer Anwendung zu erarbeiten. Richtig angewendet und bis zum Ende durchgeführt, bietet Event Storming aber noch mehr. Das Ergebnis kann nämlich sehr gut verwendet werden, um darauf basierend Bounded Contexts zu identifizieren.
Diese zeichnet dabei aus, dass wenig Kommunikation über Kontext-Grenzen hinweg passiert und das diese Kommunikation insbesondere robust…
Die falsche Architekturentscheidung heute kann morgen zu Kosten, Verzögerung und Leid führen. Wir können versuchen, das Problem durch sorgfältige Planung zu lösen - Qualitätsbäume malen, Referenzarchitekturen zücken - und trotzdem können die sich daraus ergebenden Entscheidungen falsch sein. (Oder falsch werden, wenn sich Anforderungen oder Kontext ändern.) Eine bessere Strategie ist, die großen Entscheidungen möglichst spät zu treffen, weil wir dann mehr wissen und sie…
Architekturen, die Unfälle waren und warum es zu diesen Unfällen kam.
Der Vortrag…
Software Architecture is about the important things, where "important" means high-risk and hard-to-change decisions.
DevOps tries to develop a culture where constant experimentation and learning takes place while the environment changes rapidly.
In this talk we will explore general strategies agile teams can use to build and foster a DevOps culture while at the same time ensuring high-quality and sustainable software delivery.
These strategies will be illustrated with…