feat(c4-model): added likec4 system model
This commit is contained in:
parent
e78b3fb9b1
commit
97599dfa99
8 changed files with 155 additions and 17 deletions
13
.devcontainer/Dockerfile
Normal file
13
.devcontainer/Dockerfile
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
FROM mcr.microsoft.com/devcontainers/base:ubuntu
|
||||||
|
# Install the xz-utils package
|
||||||
|
RUN apt-get update && apt-get upgrade && apt install -y ca-certificates curl gnupg
|
||||||
|
|
||||||
|
|
||||||
|
RUN mkdir -p /etc/apt/keyrings
|
||||||
|
RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
||||||
|
|
||||||
|
RUN echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
|
||||||
|
|
||||||
|
RUN sudo apt update && apt install nodejs -y
|
||||||
|
|
||||||
|
RUN npm install --global likec4
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{
|
{
|
||||||
"name": "Ubuntu",
|
"name": "Ubuntu",
|
||||||
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
|
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
|
||||||
|
// "build": {
|
||||||
|
// "dockerfile": "Dockerfile"
|
||||||
|
// },
|
||||||
"features": {
|
"features": {
|
||||||
"ghcr.io/devcontainers/features/git:1": {},
|
"ghcr.io/devcontainers/features/git:1": {},
|
||||||
"ghcr.io/devcontainers/features/go:1": {},
|
"ghcr.io/devcontainers/features/go:1": {},
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,14 @@ Our first architectural blue print for the IPCEI-CIS Developer Framework derives
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
## C4 Model
|
||||||
|
|
||||||
|
(sources see in ./ressources/architecture-c4)
|
||||||
|
|
||||||
|
First system landscape C4 model:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## In Confluence
|
## In Confluence
|
||||||
|
|
||||||
https://confluence.telekom-mms.com/display/IPCEICIS/Architecture
|
https://confluence.telekom-mms.com/display/IPCEICIS/Architecture
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
@startuml
|
|
||||||
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Dynamic.puml
|
|
||||||
|
|
||||||
LAYOUT_WITH_LEGEND()
|
|
||||||
|
|
||||||
ContainerDb(c4, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.")
|
|
||||||
Container(c1, "Single-Page Application", "JavaScript and Angular", "Provides all of the Internet banking functionality to customers via their web browser.")
|
|
||||||
Container_Boundary(b, "API Application") {
|
|
||||||
Component(c3, "Security Component", "Spring Bean", "Provides functionality Related to signing in, changing passwords, etc.")
|
|
||||||
Component(c2, "Sign In Controller", "Spring MVC Rest Controller", "Allows users to sign in to the Internet Banking System.")
|
|
||||||
}
|
|
||||||
Rel_R(c1, c2, "Submits credentials to", "JSON/HTTPS")
|
|
||||||
Rel(c2, c3, "Calls isAuthenticated() on")
|
|
||||||
Rel_R(c3, c4, "select * from users where username = ?", "JDBC")
|
|
||||||
@enduml
|
|
||||||
|
|
||||||
BIN
content/en/docs/project/planes.png
Executable file
BIN
content/en/docs/project/planes.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 302 KiB |
|
|
@ -50,4 +50,3 @@ Bevor eine Aufgabe umgesetzt wird, muss ein Design vorhanden sein.
|
||||||
Bezüglich der 'Bebauung' von Plaztform-Komponenten gilt für das Design:
|
Bezüglich der 'Bebauung' von Plaztform-Komponenten gilt für das Design:
|
||||||
|
|
||||||
1) Die Zielstellung der Komponenet muss erfasst sein
|
1) Die Zielstellung der Komponenet muss erfasst sein
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,3 +20,8 @@ Die Erwartung ist, dass so ein Projekt als 'Golden Path' abbildbar ist und die E
|
||||||
|
|
||||||
* SIA 'auf die Platform heben' (was immer das bedeutet)
|
* SIA 'auf die Platform heben' (was immer das bedeutet)
|
||||||
* Den Build-Code von SIA (die Applikation und einen Shop) in einen CI/CD Workflow transformieren
|
* Den Build-Code von SIA (die Applikation und einen Shop) in einen CI/CD Workflow transformieren
|
||||||
|
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
* https://platformengineering.org/blog/decoding-golden-paths-the-highway-for-your-developers
|
||||||
126
resources/architecture-c4/platform.c4
Executable file
126
resources/architecture-c4/platform.c4
Executable file
|
|
@ -0,0 +1,126 @@
|
||||||
|
specification {
|
||||||
|
tag plane
|
||||||
|
tag genericPlatformComponent
|
||||||
|
element plane {
|
||||||
|
notation "Plane"
|
||||||
|
style {
|
||||||
|
color gray
|
||||||
|
}
|
||||||
|
}
|
||||||
|
element system {
|
||||||
|
style {
|
||||||
|
opacity 20%
|
||||||
|
color secondary
|
||||||
|
}
|
||||||
|
}
|
||||||
|
element container {
|
||||||
|
style {
|
||||||
|
opacity 20%
|
||||||
|
color secondary
|
||||||
|
}
|
||||||
|
}
|
||||||
|
element component {
|
||||||
|
style {
|
||||||
|
opacity 20%
|
||||||
|
color secondary
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
model {
|
||||||
|
plane DeliveryAndControlPlane {
|
||||||
|
#plane
|
||||||
|
system IDE {
|
||||||
|
#genericPlatformComponent
|
||||||
|
-> CIPipeline
|
||||||
|
}
|
||||||
|
system Portal {
|
||||||
|
#genericPlatformComponent
|
||||||
|
->ApplicationSourceCode
|
||||||
|
}
|
||||||
|
system VersionControl {
|
||||||
|
#genericPlatformComponent
|
||||||
|
style {
|
||||||
|
icon https://upload.wikimedia.org/wikipedia/commons/0/0f/Forgejo-wordmark.svg
|
||||||
|
}
|
||||||
|
component PlatformSourceCode {
|
||||||
|
#genericPlatformComponent
|
||||||
|
title 'Platform Source Code'
|
||||||
|
component IAC {
|
||||||
|
-> Orchestrator
|
||||||
|
}
|
||||||
|
component Automations
|
||||||
|
}
|
||||||
|
component ApplicationSourceCode {
|
||||||
|
#genericPlatformComponent
|
||||||
|
title 'Application Source Code'
|
||||||
|
component Score
|
||||||
|
component Workload
|
||||||
|
-> CIPipeline
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
plane IntegrationAndDeliveryPlane {
|
||||||
|
#plane
|
||||||
|
system CIPipeline {
|
||||||
|
-> Registry
|
||||||
|
}
|
||||||
|
system Registry {
|
||||||
|
-> Orchestrator
|
||||||
|
}
|
||||||
|
system Orchestrator {
|
||||||
|
#genericPlatformComponent
|
||||||
|
style {
|
||||||
|
color red
|
||||||
|
}
|
||||||
|
-> CDPipeline
|
||||||
|
-> SecretsAndIdentityManagement
|
||||||
|
}
|
||||||
|
system CDPipeline {
|
||||||
|
-> RessourcePlane
|
||||||
|
}
|
||||||
|
}
|
||||||
|
plane MonitoringAndLoggingPlane {
|
||||||
|
#plane
|
||||||
|
system Observability
|
||||||
|
}
|
||||||
|
plane SecurityPlane {
|
||||||
|
#plane
|
||||||
|
style {
|
||||||
|
|
||||||
|
}
|
||||||
|
system SecretsAndIdentityManagement {
|
||||||
|
#genericPlatformComponent
|
||||||
|
}
|
||||||
|
}
|
||||||
|
plane RessourcePlane {
|
||||||
|
#plane
|
||||||
|
system Compute
|
||||||
|
system Data
|
||||||
|
system Networking
|
||||||
|
system Services
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
views {
|
||||||
|
/**
|
||||||
|
* @likec4-generated(v1)
|
||||||
|
* iKRoYXNo2Sg4YzM0OTBhYzE2MGZhNjIwNWI5YzNmNjY5ZGE3YzZiMTRiMWMzM2I4qmF1dG9MYXlvdXSiVEKhePiheQCld2lkdGjNCBCmaGVpZ2h0zQeRpW5vZGVz3gAUt0RlbGl2ZXJ5QW5kQ29udHJvbFBsYW5lgqFilP3NAfLNCAvNAkehY8O7SW50ZWdyYXRpb25B
|
||||||
|
* bmREZWxpdmVyeVBsYW5lgqFilPjNBEjNBnLNARqhY8O5TW9uaXRvcmluZ0FuZExvZ2dpbmdQbGFuZYKhYpT9zQVuzQGAzQEJoWPDrVNlY3VyaXR5UGxhbmWCoWKU+s0GiM0Bgs0BCaFjw65SZXNzb3VyY2VQbGFuZYKhYpTNBnTNBEfNAZLNA0ChY8O7RGVsaXZlcnlB
|
||||||
|
* bmRDb250cm9sUGxhbmUuSURFgqFilCXNAijNAUDMtKFjwr5EZWxpdmVyeUFuZENvbnRyb2xQbGFuZS5Qb3J0YWyCoWKUzQG9zQIpzQFAzLShY8LZJkRlbGl2ZXJ5QW5kQ29udHJvbFBsYW5lLlZlcnNpb25Db250cm9sgqFilM0Blc0C+c0GS80BGKFjw9koSW50ZWdy
|
||||||
|
* YXRpb25BbmREZWxpdmVyeVBsYW5lLk9yY2hlc3RyYXRvcoKhYpTNA2jNBIbNAUDMtKFjwtkmSW50ZWdyYXRpb25BbmREZWxpdmVyeVBsYW5lLkNJUGlwZWxpbmWCoWKUIM0EhM0BQMy0oWPC2SRJbnRlZ3JhdGlvbkFuZERlbGl2ZXJ5UGxhbmUuUmVnaXN0cnmCoWKU
|
||||||
|
* zQHEzQSDzQFAzLShY8LZJkludGVncmF0aW9uQW5kRGVsaXZlcnlQbGFuZS5DRFBpcGVsaW5lgqFilM0FAs0Efs0BQMy0oWPC2SdNb25pdG9yaW5nQW5kTG9nZ2luZ1BsYW5lLk9ic2VydmFiaWxpdHmCoWKUHc0Fo80BQMy0oWPC2SpTZWN1cml0eVBsYW5lLlNlY3Jl
|
||||||
|
* dHNBbmRJZGVudGl0eU1hbmFnZW1lbnSCoWKUGs0Gvc0BQsy0oWPCtlJlc3NvdXJjZVBsYW5lLkNvbXB1dGWCoWKUzQaczQR8zQFAzLShY8KzUmVzc291cmNlUGxhbmUuRGF0YYKhYpTNBp3NBTbNAUDMtKFjwrlSZXNzb3VyY2VQbGFuZS5OZXR3b3JraW5ngqFilM0G
|
||||||
|
* ns0Gq80BQMy0oWPCt1Jlc3NvdXJjZVBsYW5lLlNlcnZpY2VzgqFilM0Gnc0F8c0BQMy0oWPC2TlEZWxpdmVyeUFuZENvbnRyb2xQbGFuZS5WZXJzaW9uQ29udHJvbC5QbGF0Zm9ybVNvdXJjZUNvZGWCoWKUzQZ3zQMvzQFAzLShY8LZPERlbGl2ZXJ5QW5kQ29udHJv
|
||||||
|
* bFBsYW5lLlZlcnNpb25Db250cm9sLkFwcGxpY2F0aW9uU291cmNlQ29kZYKhYpTNAb7NAzXNAUDMtKFjwqVlZGdlc4A=
|
||||||
|
*/
|
||||||
|
view planes {
|
||||||
|
title "Platform"
|
||||||
|
description "Platform Reference Architecture High Level Planes (by Humanitec)"
|
||||||
|
include element.tag==#plane, element.tag==#genericPlatformComponent
|
||||||
|
include DeliveryAndControlPlane.*, VersionControl.*, IntegrationAndDeliveryPlane.*, MonitoringAndLoggingPlane.*, RessourcePlane.*
|
||||||
|
|
||||||
|
exclude -> ApplicationSourceCode, -> DeliveryAndControlPlane, -> IntegrationAndDeliveryPlane.*, -> SecurityPlane, -> RessourcePlane
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue