Skip to content

Commit 036d314

Browse files
committed
Add figures
1 parent 662f504 commit 036d314

File tree

5 files changed

+410
-12
lines changed

5 files changed

+410
-12
lines changed

README.md

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
# Provision SQLFlow Desktop for Linux
22

3-
I use Ubuntu 18.04 as the base Vagrant image. The following commands
4-
download the VM image, starts a VM, and SSH into this VM.
3+
This is an experimental work to check deploying the whole SQLFlow
4+
service mesh on a Ubuntu 18.04 VM.
55

6-
```bash
7-
vagrant init ubuntu/bionic64
8-
vagrant up
9-
vagrant ssh
10-
```
6+
The general architecture of SQLFlow is as the following:
117

12-
In the VM, I need to install Docker.
8+
![](figures/arch.svg)
139

14-
```bash
15-
sudo apt update
16-
sudo apt install -y docker.io
17-
```
10+
In this deployment, we have Jupyter Notebook server, SQLFlow server,
11+
and MySQL running in a container executing the
12+
`sqlflow/sqlflow:latest` image. Argo runs on a minikube cluster
13+
running on the VM. The deployment is shown in the folllowing figure:
14+
15+
![](figures/arch_vm.svg)

figures/arch.dot

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
digraph G {
2+
node [shape=box];
3+
4+
User1 [shape=oval, label="Lily"];
5+
User2 [shape=oval, label="Bob"];
6+
User3 [shape=oval, label="Eva"];
7+
8+
{rank = same; User1; User2; User3}
9+
10+
Browser1 [label="Web browser"];
11+
Browser2 [label="Web browser"];
12+
13+
{rank = same; Browser1, Browser2, Client}
14+
15+
Jupyter [label="Jupyter Notebook server +\n SQLFlow magic command"];
16+
SQLFlow [label="SQLFlow server"];
17+
Argo [label="Tekton on Kubernetes\n(each workflow step is a container)"];
18+
AI [label="AI engine\n(Alibaba PAI, KubeFlow+Kuberntes, etc)"];
19+
DBMS [label="database system\n(Hive, MySQL, MaxCompute, etc)"];
20+
21+
User1 -> Browser1;
22+
User2 -> Browser2;
23+
Browser1 -> Jupyter [label="SQL/Flow program"];
24+
Browser2 -> Jupyter;
25+
26+
Jupyter -> SQLFlow [label="SQL/Flow program"];
27+
SQLFlow -> Argo [label="Argo workflow"];
28+
Argo -> DBMS [label="submit SQL statement"];
29+
Argo -> AI [label="submit AI job"];
30+
31+
SQLFlow -> DBMS [label="verify data schema"];
32+
33+
Client [label="sqlflow command-line client"];
34+
35+
User3 -> Client;
36+
Client -> SQLFlow [label="SQL/Flow program"];
37+
}

figures/arch.svg

Lines changed: 156 additions & 0 deletions
Loading

figures/arch_vm.dot

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
digraph G {
2+
node [shape=box];
3+
4+
User1 [shape=oval, label="Lily"];
5+
User2 [shape=oval, label="Bob"];
6+
User3 [shape=oval, label="Eva"];
7+
8+
{rank = same; User1; User2; User3}
9+
10+
Browser1 [label="Web browser"];
11+
Browser2 [label="Web browser"];
12+
13+
{rank = same; Browser1, Browser2, Client}
14+
15+
subgraph cluster_vm {
16+
label="VM"
17+
subgraph cluster_container {
18+
label="sqlflow/sqlflow:latest";
19+
Jupyter [label="Jupyter Notebook server +\n SQLFlow magic command"];
20+
SQLFlow [label="SQLFlow server"];
21+
DBMS [label="MySQL)"];
22+
}
23+
Argo [label="minikube + Tekton"];
24+
AI [label="AI engine\n(Alibaba PAI, KubeFlow+Kuberntes, etc)"];
25+
}
26+
27+
User1 -> Browser1;
28+
User2 -> Browser2;
29+
Browser1 -> Jupyter [label="SQL/Flow program"];
30+
Browser2 -> Jupyter;
31+
32+
Jupyter -> SQLFlow [label="SQL/Flow program"];
33+
SQLFlow -> Argo [label="Argo workflow"];
34+
Argo -> DBMS [label="submit SQL statement"];
35+
Argo -> AI [label="submit AI job"];
36+
37+
SQLFlow -> DBMS [label="verify data schema"];
38+
39+
Client [label="sqlflow command-line client"];
40+
41+
User3 -> Client;
42+
Client -> SQLFlow [label="SQL/Flow program"];
43+
}

0 commit comments

Comments
 (0)