Moderne Architekten machen erheblich mehr als UML Diagramme zeichnen oder Architekturstile zu katalogisieren. Sie liefern enormen Wert, indem sie die Unternehmensstrategie mit technischen Entscheidungen im Maschinenraum verknüpfen. Dies erfordert Fingerspitzengefühl und die Fähigkeit, komplexe technische Zusammenhänge und Abwägungen auf verschiedenen Ebene zu kommunizieren, ohne die Inhalte zu verwässern oder das Publikum zu verwirren. Dieser Talk hilft Architekten…
Im Zuge der Modernisierung von Software-Landschaften werden Services (und damit die Code-Basis) immer kleiner.
Architekten sind mehr damit beschäftigt, die Kommunikation der Services untereinander in den Griff zu kriegen.
Für die Implementierung der einzelnen Services brauchen man ja (fast) keine Architektur, oder? Schwergewichtige Upfront-Architekturen sind doch meistens eh nur im Weg und verlangsamen den Entwicklungsprozess.
In der Session wollen wir diskutieren,…
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…
Architektur-Entscheidungen kann man aufteilen in eine Makro-Architektur-Ebene, die alle Module betrifft, und eine Mikro-Architektur-Ebene mit Entscheidungen, die pro Modul anders sein können. Die durch eine Mikro-Architektur gewonnene Flexibilität hat beispielsweise Vorteile bei der mit einer Vielzahl an Teams, gleichzeitig ermöglicht eine Makro-Architektur einen produktiven Umgang mit der Flexibilität bei Microservices. Die Präsentation zeigt verschiedene Ansätze für…
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…
Inwiefern profitieren agile Vorhaben von Architekturbewertungen, die als Konzept eher der „klassischen” Architekturschule entsprungen sind? Was ist hier State-of-the-Practice und welche Methoden eignen sich ggf. besser als die bekannte Architecture Tradeoff Analysis Method (ATAM)? Wie schlank können Bewertungen werden und in welche Entwicklungssetups passt welche Methodenausprägung? In dieser Session liefere ich Antworten, untermauere sie mit praktischer Erfahrung und…
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…
Anno 2022: Cloud-basierte Anwendungen sind Realität.
Es entstehen verteilte Systeme, teils über mehrere Clouds hinweg, die untereinander kommunizieren müssen, oftmals auch mit firmeneigenen Rechenzentren.
Besonders bei asynchroner Kommunikation ergeben sich hier Herausforderungen bezüglich nicht-funktionaler Anforderungen wie Latenz, Durchsatz und Nachverfolgbarkeit.
Wie können wir Nachrichten asynchron austauschen, und dabei Produzenten von den Konsumenten entkoppeln?
…
Wahrscheinlich haben Sie schon von Resilienz gehört. Aber was bedeutet es im Kontext von IT-Systemen und warum sollten Sie sich darum kümmern? Dieser Short Talk wird genau diese beiden Fragen beantworten - nicht mehr, aber auch nicht weniger.
„Cloud is the new normal”, so Andrew R. Jassy (CIO AWS). Was also liegt näher, als genau jetzt den Schritt in die Cloud zu wagen? Aber ist dieser Schritt wirklich so einfach, wie uns die verschiedenen Cloudanbieter glauben machen? Der Short Talk zeigt, wie der Weg in die Cloud erfolgreich gestaltet werden kann.
Künstliche Intelligenz (KI) und Machine Learning (ML) bieten einen alternativen Ansatz zur klassischen Software-Entwicklung. KI und ML können dieser für manche Aufgaben überlegen sein oder sogar bisher Unmögliches möglich machen. Dieser Vortrag fast kurz zusammen, was den Unterschied ausmacht, was möglich wird und welche Auswirkungen das auf den Prozess der Software-Entwicklung hat.
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…
Der Sessiontitel ist Leitsatz des Persistenz-Managers JOOQ und Ausdruck der Grundeinstellung, dass SQL ein zu mächtiges Werkzeug ist, um es hinter komplizierten und dennoch einschränkenden Abstraktionen wie JPA zu verbergen. SQL-freies CRUD ist OK, aber ansonsten sollte keine Pseudo-Intelligenz zwischen dem Entwickler und der DB stehen und ein Gefühl von Kontrollverlust verbreiten. Für Web-UIs gibt es Micro-Frameworks, und auch für die Persistenz gibt es durchschaubare…
Der Vortrag stellt aktuelle Ansätze für die Sicherheitsbewertung auf Architekturebene vor. Häufig verwendete Muster für Architekturen werden auf ihre Sicherheitseigenschaften analysiert und grundlegen Prinzipien für sicheres Design vorgestellt. Ein vorgestellter Leitfaden gibt Hinweise für ein systematisches Vorgehen zur Erstellung sicherer Softwarearchitekturen. Als Werkzeuge zum praktischen Einsatz in der Sicherheitsanalyse von Architekturen kommen u.a. SonarQube und…
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…
CQRS und Event Sourcing werden schon länger als Alternative zu klassischen Schichtenarchitekturen propagiert. Jedoch gab es lange keine Frameworks, die eine umfassende Lösung bieten um diese Patterns auch in der Praxis anwenden zu können. Das Open Source Framework Axon schließt diese Lücke.
Durch die Nutzung des Frameworks wird es für Entwickler ein leichtes, von den Vorteilen von CQRS/ES zu profitieren: Beliebige Skalierung durch Trennung von Schreib- und Lesemodellen…
Architekturen, die Unfälle waren und warum es zu diesen Unfällen kam.
Der Vortrag…
Im Zuge der Modernisierung von Software-Landschaften werden Services (und damit die Code-Basis) immer kleiner.
Architekten sind mehr damit beschäftigt, die Kommunikation der Services untereinander in den Griff zu kriegen.
Für die Implementierung der einzelnen Services brauchen man ja (fast) keine Architektur, oder? Schwergewichtige Upfront-Architekturen sind doch meistens eh nur im Weg und verlangsamen den Entwicklungsprozess.
In der Session wollen wir diskutieren, wie…
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…
Architektur: Die soll doch das Stabile sein! Und die Wahl der richtigen Architektur sorgt dafür, dass die Software auch in Zukunft weiterentwickelt werden kann! Was zunächst sinnvoll erscheint, erweist sich in der Realität oft als erster Schritt hin zu einem Architektur-Fehlschlag. Wenn sich die Anforderungen, die Erkenntnisse oder die Technologien ändern, muss sich leider die Architektur auch ändern. Wie kann sie dann zukunftssicher sein? Diese Präsentation zeigt, wie…
Der Begriff „Plattform“ existiert schon sehr lange und wird extrem vielfältig verwendet, man muss leider schon sagen er wird „überstrapaziert“. Wegen der Popularität großer Plattformen, dem Erfolg von Plattform-Unternehmen und den Verheißungen der Plattform-Ökonomie wird der Begriff inflationär gebraucht. Dadurch entsteht Verwirrung und selbst Experten in der IT-Industrie reden kontinuierlich aneinander vorbei.
Der Vortrag hat zum Ziel, eine Landkarte durch den…
Heutzutage führt kein Weg an Single Page Applications vorbei. Ob React, Angular, VueJS oder eines der anderen Frameworks. Die Standardantwort auf die Frage nach der Frontend-Architektur heißt SPA. Doch was kaum jemand bemerkt:
Die SPA Idee ist legacy! Mit AngularJS wurde vor 10 Jahren diese Idee breit umgesetzt.
Ich möchte im Vortrag zeigen, aufgrund welcher Frontend-Probleme man ursprünglich SPAs entwickelt hat und ob es für diese Probleme nicht heutzutage innovativere…
Inwiefern profitieren agile Vorhaben von Architekturbewertungen, die als Konzept eher der „klassischen” Architekturschule entsprungen sind? Was ist hier State-of-the-Practice und welche Methoden eignen sich ggf. besser als die bekannte Architecture Tradeoff Analysis Method (ATAM)? Wie schlank können Bewertungen werden und in welche Entwicklungssetups passt welche Methodenausprägung? In dieser Session liefere ich Antworten, untermauere sie mit praktischer Erfahrung und…
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…
Impulsvortrag: Irre! Führend? —> Softwarearchitekt:in
Guckst du auf Wikipedia, ist es total doof beschrieben. Fragst du Leute auf der Straße, so haben die auch keine Ahnung was es ist. Nutzt du die Metapher Architekt, so trägt sie nicht weit. Was also ist der Softwarearchitekt in der Organisation wert?
Die technische Verantwortung innerhalb der Organisation trägt der CTO. Wie nun kann diese Verantwortung in die Teams und zu den Architekt:innen delegiert werden?
Topics:
Ein unschlagbarer Vorteil von Konferenzen vor Ort: Die Welcome Reception! Kommen Sie wieder in gemütlicher Runde mit anderen Teilnehmenden und Speakern ins Gespräch.
Designing good applications has become more demanding than ever: Extremely flexible, very high availability, scaling up and down on demand, rising user demands, sustainability, APIs as first class citizens while being secure like a fortress at the same time, and so on. The list appears to be endless.
In the past, quite some of today's application demands have simply not existed yet. And some others we could easily delegate to the operations team. But that is not possible…
„Cloud is the new normal”, so Andrew R. Jassy (CIO AWS). Was also liegt näher, als genau jetzt den Schritt in die Cloud zu wagen? Denn schließlich wollen wir ja alle irgendwie ein klein wenig „normal“ sein, oder? Aber ist dieser Schritt wirklich so einfach, wie uns die verschiedenen Cloudanbieter glauben machen? Lässt sich eine klassische Enterprise-Architektur einfach so in die Cloud überführen oder bedarf es neuer, Cloud-spezifischer Architekturmuster? Die Session…
Immer mehr Entwicklerinnen schreiben Anwendungen, die später in einem Kubernetes Cluster laufen sollen. Was kann dabei so schwierig sein? Angefangen "Wie strukturiere ich meine Repositories?", "Wo lege ich meinen Code für das Deployment ab (Containerfiles, Helm Charts, Config Values)?", "Was muss bei der Entwicklung der Anwendung beachtet werden?", "Wie bekomme ich den Code lokal getestet?", "Wie bekomme ich mit, was im Test-Cluster passiert?"
Dieser Vortrag geht am…
Eigentlich weiß jeder um die "Kraft der Bilder", und dennoch scheuen sich viele Leute, sie auch einzusetzen, wenn es um die Vermittlung von Ideen und Gedanken geht. Dabei gewinnen grade die oft abstrakten Konzepte in der IT an Begreifbarkeit, wenn man sie visualisiert. "Ich kann doch nicht malen" ist die häufigste Sorge. Aber das ist auch nicht nötig, denn es geht vielmehr um einfache Symbolik und eine Unterstützung statt Ersetzung des geschriebenen Wortes. Die Session…
Machine Learning ist eine spezielle Form der Software-Entwicklung und hat als solche viele Gemeinsamkeiten, aber auch einige Unterschiede zur traditionellen Software-Entwicklung. Während traditionell Software-Entwickler Code von Hand schreiben wird im Machine Learning ein Modell anhand von bestimmten Daten, einer Modell-Architektur und einem Trainings-Script erzeugt.
Anhand eines durchgängigen Beispiels bewegen wir uns in diesem Workshop durch die unterschiedlichen…
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…
Continuous Delivery ist allgegenwärtig. Wirklich? Viele Teams straucheln immer noch dabei regelmäßig gut getestete Produktinkremente zu liefern. Immer mit der gleichen alten Ausrede: die (nicht)-funktionalen Tests seien zu aufwändig und zu teuer umzusetzen. Doch genau das Gegenteil ist der Fall! In diesem Vortrag gehen wir kurz auf die Bedeutung früher und regelmäßiger (nicht)-funktionale Tests von Cloud-nativen Anwendungen ein und erläutern warum monolithische CI…
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…
Microservices. APIs. Cloud native. Always on. Near-realtime. And so on. Today's IT landscapes are highly interconnected, massively distributed and need to be responsive 24x7. Downtimes are not an option. Long response times are not an option, either. Thus, time to learn resilient software design.
In this workshop, we will first discuss why we need resilient software design. Then we will build a little essential patterns toolbox for handling timeouts, failures, overload…
CQRS und Event Sourcing werden schon länger als Alternative zu klassischen Schichtenarchitekturen propagiert. Jedoch gab es lange keine Frameworks, die eine umfassende Lösung bieten um diese Patterns auch in der Praxis anwenden zu können. Das Open Source Framework Axon schließt diese Lücke.
Durch die Nutzung des Frameworks wird es für Entwickler ein leichtes, von den Vorteilen von CQRS/ES zu profitieren: Beliebige Skalierung durch Trennung von Schreib- und Lesemodellen…
Cloud-Provider stellen eine große Auswahl an Services zur Verfügung, die es uns ermöglichen, ein breites Spektrum an Systemen zu entwerfen, entwickeln und zu betreiben. Solche Systeme werden schnell sehr komplex und bestehen aus vielen kleinen Bausteinen, die aus verschiedenen Cloud-Diensten zusammengestellt sind. Wie gelingt es uns, einen Überblick zu behalten und die Einhaltung unserer wichtigsten Qualitätsziele sicherzustellen? Aus dem Bereich der evolutionären…
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…
Agile Enterprise Architecture ist schon seit langem ein Traum – aber leider auch nicht mehr. Aber mit Aufkommen von Domain Driven Design seit 2005 und den damit verbundenen Methoden wie Event Storming 2017 und Domain Storytelling 2021 wird es ein wenig realer. Der Vortrag stellt anhand eines durchgängigen Beispiels einen Lean Enterprise Architektur Ansatz vor und gibt Tipps wie man selbst Enterprise Architektur ein wenig agiler gestalten kann.
Domain Story Telling ist…