-
-
Notifications
You must be signed in to change notification settings - Fork 29
/
deployment_diagram.puml
63 lines (53 loc) · 2.84 KB
/
deployment_diagram.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
@startuml
' configures the library
!global $INCLUSION_MODE="local"
!global $LIB_BASE_LOCATION=".."
' loads the library's bootstrap
!include $LIB_BASE_LOCATION/bootstrap.puml
' loads the package bootstrap
include('c4nord/bootstrap')
C4Legend()
Title("Deployment diagram of Internet Banking System - Live")
left to right direction
include('c4model/Element/Container')
include('c4model/Boundary/ContainerBoundary')
include('c4model/Boundary/DeploymentNodeBoundary')
include('c4model/Element/Database')
include('c4model/Element/Component')
DeploymentNodeBoundary("dep_sa_c", "Customer's computer", "GNU/Linux, Microsoft Windows or Apple macOS") {
DeploymentNodeBoundary("dep_sa_wb", "Web Browser", "Firefox, Chrome, Safari, or Edge") {
Container("spa", "Single-Page Application", "Provides all of the Internet banking functionality to customers via their browser.", "JavaScript and Angular")
}
}
DeploymentNodeBoundary("dep_ma", "Customer's mobile device", "Apple iOS, or Android") {
Container("ma", "Mobile App", "Provides limited subset of the Internet banking functionality to customers via their mobile device.", "Xamarin")
}
DeploymentNodeBoundary("dep_bnk", "Big Bank plc", "Big Bank plc data center") {
DeploymentNodeBoundary("dep_bnk_web", "bigbank-web***", "Ubuntu 16.04 LTS") {
DeploymentNodeBoundary("dep_bnk_web_tc", "Apache Tomcat", "Apache Tomcat 8.x") {
Container("wa", "Web Application", "Delivers the static content and the Internet banking single page application.", "Java and Spring MVC")
}
}
DeploymentNodeBoundary("dep_bnk_api", "bigbank-api***", "Ubuntu 16.04 LTS") {
DeploymentNodeBoundary("dep_bnk_api_tc", "Apache Tomcat", "Apache Tomcat 8.x") {
Container("api", "API Application", "Provides Internet banking functionality via a JSON/HTTPS API.", "Java and Spring MVC")
}
}
DeploymentNodeBoundary("dep_bnk_db1", "bigbank-db1", "Ubuntu 16.04 LTS") {
DeploymentNodeBoundary("dep_bnk_db1_primary", "Oracle - Primary", "Oracle 12c") {
Database("db", "Database", "Stores user registration information, hashed authentication credentials, access log, etc.", "Oracle Database Schema")
}
}
DeploymentNodeBoundary("dep_bnk_db2", "bigbank-db2", "Ubuntu 16.04 LTS") {
DeploymentNodeBoundary("dep_bnk_db2_secondary", "Oracle - Secondary", "Oracle 12c") {
Database("db_bis", "Database", "Stores user registration information, hashed authentication credentials, access log, etc.", "Oracle Database Schema")
}
}
}
spa --> api : C4Relationship("Maks API calls to", "JSON/HTTPS")
ma --> api : C4Relationship("Maks API calls to", "JSON/HTTPS")
api --> db : C4Relationship("Reads from and writes to", "JDBC")
api --> db_bis : C4Relationship("Reads from and writes to", "JDBC")
db -right-> db_bis : C4Relationship("Replicates data to")
wa -u-> spa : C4Relationship("Delivers to the the customer's browser")
@enduml