feat(c4-context): added/changed context of EDFoundry/EDP
This commit is contained in:
parent
f3bf66d9e5
commit
c57bc7ad18
14 changed files with 210 additions and 7 deletions
21
.vscode/settings.json
vendored
21
.vscode/settings.json
vendored
|
@ -1,3 +1,22 @@
|
||||||
{
|
{
|
||||||
"peacock.color": "#832561"
|
"peacock.color": "#832561",
|
||||||
|
"workbench.colorCustomizations": {
|
||||||
|
"activityBar.activeBackground": "#ab307e",
|
||||||
|
"activityBar.background": "#ab307e",
|
||||||
|
"activityBar.foreground": "#e7e7e7",
|
||||||
|
"activityBar.inactiveForeground": "#e7e7e799",
|
||||||
|
"activityBarBadge.background": "#25320e",
|
||||||
|
"activityBarBadge.foreground": "#e7e7e7",
|
||||||
|
"commandCenter.border": "#e7e7e799",
|
||||||
|
"sash.hoverBorder": "#ab307e",
|
||||||
|
"statusBar.background": "#832561",
|
||||||
|
"statusBar.foreground": "#e7e7e7",
|
||||||
|
"statusBarItem.hoverBackground": "#ab307e",
|
||||||
|
"statusBarItem.remoteBackground": "#832561",
|
||||||
|
"statusBarItem.remoteForeground": "#e7e7e7",
|
||||||
|
"titleBar.activeBackground": "#832561",
|
||||||
|
"titleBar.activeForeground": "#e7e7e7",
|
||||||
|
"titleBar.inactiveBackground": "#83256199",
|
||||||
|
"titleBar.inactiveForeground": "#e7e7e799"
|
||||||
|
}
|
||||||
}
|
}
|
13
likec4/components/tools.c4
Normal file
13
likec4/components/tools.c4
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
model {
|
||||||
|
component edfbuilder "edfbuilder" {
|
||||||
|
description 'EDP Foundry Builder'
|
||||||
|
technology 'Golang'
|
||||||
|
icon tech:go
|
||||||
|
style {
|
||||||
|
shape rectangle
|
||||||
|
}
|
||||||
|
-> edf "boots one"
|
||||||
|
platformdeveloper -> edfbuilder "runs"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,5 +1,30 @@
|
||||||
model {
|
model {
|
||||||
developer = actor 'Developer' {
|
developer = actor 'Developer' {
|
||||||
description 'The regular user of the platform'
|
description 'The regular user of the platform'
|
||||||
|
-> localbox 'inner loop development'
|
||||||
|
-> edp 'outer loop development'
|
||||||
|
-> edp.ui 'manages project'
|
||||||
|
-> edp.forgejo 'manages code'
|
||||||
|
-> edp.keycloak 'authenticates'
|
||||||
|
-> edp.argoCD 'manages deployments'
|
||||||
|
}
|
||||||
|
platformdeveloper = actor 'Platform Developer' {
|
||||||
|
description 'The EDP engineer'
|
||||||
|
style {
|
||||||
|
color gray
|
||||||
|
shape person
|
||||||
|
}
|
||||||
|
}
|
||||||
|
otherProductLifecycleRoles = actor 'Reviewer, Tester, Auditors, Operators' {
|
||||||
|
description 'The EDP engineer'
|
||||||
|
-> edp 'act according to responibility'
|
||||||
|
}
|
||||||
|
customers = actor 'End Customers' {
|
||||||
|
description 'Consumers of your Application'
|
||||||
|
style {
|
||||||
|
color amber
|
||||||
|
shape person
|
||||||
|
}
|
||||||
|
-> cloud 'uses your app'
|
||||||
}
|
}
|
||||||
}
|
}
|
6
likec4/context/cloud.c4
Normal file
6
likec4/context/cloud.c4
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
model {
|
||||||
|
cloud = system 'Cloud' {
|
||||||
|
description 'Cloud environments'
|
||||||
|
technology 'IaaS/PaaS'
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,9 +2,33 @@ views {
|
||||||
|
|
||||||
view overview {
|
view overview {
|
||||||
title 'Landscape view'
|
title 'Landscape view'
|
||||||
|
autoLayout LeftRight 100 100
|
||||||
|
|
||||||
include *
|
include *
|
||||||
|
exclude developer, localbox, edp, otherProductLifecycleRoles
|
||||||
exclude element.kind = workflow
|
exclude element.kind = workflow
|
||||||
|
|
||||||
|
group 'developer-scope' {
|
||||||
|
color green
|
||||||
|
opacity 20%
|
||||||
|
border none
|
||||||
|
include developer
|
||||||
|
include otherProductLifecycleRoles
|
||||||
|
|
||||||
|
group 'Devops inner-loop' {
|
||||||
|
color gray
|
||||||
|
opacity 30%
|
||||||
|
border none
|
||||||
|
|
||||||
|
include localbox
|
||||||
|
}
|
||||||
|
group 'Devops outer-loop' {
|
||||||
|
color gray
|
||||||
|
opacity 30%
|
||||||
|
border none
|
||||||
|
include edp
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
view edp of edp {
|
view edp of edp {
|
||||||
|
|
6
likec4/context/customer-systems.c4
Normal file
6
likec4/context/customer-systems.c4
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
model {
|
||||||
|
enterprise = system 'Customers Enterprise Systems' {
|
||||||
|
description 'The customers enterprise systems'
|
||||||
|
-> cloud 'probably some app specific dependencies'
|
||||||
|
}
|
||||||
|
}
|
6
likec4/context/desc.md
Normal file
6
likec4/context/desc.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# Containers
|
||||||
|
|
||||||
|
## Inner loop, outer loop
|
||||||
|
|
||||||
|

|
||||||
|
* [What software delivery leaders need to know about inner & outer loops](https://curiositysoftware.medium.com/what-software-delivery-leaders-need-to-know-about-inner-outer-loops-9da765b0ca2c)
|
9
likec4/context/edfoundry.c4
Normal file
9
likec4/context/edfoundry.c4
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
model {
|
||||||
|
edf = system 'EDF' {
|
||||||
|
description 'EDP Foundry, the EDP builder'
|
||||||
|
technology 'Kubernetes'
|
||||||
|
icon tech:kubernetes
|
||||||
|
-> edp 'builds many'
|
||||||
|
platformdeveloper -> edf "develops EDP and EDF"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,9 @@
|
||||||
model {
|
model {
|
||||||
edp = system 'EDP' {
|
edp = system 'EDP' {
|
||||||
|
description 'EDP Edge Development platform'
|
||||||
|
technology 'Kubernetes'
|
||||||
|
-> enterprise 'integrates'
|
||||||
|
-> cloud 'deploys and observes'
|
||||||
|
|
||||||
container ui 'Backstage' {
|
container ui 'Backstage' {
|
||||||
description 'Developer Portal'
|
description 'Developer Portal'
|
||||||
|
@ -216,12 +220,8 @@ model {
|
||||||
|
|
||||||
// UI requests data from the Backend
|
// UI requests data from the Backend
|
||||||
// ui -> backend 'fetches via HTTPS'
|
// ui -> backend 'fetches via HTTPS'
|
||||||
}
|
|
||||||
|
|
||||||
developer -> ui 'manages project'
|
-> localbox // inner-outer loop synchronization
|
||||||
developer -> forgejo 'manages code'
|
}
|
||||||
developer -> keycloak 'authenticates'
|
|
||||||
developer -> argoCD 'manages deployments'
|
|
||||||
developer -> edp 'outer loop development'
|
|
||||||
}
|
}
|
||||||
|
|
8
likec4/context/localbox.c4
Normal file
8
likec4/context/localbox.c4
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
model {
|
||||||
|
localbox = system 'localbox' {
|
||||||
|
description 'A local development system'
|
||||||
|
technology 'Linux/Windows/Mac'
|
||||||
|
-> edp 'inner-outer-loop synchronization'
|
||||||
|
-> enterprise 'compyny integration'
|
||||||
|
}
|
||||||
|
}
|
BIN
likec4/context/localdev.png
Normal file
BIN
likec4/context/localdev.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 238 KiB |
14
likec4/devbox.json
Normal file
14
likec4/devbox.json
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.14.0/.schema/devbox.schema.json",
|
||||||
|
"packages": ["nodejs@latest"],
|
||||||
|
"shell": {
|
||||||
|
"init_hook": [
|
||||||
|
"echo 'Welcome to devbox!' > /dev/null"
|
||||||
|
],
|
||||||
|
"scripts": {
|
||||||
|
"test": [
|
||||||
|
"echo \"Error: no test specified\" && exit 1"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
73
likec4/devbox.lock
Normal file
73
likec4/devbox.lock
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
{
|
||||||
|
"lockfile_version": "1",
|
||||||
|
"packages": {
|
||||||
|
"github:NixOS/nixpkgs/nixpkgs-unstable": {
|
||||||
|
"resolved": "github:NixOS/nixpkgs/250b695f41e0e2f5afbf15c6b12480de1fe0001b?lastModified=1743814133&narHash=sha256-drDyYyUmjeYGiHmwB9eOPTQRjmrq3Yz26knwmMPLZFk%3D"
|
||||||
|
},
|
||||||
|
"nodejs@latest": {
|
||||||
|
"last_modified": "2025-03-16T16:17:41Z",
|
||||||
|
"plugin_version": "0.0.2",
|
||||||
|
"resolved": "github:NixOS/nixpkgs/8f76cf16b17c51ae0cc8e55488069593f6dab645#nodejs_23",
|
||||||
|
"source": "devbox-search",
|
||||||
|
"version": "23.10.0",
|
||||||
|
"systems": {
|
||||||
|
"aarch64-darwin": {
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "out",
|
||||||
|
"path": "/nix/store/dihlffh62qmgzsrxq1igwxicdyr3fn8a-nodejs-23.10.0",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "libv8",
|
||||||
|
"path": "/nix/store/ks94i4365833bykrzg3d3mqxnciygyrn-nodejs-23.10.0-libv8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"store_path": "/nix/store/dihlffh62qmgzsrxq1igwxicdyr3fn8a-nodejs-23.10.0"
|
||||||
|
},
|
||||||
|
"aarch64-linux": {
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "out",
|
||||||
|
"path": "/nix/store/m7j1lf8a4z5bfla1m78pa3y12888hl7b-nodejs-23.10.0",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "libv8",
|
||||||
|
"path": "/nix/store/kfvlfxx83n2w2fyb8hiz4p4dc165r035-nodejs-23.10.0-libv8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"store_path": "/nix/store/m7j1lf8a4z5bfla1m78pa3y12888hl7b-nodejs-23.10.0"
|
||||||
|
},
|
||||||
|
"x86_64-darwin": {
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "out",
|
||||||
|
"path": "/nix/store/nj0d1lc4nanqj7v4ibcgd26m3p5yfb0h-nodejs-23.10.0",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "libv8",
|
||||||
|
"path": "/nix/store/k5rvmvqyibamfxa7cfzjfd5ldmi38kf3-nodejs-23.10.0-libv8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"store_path": "/nix/store/nj0d1lc4nanqj7v4ibcgd26m3p5yfb0h-nodejs-23.10.0"
|
||||||
|
},
|
||||||
|
"x86_64-linux": {
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "out",
|
||||||
|
"path": "/nix/store/m7imcmwi4hschl257dzc33gxciqlf4bm-nodejs-23.10.0",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "libv8",
|
||||||
|
"path": "/nix/store/wy7ysxmd2ygdc5zpbhf9ripwgvvvnwsd-nodejs-23.10.0-libv8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"store_path": "/nix/store/m7imcmwi4hschl257dzc33gxciqlf4bm-nodejs-23.10.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue