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 } } } }