From d66ec3e59eff6f8728d204e004f2cffb67e15cb2 Mon Sep 17 00:00:00 2001 From: typhoonzero Date: Mon, 18 May 2020 16:59:37 +0800 Subject: [PATCH 1/2] Add model zoo server in the figure --- figures/arch.dot | 2 + figures/arch.svg | 139 ++++++++++++++++++++++------------------- figures/arch_vm.dot | 2 + figures/arch_vm.svg | 147 ++++++++++++++++++++++++-------------------- 4 files changed, 160 insertions(+), 130 deletions(-) diff --git a/figures/arch.dot b/figures/arch.dot index 40c1ea2..203c1f0 100644 --- a/figures/arch.dot +++ b/figures/arch.dot @@ -14,6 +14,7 @@ digraph G { Jupyter [label="Jupyter Notebook server +\n SQLFlow magic command"]; SQLFlow [label="SQLFlow server"]; + ModelZoo [label="Model Zoo server\n"]; 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)"]; @@ -33,4 +34,5 @@ digraph G { 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..80305e4 100644 --- a/figures/arch.svg +++ b/figures/arch.svg @@ -1,156 +1,169 @@ - - - + + 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 + + + +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 - + AI - -AI engine -(Alibaba PAI, KubeFlow+Kuberntes, etc) + +AI engine +(Alibaba PAI, KubeFlow+Kuberntes, etc) Argo->AI - - -submit AI job + + +submit AI job - + DBMS - -database system -(Hive, MySQL, MaxCompute, etc) + +database system +(Hive, MySQL, MaxCompute, etc) 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..693945d 100644 --- a/figures/arch_vm.dot +++ b/figures/arch_vm.dot @@ -18,6 +18,7 @@ digraph G { label="sqlflow/sqlflow:latest"; Jupyter [label="Jupyter Notebook server +\n SQLFlow magic command"]; SQLFlow [label="SQLFlow server"]; + ModelZoo [label="Model Zoo server"]; DBMS [label="MySQL"]; } subgraph cluster_minikube { @@ -42,4 +43,5 @@ digraph G { User3 -> Client; Client -> SQLFlow [label="SQL/Flow program"]; + Client -> ModelZoo [label="share models or use shared models"]; } diff --git a/figures/arch_vm.svg b/figures/arch_vm.svg index 9368225..ad9890f 100644 --- a/figures/arch_vm.svg +++ b/figures/arch_vm.svg @@ -1,169 +1,182 @@ - - - + + 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 or use shared models Jupyter->SQLFlow - - -SQL/Flow program + + +SQL/Flow program - + Argo - -Argo + +Argo SQLFlow->Argo - - -Argo workflow + + +Argo workflow - + DBMS - -MySQL + +MySQL 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 From 976c8ba9a717dbd628a302eb357d9447a05305e3 Mon Sep 17 00:00:00 2001 From: typhoonzero Date: Tue, 19 May 2020 10:56:40 +0800 Subject: [PATCH 2/2] update --- figures/arch.dot | 7 +- figures/arch.svg | 181 ++++++++++++++++++++++++----------------- figures/arch_vm.dot | 12 ++- figures/arch_vm.svg | 192 ++++++++++++++++++++++++++------------------ 4 files changed, 236 insertions(+), 156 deletions(-) diff --git a/figures/arch.dot b/figures/arch.dot index 203c1f0..ddbcd7d 100644 --- a/figures/arch.dot +++ b/figures/arch.dot @@ -14,7 +14,8 @@ digraph G { Jupyter [label="Jupyter Notebook server +\n SQLFlow magic command"]; SQLFlow [label="SQLFlow server"]; - ModelZoo [label="Model Zoo server\n"]; + 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)"]; @@ -29,6 +30,10 @@ 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"]; diff --git a/figures/arch.svg b/figures/arch.svg index 80305e4..1c33c19 100644 --- a/figures/arch.svg +++ b/figures/arch.svg @@ -4,166 +4,201 @@ - - + + 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 + +Model Zoo server +(with MySQL to store relational data) - + Client->ModelZoo - - -share models or use shared models + + +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 693945d..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,12 +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"]; ModelZoo [label="Model Zoo server"]; - DBMS [label="MySQL"]; } subgraph cluster_minikube { label="minikube"; @@ -38,10 +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 or use shared models"]; + Client -> ModelZoo [label="share models"]; } diff --git a/figures/arch_vm.svg b/figures/arch_vm.svg index ad9890f..4f3b796 100644 --- a/figures/arch_vm.svg +++ b/figures/arch_vm.svg @@ -4,179 +4,213 @@ - - + + 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 + +Model Zoo server - + Client->ModelZoo - - -share models or use shared models + + +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