doc(ipceicis-363-goldenpath-sia): added platform and environment architecture

This commit is contained in:
Stephan Lo 2024-09-10 15:27:44 +00:00
parent 3b94db7150
commit dc0284d6f1
6 changed files with 206 additions and 1 deletions

View file

@ -25,3 +25,26 @@ Die Erwartung ist, dass so ein Projekt als 'Golden Path' abbildbar ist und die E
## References ## References
* https://platformengineering.org/blog/decoding-golden-paths-the-highway-for-your-developers * https://platformengineering.org/blog/decoding-golden-paths-the-highway-for-your-developers
## Scenario (see IPCEICIS-363)
```mermaid
graph TB
Developer[fa:fa-user developer]
PlatformDeliveryAndControlPlaneIDE[IDE]
subgraph LocalBox["localBox"]
LocalBox.EDF[Platform]
LocalBox.Local[local]
end
subgraph CloudGroup["cloudGroup"]
CloudGroup.Test[test]
CloudGroup.Prod[prod]
end
Developer -. "use preferred IDE as local code editing, building, testing, syncing tool" .-> PlatformDeliveryAndControlPlaneIDE
Developer -. "manage (in Developer Portal)" .-> LocalBox.EDF
PlatformDeliveryAndControlPlaneIDE -. "provide "code"" .-> LocalBox.EDF
LocalBox.EDF -. "provision" .-> LocalBox.Local
LocalBox.EDF -. "provision" .-> CloudGroup.Prod
LocalBox.EDF -. "provision" .-> CloudGroup.Test
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

View file

@ -0,0 +1,76 @@
specification {
tag developer
element actor {
style {
shape person
}
}
element environment
}
model {
actor developer {
-> Platform.DeliveryAndControlPlane.Portal 'use Portal as E2E Golden Path Processor'
-> Platform.DeliveryAndControlPlane.IDE 'use preferred IDE as local code editing, building, testing, syncing tool'
-> Platform.DeliveryAndControlPlane.VersionControl.ApplicationSourceCode 'git cli tools'
-> Platform.DeliveryAndControlPlane.VersionControl.PlatformSourceCode 'git cli tools'
-> Platform.DeliveryAndControlPlane.Portal.Catalogue
-> Platform.DeliveryAndControlPlane.Portal.Documentation
-> Platform.DeliveryAndControlPlane.Portal.Templates
-> Platform.DeliveryAndControlPlane.Portal.SystemDashboard
}
extend Platform.DeliveryAndControlPlane.IDE {
IDE -> Platform.DeliveryAndControlPlane.VersionControl.PlatformSourceCode 'IDE git'
IDE -> Platform.DeliveryAndControlPlane.VersionControl.ApplicationSourceCode 'IDE git'
IDE -> Platform.DeliveryAndControlPlane.Portal.API '(opt.) browse/control in IDE'
}
extend Platform.DeliveryAndControlPlane.Portal {
component API
component Templates
component Catalogue
component Documentation
component SystemDashboard
}
environment localBox {
environment EDF 'Platform' 'Environment for the EDF Platform Orchestration' {
-> local 'provision'
-> test 'provision'
-> prod 'provision'
developer -> this 'manage (in Developer Portal)'
Platform.DeliveryAndControlPlane.IDE -> this 'provide "code"'
}
environment local 'local' 'Environment for developing / Integration'
}
environment cloudGroup {
environment test 'test' 'Environment for review delivery'
environment prod 'prod' 'Environment for final delivery'
}
}
views {
view developer {
title "Developer Experience"
include developer
include Platform.DeliveryAndControlPlane.*
include Platform.DeliveryAndControlPlane.VersionControl.*
include Platform.DeliveryAndControlPlane.Portal.*
include Platform.DeliveryAndControlPlane.IDE with {
title 'IDE'
description 'The IDE is the developers center of coding'
color green
}
}
view environments {
include developer
include Platform.DeliveryAndControlPlane.IDE
include element.kind=environment
autoLayout TopBottom
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

View file

@ -0,0 +1,106 @@
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
}
}
element platform
}
model {
platform Platform {
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
}
}
}