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",
|
||||
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
|
||||
// "build": {
|
||||
// "dockerfile": "Dockerfile"
|
||||
// },
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/git: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
|
||||
|
||||
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:
|
||||
|
||||
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)
|
||||
* 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