Academy Training

Strategische Softwarearchitektur

0,5 - 1 Tage
Remote
Remote

Herausforderungen

Das Design von verteilten Anwendungen muss sorgfältig durchgeführt werden. Während sich Domain-Driven Design auf das taktische Design einer Anwendung in einem begrenzten Kontext (engl.: bounded context) konzentriert, behandelt die strategische Softwarearchitektur das high-level Design von verteilten, groß angelegten Anwendungen und Enterprise-Architekturen.

Es handelt sich um eine Musterfamilie, die darauf abzielt, begrenzte Kontexte zu verwenden, zu definieren und explizit über die verschiedenen Beziehungsmuster und die erforderliche "Übersetzung" ähnlicher "Konzepte" zwischen den begrenzten Kontexten nachzudenken. Es ist hilfreich, eine gute strategische Architektur zu finden, die mit den Anforderungen und der Domäne (engl.: domain) übereinstimmt und das Gesetz von Conway berücksichtigt. Eine Kontextkarte (engl.: context map) und ein gemeinsamer konzeptioneller Kern helfen, das Gesamtbild der Strategie zu verstehen und zu verbessern. Besonders bei einer Microservice-Architektur ist es wichtig, Services zu definieren und zu verbinden, indem man sich an den Low Coupling / High Cohesion-Prinzipien orientiert und passende begrenzte Kontexte identifiziert.

Ziel

Dieses Training bietet einen High Level-Überblick über Muster und Strategien in der Enterprise-Softwarearchitektur und -entwicklung:

  • Entwicklung verteilter (Microservice-orientierter) Software
  • Entwicklung einer Unternehmensarchitektur
  • Überlegungen dazu, wie man den "Elefanten zerschneidet" und nützliche begrenzte Kontexte für die eigene Softwarelösung findet

Zielgruppe

  • Softwareentwickler:innen
  • Softwarearchitekt:innen
  • QA-Engineers
  • Product Owner:innen

Feedback von Teilnehmer:innen auf die Frage, wer von dem Training profitieren kann:

  • "Jede:r, der oder die in einem Software-Projekt arbeitet."
  • "Tatsächlich sollte jede:r Entwickler:in, Tester:in und Product Owner:in dieses Training besucht haben."
  • "Jede:r, der oder die in der Softwareentwicklung tätig ist und keine Vorkenntnisse in der Softwarearchitektur hat."

Inhalt

1. Einführung

  • Was ist "gute Architektur"?
  • Strategisch vs. taktisch

2. Basics der Softwarearchitektur

  • Für Menschen designen (Kognitive Psychologie)
  • Organisation vs. Teamstruktur (Gesetz von Conway)
  • Qualitätsmerkmale von Software ("ilities")
  • Daraus resultierende gemeinsame Grundsätze für die Architektur

3. Strategisches Domain-driven Design

  • DDD <-> SDDD
  • Begrenzte Kontexte
  • Muster von Beziehungen (engl.: relationship patterns)
  • Flughöhen und Abbildung von Kontext (engl.: context mapping)

4. Arten von Architekturen

  • Architektur von Unternehmensanwendungen
  • Mehrschichtige Architektur / "Pace Layered" Architektur
  • SOA-Style
  • Microservices / in sich geschlossene Systeme
  • Fallstricke und Schlussfolgerung

5. Muster für die Integration

  • Kurze Geschichte der Integrationstechniken
  • Vor- und Nachteile
    • Dateien
    • Gemeinsame DB
    • RPC
    • Ereignisgesteuert (Messaging)

6. Verteilte Systeme und Resilienz-Muster

  • Verteilte Systeme
  • CAP-Theorem
  • Resilienz-Muster

7. Dokumentation der Architektur

  • ADRs
  • Visualisierungen
  • arc42-Vorlage

8. Zusammenfassung

Organisatorische Infos

  • Dauer: 1 Tag
  • Sprache: Deutsch oder Englisch, nach Bedarf
  • Ort: Online oder vor Ort, nach Bedarf
  • Gruppengröße: min. 5 bis max. 10 Personen
Was andere sagen

Stimmen unserer Teilnehmer

Christian Rathemacher

CEO

 /

weltenbauer. SE

"Was ist strategische Softwarearchitektur?" Daniel Pötzinger und Stefan Rotsch erklärten uns die Antwort in einem hervorragenden Workshop der AOE Academy. Das Training ist jedem zu empfehlen, der mehr über Domain-driven Design, Conway's Law oder die Kopplung von Softwaremodulen wissen möchte.

Unsere Trainer

Daniel Pötzinger
Daniel Pötzinger verfügt über langjährige Erfahrung in der Entwicklung und Architektur von Enterprise Web Applications. Er hat mit vielen großartigen selbst-organisierten Agile-Teams zusammengearbeitet und weiß, wie Zusammenarbeit und gegenseitige Inspiration – zusammen mit den richtigen Technologien und Patterns – Softwareprojekte zum Erfolg führen und das Lösen von Herausforderungen zum Vergnügen machen können. Er ist auch aktives Mitglied verschiedener Open-Source-Communities und hat umfangreiche Erfahrung in der Entwicklung und dem Design Performance-kritischer Anwendungen in einer Enterprise-Umgebung gesammelt. Außerdem verfügt Daniel über umfassendes Wissen darüber, wie man DevOps und Continuous Delivery Praktiken in IT-Organisationen einführt. Bei AOE stellt Daniel sein umfangreiches Beratungs-Know-How zur Verfügung und hat mittlerweile mehr als 100 Enterprise-Projekte für namhafte Kunden wie Deutsche Telekom, congstar, Rovio, Cisco Webex, QVC und VMware begleitet. Darüber hinaus betreut er weiterhin die Entwicklung von AOE-Produkten wie Searchperience, einer hochentwickelten Enterprise-Such- und Recommendation-Engine und Flamingo, einem skalierbaren Frontend-Framework für Headless Microservice-Architekturen und moderne Commerce-Anwendungen.
Stefan Rotsch
Als Software-Architekt bei AOE erarbeitet Stefan Rotsch mit den Entwicklungsteams geeignete Strukturen und Lösungskonzepte und begleitet deren Umsetzung.

Unsere Academy Ansprechpartnerin

Jetzt unverbindliches Beratungsgespräch vereinbaren

Cordula Kartheininger

Cordula Kartheininger

HR & AOE Academy Strategy Lead