diff --git a/figures/arch.dot b/figures/arch.dot index 40c1ea2..ddbcd7d 100644 --- a/figures/arch.dot +++ b/figures/arch.dot @@ -14,6 +14,8 @@ digraph G { Jupyter [label="Jupyter Notebook server +\n SQLFlow magic command"]; SQLFlow [label="SQLFlow server"]; + ModelZoo [label="Model Zoo server\n(with MySQL to store relational data)"]; + DockerRegistry [label="Docker registry"]; Argo [label="Tekton on Kubernetes\n(each workflow step is a container)"]; AI [label="AI engine\n(Alibaba PAI, KubeFlow+Kuberntes, etc)"]; DBMS [label="database system\n(Hive, MySQL, MaxCompute, etc)"]; @@ -28,9 +30,14 @@ digraph G { Argo -> DBMS [label="submit SQL statement"]; Argo -> AI [label="submit AI job"]; Argo -> DBMS [label="verify data schema"]; + ModelZoo -> DockerRegistry [label="release model definition"]; + DockerRegistry -> SQLFlow [label="use model definition"]; + SQLFlow -> DBMS [label="save trained models"]; + ModelZoo -> DBMS [label="share trained models"]; Client [label="sqlflow command-line client"]; User3 -> Client; Client -> SQLFlow [label="SQL/Flow program"]; + Client -> ModelZoo [label="share models or use shared models"]; } diff --git a/figures/arch.svg b/figures/arch.svg index 69098e1..1c33c19 100644 --- a/figures/arch.svg +++ b/figures/arch.svg @@ -1,156 +1,204 @@ - - - + + G - + User1 - -Lily + +Lily Browser1 - -Web browser + +Web browser User1->Browser1 - - + + User2 - -Bob + +Bob Browser2 - -Web browser + +Web browser User2->Browser2 - - + + User3 - -Eva + +Eva Client - -sqlflow command-line client + +sqlflow command-line client - + User3->Client - - + + Jupyter - -Jupyter Notebook server + - SQLFlow magic command + +Jupyter Notebook server + + SQLFlow magic command Browser1->Jupyter - - -SQL/Flow program + + +SQL/Flow program Browser2->Jupyter - - + + SQLFlow - -SQLFlow server + +SQLFlow server - + Client->SQLFlow - - -SQL/Flow program + + +SQL/Flow program + + + +ModelZoo + +Model Zoo server +(with MySQL to store relational data) + + + +Client->ModelZoo + + +share models or use shared models Jupyter->SQLFlow - - -SQL/Flow program + + +SQL/Flow program - + Argo - -Tekton on Kubernetes -(each workflow step is a container) + +Tekton on Kubernetes +(each workflow step is a container) SQLFlow->Argo - - -Argo workflow + + +Argo workflow - + + +DBMS + +database system +(Hive, MySQL, MaxCompute, etc) + + + +SQLFlow->DBMS + + +save trained models + + +DockerRegistry + +Docker registry + + + +ModelZoo->DockerRegistry + + +release model definition + + + +ModelZoo->DBMS + + +share trained models + + + +DockerRegistry->SQLFlow + + +use model definition + + + AI - -AI engine -(Alibaba PAI, KubeFlow+Kuberntes, etc) + +AI engine +(Alibaba PAI, KubeFlow+Kuberntes, etc) Argo->AI - - -submit AI job - - - -DBMS - -database system -(Hive, MySQL, MaxCompute, etc) + + +submit AI job Argo->DBMS - - -submit SQL statement + + +submit SQL statement Argo->DBMS - - -verify data schema + + +verify data schema diff --git a/figures/arch_vm.dot b/figures/arch_vm.dot index a9604d1..52e57e0 100644 --- a/figures/arch_vm.dot +++ b/figures/arch_vm.dot @@ -1,11 +1,12 @@ digraph G { + rankdir = TB; node [shape=box]; User1 [shape=oval, label="Lily"]; User2 [shape=oval, label="Bob"]; User3 [shape=oval, label="Eva"]; - {rank = same; User1; User2; User3} + {rank = source; User1; User2; User3} Browser1 [label="Web browser"]; Browser2 [label="Web browser"]; @@ -14,11 +15,13 @@ digraph G { subgraph cluster_vm { label="VM" + DockerRegistry [label="Docker registry"]; + DBMS [label="MySQL"]; subgraph cluster_container { label="sqlflow/sqlflow:latest"; Jupyter [label="Jupyter Notebook server +\n SQLFlow magic command"]; SQLFlow [label="SQLFlow server"]; - DBMS [label="MySQL"]; + ModelZoo [label="Model Zoo server"]; } subgraph cluster_minikube { label="minikube"; @@ -37,9 +40,14 @@ digraph G { Argo -> DBMS [label="submit SQL statement"]; Argo -> AI [label="submit AI job"]; Argo -> DBMS [label="verify data schema"]; + ModelZoo -> DockerRegistry [label="share model definition"]; + DockerRegistry -> SQLFlow [label="use model definition"]; + SQLFlow -> DBMS [label="save trained models"]; + ModelZoo -> DBMS [label="share trained models"]; Client [label="sqlflow command-line client"]; User3 -> Client; Client -> SQLFlow [label="SQL/Flow program"]; + Client -> ModelZoo [label="share models"]; } diff --git a/figures/arch_vm.svg b/figures/arch_vm.svg index 9368225..4f3b796 100644 --- a/figures/arch_vm.svg +++ b/figures/arch_vm.svg @@ -1,169 +1,216 @@ - - - + + G - + cluster_vm - -VM + +VM cluster_container - -sqlflow/sqlflow:latest + +sqlflow/sqlflow:latest cluster_minikube - -minikube + +minikube User1 - -Lily + +Lily Browser1 - -Web browser + +Web browser User1->Browser1 - - + + User2 - -Bob + +Bob Browser2 - -Web browser + +Web browser User2->Browser2 - - + + User3 - -Eva + +Eva Client - -sqlflow command-line client + +sqlflow command-line client - + User3->Client - - + + - + Jupyter - -Jupyter Notebook server + - SQLFlow magic command + +Jupyter Notebook server + + SQLFlow magic command Browser1->Jupyter - - -SQL/Flow program + + +SQL/Flow program Browser2->Jupyter - - + + - + SQLFlow - -SQLFlow server + +SQLFlow server - + Client->SQLFlow - - -SQL/Flow program + + +SQL/Flow program + + + +ModelZoo + +Model Zoo server + + + +Client->ModelZoo + + +share models + + + +DockerRegistry + +Docker registry + + + +DockerRegistry->SQLFlow + + +use model definition + + + +DBMS + +MySQL Jupyter->SQLFlow - - -SQL/Flow program + + +SQL/Flow program + + + +SQLFlow->DBMS + + +save trained models - + Argo - -Argo + +Argo SQLFlow->Argo - - -Argo workflow + + +Argo workflow - - -DBMS - -MySQL + + +ModelZoo->DockerRegistry + + +share model definition + + + +ModelZoo->DBMS + + +share trained models Argo->DBMS - - -submit SQL statement + + +submit SQL statement Argo->DBMS - - -verify data schema + + +verify data schema - + AI - -AI engine: -container-local run + +AI engine: +container-local run Argo->AI - - -submit AI job + + +submit AI job