-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbatch_case.dsl
79 lines (68 loc) · 3.83 KB
/
batch_case.dsl
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
workspace {
model {
stock_controller = person "Stock controller" "Person responsible for the stock levels of all products in a certain product category." "External"
data_scientist = person "Data Scientist" "Person involved in developing the machine learning model." "External"
forecasting_model = softwareSystem "Demand forecasting" "Machine learning model predicting the monthly product demand." {
data_scientist -> this "Develops"
model_predictions_database = container "Forecast storage" "OLTP database used for storing predicted demand per product per month/year." "" "Database, Microsoft Azure - Azure Cosmos DB"
model_registry = container "Model registry" "Storage location for experiments, model artifacts and model metadata." "MLFlow" "Database, Model Registry"
prediction_pipeline = container "Prediction pipeline" "Pyspark script scheduled to run the first of each month predicting demand for all products three months in advance." "PySpark pipeline" "Microsoft Azure - Azure Databricks" {
this -> model_predictions_database "Writes forecasts to"
this -> model_registry "Loads model from"
}
model_training_pipeline = container "Model training" "Pipeline that trains a new model based on input data." "Azure ML pipeline" "Microsoft Azure - Machine Learning" {
this -> model_registry "Writes candidate model to"
}
evaluation_dashboard = container "Performance dashboard" "Dashboard showing key performance indicator for demand predictions." "" "FE, Microsoft Azure - Azure Databricks" {
stock_controller -> this "Analyses"
data_scientist -> this "Analyses"
}
evaluation_pipeline = container "Evaluation job" "Compares the real demand figures with the predicted values and creates a dashboard for analysis." "PySpark pipeline" "Microsoft Azure - Azure Databricks" {
this -> model_predictions_database "Reads forecasts"
this -> evaluation_dashboard "Writes data"
}
notebook_service = container "Data exploration service" "Jupyter notebook environment with access to data used for exploratory analysis." "Jupyter notebook" "FE, Microsoft Azure - Machine Learning Studio Workspaces" {
data_scientist -> this "Uses"
}
}
data_warehouse = softwareSystem "Data warehouse" "Company data warehouse." "External, Database, Microsoft Azure - Azure Databricks" {
training_database = container "Sales data" "Data warehouse tables containing historical sales figures." {
evaluation_pipeline -> this "Read sales figures"
notebook_service -> this "Loads data from"
model_training_pipeline -> this "Read data from"
}
}
erp_system = softwareSystem "Enterprise Resource Planning (ERP) software" "Software used to manage warehouse inventory." "External" {
this -> model_predictions_database "Reads data from" "JDBC"
stock_controller -> this "Uses"
}
}
views {
systemContext forecasting_model {
include *
include stock_controller
}
container forecasting_model {
include *
include stock_controller
}
theme "https://static.structurizr.com/themes/microsoft-azure-2023.01.24/theme.json"
styles {
element "Element" {
background #3420B1
}
element "Model Registry" {
icon "https://raw.githubusercontent.com/mlflow/mlflow/master/docs/source/_static/MLflow-logo-final-black.png"
}
element "External" {
background #cccccc
}
element "FE" {
shape WebBrowser
}
element "Database" {
shape Cylinder
}
}
}
}