Skip to content

Commit

Permalink
Rework and adding references
Browse files Browse the repository at this point in the history
  • Loading branch information
sw4ma-marhai committed Oct 4, 2023
1 parent 262b28e commit cc06654
Show file tree
Hide file tree
Showing 8 changed files with 83 additions and 52 deletions.
28 changes: 18 additions & 10 deletions docs/02-Common-Architecture-Concepts/02-learning-goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,15 @@

Softwarearchitekt:innen kennen Muster moderner Architekturen für verteilte Anwendungen (speziell Microservices, Self-contained Systems) und verstehen die Gründe, die zu diesen Lösungen führen.

* Monolith <<awati_wigmore>>, <<microservices_monolith>>, <<fowler_monolith>>, <<fowler_monolithfirst>>
* Microsoervices <<fowler_microservices>>,<<microservices_microservice>>
* Self Contained Systems <<scs>>, <<scs_wolff>>

Sie verstehen die unterschiedlichen Technologien entkoppelter Kommunikation und des Datenaustauschs zwischen Services, zum Beispiel:

* Event Sourcing
* Messaging Middleware
* HTTP Feeds
* Event Sourcing <<davis>>, <<microservices_event-sourcing>>, <<microservices_messaging>>
* Messaging Middleware <<cncf_landscape_streaming_messaging>>
* HTTP feeds <<rss>>

Softwarearchitekt:innen kennen die Auswirkungen einer Shared-Something/Nothing-Architektur, die insbesondere durch eine Skalierung über Container entsteht.

Expand All @@ -19,8 +23,8 @@ Softwarearchitekt:innen kennen die Auswirkungen einer Shared-Something/Nothing-A

Softwarearchitekt:innen verstehen, wie mehrere Services über unterschiedliche Wege zu einer Applikation integriert werden können, zum Beispiel durch Integration über:

* Backend (Message-Bus, Datenbank, etc.)
* Frontend (UI-Integration)
* Backend (message bus, database, etc.) <<backend_integration>>
* Frontend (UI integration) <<frontend_integration>>

Softwarearchitekt:innen kennen die Auswirkungen von Eventual Consistency auf die Datenintegrität und Datenkonsistenz.

Expand All @@ -32,11 +36,15 @@ Softwarearchitekt:innen kennen die Auswirkungen von Eventual Consistency auf die

Software architects are familiar with patterns of modern architectures for distributed applications (especially microservices, self-contained systems) and understand the reasons that lead to these solutions.

* Monolith <<awati_wigmore>>, <<microservices_monolith>>, <<fowler_monolith>>, <<fowler_monolithfirst>>
* Microsoervices <<fowler_microservices>>,<<microservices_microservice>>
* Self Contained Systems <<scs>>, <<scs_wolff>>

They understand the different possibilities of decoupled communication and data exchange between services, for example:

* Event Sourcing
* Messaging Middleware
* HTTP feeds
* Event Sourcing <<davis>>, <<microservices_event-sourcing>>, <<microservices_messaging>>
* Messaging Middleware <<cncf_landscape_streaming_messaging>>
* HTTP feeds <<rss>>

Software architects understand the implications of a shared-something/nothing architecture, particularly as a result of scaling via containers.

Expand All @@ -45,8 +53,8 @@ Software architects understand the implications of a shared-something/nothing ar

Software architects understand how multiple services can be integrated into an application through different approaches, such as integration via:

* Backend (message bus, database, etc.)
* Frontend (UI integration)
* Backend (message bus, database, etc.) <<backend_integration>>
* Frontend (UI integration) <<frontend_integration>>

Software architects understand the impact of eventual consistency on data integrity and consistency.
// end::EN[]
57 changes: 29 additions & 28 deletions docs/02-Common-Architecture-Concepts/references.adoc
Original file line number Diff line number Diff line change
@@ -1,30 +1,31 @@
=== {references}

- Cornelia Davis: Cloud Native Patterns. Designing Change-tolerant Software. Manning, 2019
* Ansätze moderner Architekturen
** Monolith
*** https://www.techtarget.com/whatis/definition/monolithic-architecture
*** https://microservices.io/patterns/monolithic.html
*** https://martinfowler.com/articles/break-monolith-into-microservices.html
** Microservice
*** https://martinfowler.com/articles/microservices.html
*** https://microservices.io/patterns/microservices.html
*** https://www.martinfowler.com/bliki/MonolithFirst.html

** Self Contained Systems
*** https://scs-architecture.org
*** https://www.infoq.com/articles/scs-microservices-done-right/
*** https://roca-style.org
** Möglichkeiten Kommunikation / Datenaustausch
*** https://landscape.cncf.io/card-mode?category=streaming-messaging&grouping=category
*** https://microservices.io/patterns/data/event-sourcing.html
*** https://microservices.io/patterns/communication-style/messaging.html
*** https://www.rssboard.org/rss-specification
** Anwendungs-Integration
*** https://www.microservice-api-patterns.org/patterns/foundation/FrontendIntegration
*** https://www.microservice-api-patterns.org/patterns/foundation/BackendIntegration
- [[[davis,Davis 2019]]] Cornelia Davis: Cloud Native Patterns. Designing Change-tolerant Software. Manning, 2019
- [[[awati_wigmore,Awati, R. & Wigmore, I. (2022). Monolithic architecture]]] Awati, R. & Wigmore, I. (2022). Monolithic architecture. WhatIs.com. https://www.techtarget.com/whatis/definition/monolithic-architecture
- [[[microservices_monolith,Monolithic architecture pattern. (o. D.). microservices.io]]] Monolithic architecture pattern. (o. D.). microservices.io. Abgerufen am 4. Oktober 2023, von https://microservices.io/patterns/monolithic.html
- [[[fowler_monolith,Dehghani, Z. (o. D.). How to break a monolith into microservices]]] Dehghani, Z. (o. D.). How to break a monolith into microservices. martinfowler.com. Abgerufen am 4. Oktober 2023, von https://martinfowler.com/articles/break-monolith-into-microservices.html
- [[[fowler_monolithfirst,Fowler, M. (o. D.). Bliki: MonolithFirst]]] Fowler, M. (o. D.). Bliki: MonolithFirst. martinfowler.com. Abgerufen am 4. Oktober 2023, von https://www.martinfowler.com/bliki/MonolithFirst.html
- [[[fowler_microservices,Lewis, J. (o. D.). Microservices]]] Lewis, J. (o. D.). Microservices. martinfowler.com. Abgerufen am 4. Oktober 2023, von https://martinfowler.com/articles/microservices.html
- [[[microservices_microservice,Microservice Architecture Pattern. (o. D.). microservices.io]]] Microservice Architecture Pattern. (o. D.). microservices.io. Abgerufen am 4. Oktober 2023, von https://microservices.io/patterns/microservices.html
- [[[scs,SCS: Self-contained systems (o. D.)]]] SCS: Self-contained systems. (o. D.). Abgerufen am 4. Oktober 2023, von https://scs-architecture.org/
- [[[scs_wolff,Wolff, E. (2017, 3. Mai). Self Contained Systems (SCS): Microservices done right]]] Wolff, E. (2017, 3. Mai). Self Contained Systems (SCS): Microservices done right. InfoQ. Abgerufen am 4. Oktober 2023, von https://www.infoq.com/articles/scs-microservices-done-right/
- [[[microservices_event-sourcing,Event sourcing. (o. D.). microservices.io]]] Event sourcing. (o. D.). microservices.io. Abgerufen am 4. Oktober 2023, von https://microservices.io/patterns/data/event-sourcing.html
- [[[cncf_landscape_streaming_messaging,Cloud Native landscape. (o. D.). Cloud Native Landscape]]] Cloud Native landscape. (o. D.). Cloud Native Landscape. Abgerufen am 4. Oktober 2023, von https://landscape.cncf.io/card-mode?category=streaming-messaging&grouping=category
- [[[microservices_messaging,Messaging. (o. D.). microservices.io]]] Messaging. (o. D.). microservices.io. Abgerufen am 4. Oktober 2023, von https://microservices.io/patterns/communication-style/messaging.html
- [[[rss,RSS 2.0 specification (Current). (o. D.)]]] RSS 2.0 specification (Current). (o. D.). Abgerufen am 4. Oktober 2023, von https://www.rssboard.org/rss-specification
- [[[backend_integration,Backend integration. (o. D.)]]] Backend integration. (o. D.). Abgerufen am 4. Oktober 2023, von https://www.microservice-api-patterns.org/patterns/foundation/BackendIntegration
- [[[frontend_integration,Frontend Integration. (o. D.)]]] Frontend Integration. (o. D.). Abgerufen am 4. Oktober 2023, von https://www.microservice-api-patterns.org/patterns/foundation/FrontendIntegration
10 changes: 7 additions & 3 deletions docs/03-Cloud-Native-Journey/02-learning-goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ Softwarearchitekt:innen verstehen den Nutzen und die Ziele des Cloud Native Konz
* Lieferartefakte
* Isolation der Applikation vom Hostsystem

Literatur: <<davis>>

[[LZ-3-2]]
==== LZ 3-2: Grundlegende Container Konzepte verstehen

Expand All @@ -35,6 +37,8 @@ Softwarearchitekt:innen verstehen die Abstraktionskonzepte aktueller Container-M
* Skalierung und Load Balancing
* Placement

Literatur: <<bruns>>, <<bilgin_huss>>

Softwarearchitekt:innen kennen die Prinzipien eines Overlay-Networks (VLAN) für Container und Container-Manager und verstehen, wie verschiedene Services oder Systeme isoliert werden. Sie kennen Anforderungszenarien wie z. B. die Realisierung einer verteilten Firewall zur Isolation von:

* Mehreren Mandanten
Expand Down Expand Up @@ -67,6 +71,7 @@ Software architects understand the benefits and goals of the Cloud Native concep
* Resource abstraction
* Delivery artifacts

References: <<davis>>

[[LG-3-2]]
==== LG 3-2: Understand basic container concepts
Expand All @@ -92,8 +97,9 @@ Software architects understand the abstraction concepts of current container man
* Scaling and load balancing
* Placement

Software architects know the principles of an overlay network (VLAN) for containers and container managers and understand how different services or systems are isolated. They are familiar with requirement scenarios such as implementing a distributed firewall for isolating:
References: <<davis>>, <<bruns>>, <<bilgin_huss>>

Software architects know the principles of an overlay network (VLAN) for containers and container managers and understand how different services or systems are isolated. They are familiar with requirement scenarios such as implementing a distributed firewall for isolating:

* Multiple tenants
* Test systems in the context of CI/CD
Expand All @@ -115,5 +121,3 @@ Software architects understand the advantages and disadvantages of a cloud-nativ
They are familiar with various concepts for backing up and restoring persistent data in the cloud.

// end::EN[]


6 changes: 3 additions & 3 deletions docs/03-Cloud-Native-Journey/references.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
=== {references}

- Brendan Burns: Designing Distributed Systems. Patterns and Paradigms for Scaleable, Reliable Services. O'Reilly Media, 2018
- [[[davis,Davis 2019]]] Cornelia Davis: Cloud Native Patterns. Designing Change-tolerant Software. Manning, 2019
- Cornelia Davis: Cloud Native Patterns. Designing Change-tolerant Software. Manning, 2019
- [[[burns,Burns 2018]]] Brendan Burns: Designing Distributed Systems. Patterns and Paradigms for Scaleable, Reliable Services. O'Reilly Media, 2018
- Ibryam Bilgin, Roland Huss: Kubernetes Patterns. Reusable Elements for Designing Cloud Native Applications. O'Reilly Media, Second edition, 2023
- [[[bilgin_huss,Bilgin, Huss 2023]]] Ibryam Bilgin, Roland Huss: Kubernetes Patterns. Reusable Elements for Designing Cloud Native Applications. O'Reilly Media, Second edition, 2023
10 changes: 8 additions & 2 deletions docs/04-Patterns/02-learning-goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ Sie kennen verschiedene Container Application Design Muster, wie zum Beispiel:
* Scatter & Gather
* Work Queue

Literatur: <<burns>>

Softwarearchitekt:innen kennen Methoden, um technische von fachlichen Aufgaben durch getrennte Container zu realisieren und verstehen, wie Container-Manager über dieses Prinzip technische Aufgaben übernimmt, insbesondere:

* Konfiguration und Initialisierung von Anwendungen
Expand All @@ -31,6 +33,8 @@ Softwarearchitekt:innen kennen u. a. folgende Resilienz-Muster:
* Conditional Rate Limits
* Traffic Shifting

Literatur: <<davis>>

Sie kennen das Konzept von Chaos Engineering und dessen Methoden, die Systemresilienz durch gezieltes Einbringen von Störungen zu testen.

// end::DE[]
Expand All @@ -47,6 +51,8 @@ They are aware of various container application design patterns, such as:
* Scatter & Gather
* Work Queue

References: <<burns>>

Software architects are familiar with methods for separating technical and business tasks through separate containers and understand how container managers handle technical tasks through this principle, particularly:

* Configuration and initialization of applications
Expand All @@ -66,8 +72,8 @@ Software architects are familiar with the following resilience patterns, among o
* Conditional Rate Limits
* Traffic Shifting

References: <<davis>>

They are familiar with the concept of chaos engineering and its methods to test system resilience by deliberately introducing disruptions.

// end::EN[]


6 changes: 3 additions & 3 deletions docs/04-Patterns/references.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
=== {references}

- Brendan Burns: Designing Distributed Systems. Patterns and Paradigms for Scaleable, Reliable Services. O'Reilly Media, 2018
- [[[davis,Davis 2019]]] Cornelia Davis: Cloud Native Patterns. Designing Change-tolerant Software. Manning, 2019
- Ibryam Bilgin, Roland Huss: Kubernetes Patterns. Reusable Elements for Designing Cloud Native Applications. O'Reilly Media, Second edition, 2023
- [[[burns,Burns 2018]]] Brendan Burns: Designing Distributed Systems. Patterns and Paradigms for Scaleable, Reliable Services. O'Reilly Media, 2018
- Cornelia Davis: Cloud Native Patterns. Designing Change-tolerant Software. Manning, 2019
- [[[bilgin_huss,Bilgin, Huss 2023]]] Ibryam Bilgin, Roland Huss: Kubernetes Patterns. Reusable Elements for Designing Cloud Native Applications. O'Reilly Media, Second edition, 2023
15 changes: 12 additions & 3 deletions docs/05-Development-and-CICD/02-learning-goals.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,15 @@ Sie kennen Möglichkeiten, um in einer Cloud-Umgebung Deployments und ein Applic
** Canary Deployment
** Blue/Green Deployment

Literatur: <<davis>>, <<bilgin_huss>>

Sie kennen Komponenten und Vorgehensmodelle, um einen schnellen Test- und Deployment-Prozess zu realisieren. Insbesondere Konzepte zum Dev/Test/Prod Cluster wie:

* Verantwortlichkeiten und Zugriffskontrolle
* Good Practices zur Komponentengruppierung

Literatur : <<richardson>>

[[LZ-5-2]]
==== LZ 5-2: Wege der Beobachtbarkeit von verteilten Applikationen kennen

Expand All @@ -36,6 +40,8 @@ Sie kennen die besonderen Rahmenbedingungen verteilter Anwendung und den Einflus
* Monitoring/Metriken und Alerting
* Distributed Tracing

Literatur: <<davis>>

Sie kennen Wege und Verantwortlichkeiten zur Erstellung möglichst fehlervorhersagenden Time Series Queries für Alerts.
// end::DE[]

Expand All @@ -58,11 +64,15 @@ They understand the possibilities of implementing deployments and application li
** Canary deployment
** Blue/green deployment

References: <<davis>>, <<bilgin_huss>>

They are familiar with components and models for achieving a fast testing and deployment process, particularly concepts related to dev/test/prod clusters, such as:

* Responsibilities and access control
* Good practices for component grouping

Literatur : <<richardson>>

[[LG-5-2]]
==== LG 5-2: Understanding approaches for observability of distributed applications

Expand All @@ -74,8 +84,7 @@ They understand the unique conditions of distributed applications and their impa
* Monitoring/metrics and alerting
* Distributed tracing

They are familiar with approaches and responsibilities for creating predictive time series queries for alerts.
Literatur : <<davis>>

They are familiar with approaches and responsibilities for creating predictive time series queries for alerts.
// end::EN[]


3 changes: 3 additions & 0 deletions docs/05-Development-and-CICD/references.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
=== {references}

- [[[davis,Davis 2019]]] Cornelia Davis: Cloud Native Patterns. Designing Change-tolerant Software. Manning, 2019
- [[[bilgin_huss,Bilgin, Huss 2023]]] Ibryam Bilgin, Roland Huss: Kubernetes Patterns. Reusable Elements for Designing Cloud Native Applications. O'Reilly Media, Second edition, 2023
- [[[richardson,Richardson 2018]]] Chris Richardson: Microservice Patterns. Manning, 2018

0 comments on commit cc06654

Please sign in to comment.