170 lines
6.1 KiB
Plaintext
170 lines
6.1 KiB
Plaintext
|
|
workspace {
|
||
|
|
!identifiers hierarchical
|
||
|
|
|
||
|
|
model {
|
||
|
|
properties {
|
||
|
|
"structurizr.groupSeparator" "/"
|
||
|
|
}
|
||
|
|
|
||
|
|
/* **************************************************************
|
||
|
|
* Services and Components running in the K8s cluster *
|
||
|
|
************************************************************** */
|
||
|
|
|
||
|
|
group "Kubernetes Cluster" {
|
||
|
|
ingressController = softwareSystem "Kubernetes Ingress Controller" "Layer 7 Load Balancer" "Kubernetes - ds"
|
||
|
|
clusterIssuer = softwareSystem "Cert Manager Cluster Issuer" "provides certificates" "Kubernetes - crd"
|
||
|
|
group "Namespace" {
|
||
|
|
!include "environment.dsl"
|
||
|
|
group "Instance" {
|
||
|
|
!include "database.dsl"
|
||
|
|
!include "rs.dsl"
|
||
|
|
!include "nstl.dsl"
|
||
|
|
group "nscale Application Layer Cluster" {
|
||
|
|
!include "nappl.dsl"
|
||
|
|
!include "nappljobs.dsl"
|
||
|
|
!include "pipelinercm.dsl"
|
||
|
|
!include "clusterService.dsl"
|
||
|
|
}
|
||
|
|
!include "web.dsl"
|
||
|
|
!include "pipelinerac.dsl"
|
||
|
|
!include "cmis.dsl"
|
||
|
|
!include "webdav.dsl"
|
||
|
|
!include "ilm.dsl"
|
||
|
|
!include "mon.dsl"
|
||
|
|
!include "pam.dsl"
|
||
|
|
!include "sharepoint.dsl"
|
||
|
|
|
||
|
|
!include "adminserver.dsl"
|
||
|
|
!include "application.dsl"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/* **************************************************************
|
||
|
|
* Client Applications, accessing the Services and Components *
|
||
|
|
************************************************************** */
|
||
|
|
|
||
|
|
adminclient = softwareSystem "nscale Administrator" "Eclipse RCP Administrator Client" {
|
||
|
|
tags "richclient, nscale"
|
||
|
|
-> adminserver.l3lb "Remote Management" "RMS and https Protocols"
|
||
|
|
}
|
||
|
|
mobileclient = softwareSystem "nscale Mobile" "Rich Mobile Client" {
|
||
|
|
tags "mobileclient, nscale"
|
||
|
|
-> ingressController "https /nscalealinst1"
|
||
|
|
}
|
||
|
|
cockpitclient = softwareSystem "nscale Cockpit" "Rich Windows Client" {
|
||
|
|
tags "richtclient, nscale"
|
||
|
|
-> ingressController "https /nscalealinst1"
|
||
|
|
}
|
||
|
|
webclient = softwareSystem "nscale Web" "Thin Web Client" {
|
||
|
|
tags "webclient, nscale"
|
||
|
|
-> ingressController "https /nscale_web"
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
/* **************************************************************
|
||
|
|
* Users running the clients above *
|
||
|
|
************************************************************** */
|
||
|
|
|
||
|
|
user = person "User" {
|
||
|
|
description "uses the Business Applications running in the Environment"
|
||
|
|
-> mobileclient "use"
|
||
|
|
-> cockpitclient "use"
|
||
|
|
-> webclient "use"
|
||
|
|
}
|
||
|
|
admin = person "Admin" {
|
||
|
|
description "Maintains and Operates the Environment"
|
||
|
|
-> adminclient "use"
|
||
|
|
-> nplus.davserver "mount"
|
||
|
|
-> nplus.toolbox "use"
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
/* **************************************************************
|
||
|
|
* 3rd Party Applications accessing the Services and Components *
|
||
|
|
************************************************************** */
|
||
|
|
|
||
|
|
sap = softwareSystem "SAP" "SAP Server" {
|
||
|
|
-> ingressController "consume AL" "SAP Archive Link Protocol"
|
||
|
|
-> ingressController "consume ILM" "SAP Information Lifecycle Management Protocol"
|
||
|
|
}
|
||
|
|
|
||
|
|
o365sp = softwareSystem "SharePoint" "SharePoint Server" {
|
||
|
|
}
|
||
|
|
|
||
|
|
/* when you run a SAP System, you most likely also want to access it for replication */
|
||
|
|
nappl.replicaset.main -> sap "consume SNC" "SAP SNC Access"
|
||
|
|
|
||
|
|
|
||
|
|
app = softwareSystem "3rd Party Software" "Any Application with Access Rights" {
|
||
|
|
-> ingressController "AC" "nscale Advanced Connect API
|
||
|
|
-> ingressController "REST" "nscale REST API"
|
||
|
|
-> ingressController "CMIS REST" "cmis REST API"
|
||
|
|
-> ingressController "CMIS SOAP" "cmis SOAP API"
|
||
|
|
-> ingressController "Pipeliner DAV" "DAV Payload Dropoff Service"
|
||
|
|
}
|
||
|
|
|
||
|
|
/* **************************************************************
|
||
|
|
* 3rd Party Identity and Authentication Services *
|
||
|
|
************************************************************** */
|
||
|
|
|
||
|
|
idp = softwareSystem "Identity Provider" {
|
||
|
|
description "Provider or Broker for Identity Information and SSO Services"
|
||
|
|
-> nappl "Authorize" "Single Sign On with optional Multi Factor" "saml, openid"
|
||
|
|
-> nappljobs "Import" "Periodic Import of Account / Group Information via LDAP"
|
||
|
|
user -> this "authenticate"
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
views {
|
||
|
|
|
||
|
|
theme https://static.structurizr.com/themes/kubernetes-v0.3/theme.json
|
||
|
|
|
||
|
|
# As soon as we use our own views, all default views are gone...
|
||
|
|
!include "views.dsl"
|
||
|
|
|
||
|
|
styles {
|
||
|
|
element "Person" {
|
||
|
|
shape Person
|
||
|
|
}
|
||
|
|
element "Kubernetes - svc" {
|
||
|
|
shape hexagon
|
||
|
|
}
|
||
|
|
element "Database" {
|
||
|
|
background #707070
|
||
|
|
color #ffffff
|
||
|
|
shape cylinder
|
||
|
|
}
|
||
|
|
element "Kubernetes - pvc" {
|
||
|
|
shape cylinder
|
||
|
|
}
|
||
|
|
element "nscale" {
|
||
|
|
color #FFFFFF
|
||
|
|
background #11a63c
|
||
|
|
}
|
||
|
|
element "nplus" {
|
||
|
|
color #FFFFFF
|
||
|
|
background #424c63
|
||
|
|
}
|
||
|
|
element "planned" {
|
||
|
|
opacity 30
|
||
|
|
}
|
||
|
|
element "mobileclient" {
|
||
|
|
shape "MobileDeviceLandscape"
|
||
|
|
}
|
||
|
|
element "richclient" {
|
||
|
|
shape "Window"
|
||
|
|
}
|
||
|
|
element "webclient" {
|
||
|
|
shape "WebBrowser"
|
||
|
|
}
|
||
|
|
element "Group" {
|
||
|
|
color #ff00ff
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|