You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2022/12/02 01:15:34 UTC

[shardingsphere-on-cloud] branch main updated: newly added

This is an automated email from the ASF dual-hosted git repository.

panjuan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/shardingsphere-on-cloud.git


The following commit(s) were added to refs/heads/main by this push:
     new 9038796  newly added
     new c7f9d88  Merge pull request #127 from Mike0601/main
9038796 is described below

commit 903879620378441f4f29cee695d0622518980b44
Author: Mike0601 <40...@users.noreply.github.com>
AuthorDate: Thu Dec 1 14:51:35 2022 +0800

    newly added
---
 docs/content/best-practices/_index.cn.md           |   8 +
 docs/content/best-practices/_index.en.md           |   8 +
 docs/content/features/_index.cn.md                 |  10 +
 docs/content/features/_index.en.md                 |  10 +
 docs/content/operation-guide/_index.cn.md          |   4 +-
 docs/content/operation-guide/_index.en.md          |   4 +-
 .../cloudformation-multi-az/_index.cn.md           |  30 +--
 .../cloudformation-multi-az/_index.en.md           |  30 +--
 docs/content/operation-guide/helm/_index.cn.md     |   2 +-
 docs/content/operation-guide/helm/_index.en.md     |   2 +-
 docs/content/operation-guide/operator/_index.cn.md |   2 +-
 docs/content/operation-guide/operator/_index.en.md |   2 +-
 .../_index.cn.md                                   |  28 +--
 .../_index.en.md                                   |  28 +--
 .../_index.cn.md                                   | 244 +++++++++++++++++++++
 .../_index.en.md                                   | 244 +++++++++++++++++++++
 docs/content/overview/_index.cn.md                 |   4 +-
 docs/content/overview/_index.en.md                 |   4 +-
 docs/static/img/operation-guide/5-1.png            | Bin 0 -> 230534 bytes
 docs/static/img/operation-guide/5-2.png            | Bin 0 -> 219289 bytes
 docs/static/img/operation-guide/5-3.png            | Bin 0 -> 258626 bytes
 docs/static/img/operation-guide/5-4.png            | Bin 0 -> 78005 bytes
 22 files changed, 594 insertions(+), 70 deletions(-)

diff --git a/docs/content/best-practices/_index.cn.md b/docs/content/best-practices/_index.cn.md
new file mode 100644
index 0000000..388cfb2
--- /dev/null
+++ b/docs/content/best-practices/_index.cn.md
@@ -0,0 +1,8 @@
++++
+pre = "<b>4. </b>"
+title = "最佳实践"
+weight = 4
+chapter = true
++++
+
+当您在云主机上部署 ShardingSphere-Proxy,并且要在生产环境中使用的时候,我们推荐您使用 CloudFormation 或者 Terraform 的多可用区模式部署。
diff --git a/docs/content/best-practices/_index.en.md b/docs/content/best-practices/_index.en.md
new file mode 100644
index 0000000..b16fbc0
--- /dev/null
+++ b/docs/content/best-practices/_index.en.md
@@ -0,0 +1,8 @@
++++
+pre = "<b>4. </b>"
+title = "Best Practices"
+weight = 4
+chapter = true
++++
+
+When you deploy ShardingSphere Proxy on the virtual machine and want to use it in the production environment, we recommend that you use CloudFormat or Terraform for multi AZ deployment.
diff --git a/docs/content/features/_index.cn.md b/docs/content/features/_index.cn.md
new file mode 100644
index 0000000..184efa7
--- /dev/null
+++ b/docs/content/features/_index.cn.md
@@ -0,0 +1,10 @@
++++
+pre = "<b>2. </b>"
+title = "核心特性"
+weight = 2
+chapter = true
++++
+
+ShardingSphere-on-Cloud 中各类云环境下部署的 ShardingSphere 特性与官方版本特性保持一致。
+
+详见[链接](https://shardingsphere.apache.org/document/current/cn/features/)。
diff --git a/docs/content/features/_index.en.md b/docs/content/features/_index.en.md
new file mode 100644
index 0000000..c11d898
--- /dev/null
+++ b/docs/content/features/_index.en.md
@@ -0,0 +1,10 @@
++++
+pre = "<b>2. </b>"
+title = "Features"
+weight = 2
+chapter = true
++++
+
+The ShardingSphere features deployed in various cloud environments in ShardingSphere-on-Cloud are consistent with the official version features.
+
+See [features](https://shardingsphere.apache.org/document/current/en/features/).
diff --git a/docs/content/operation-guide/_index.cn.md b/docs/content/operation-guide/_index.cn.md
index bbbc2dc..f39432f 100644
--- a/docs/content/operation-guide/_index.cn.md
+++ b/docs/content/operation-guide/_index.cn.md
@@ -1,7 +1,7 @@
 +++
-pre = "<b>2. </b>"
+pre = "<b>3. </b>"
 title = "操作指南"
-weight = 2
+weight = 3
 chapter = true
 +++
 
diff --git a/docs/content/operation-guide/_index.en.md b/docs/content/operation-guide/_index.en.md
index 290bd2c..00e000f 100644
--- a/docs/content/operation-guide/_index.en.md
+++ b/docs/content/operation-guide/_index.en.md
@@ -1,7 +1,7 @@
 +++
-pre = "<b>2. </b>"
+pre = "<b>3. </b>"
 title = "Operation Guide"
-weight = 2
+weight = 3
 chapter = true
 +++
 
diff --git a/docs/content/operation-guide/cloudformation-multi-az/_index.cn.md b/docs/content/operation-guide/cloudformation-multi-az/_index.cn.md
index d3d4a29..594fbe2 100644
--- a/docs/content/operation-guide/cloudformation-multi-az/_index.cn.md
+++ b/docs/content/operation-guide/cloudformation-multi-az/_index.cn.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>2.4 </b>"
+pre = "<b>3.4 </b>"
 title = "CloudFormation 部署多可用区 ShardingSphere Proxy 集群"
 weight = 4
 chapter = true
@@ -13,7 +13,7 @@ ShardingSphere Proxy 集群作为数据基础设施重要的一部分,集群
 
 我们将创建如下架构图的 ShardingSphere Proxy 高可用集群:
 
-![](../../../../img/overview/terraform.png)
+![](../../../img/overview/terraform.png)
 
 创建的 Amazon 资源如下:
 1. 每个可用区一个 ZooKeeper 实例。
@@ -38,51 +38,51 @@ ShardingSphere Proxy 集群作为数据基础设施重要的一部分,集群
 
 1. 进入 Amazon CloudFormation 服务,创建 Stacks。
 
-![](../../../../img/operation-guide/4-1.PNG)
+![](../../../img/operation-guide/4-1.PNG)
 
 点击 `Choose File` 按钮 上传准备好的 CloudFormation 配置。
 
-![](../../../../img/operation-guide/4-2.PNG)
+![](../../../img/operation-guide/4-2.PNG)
 
 上传好后点击 `Next` 按钮。
 
 2. 将您准备好的资源填入以下对应的相关位置。
 
-![](../../../../img/operation-guide/4-3.PNG)
+![](../../../img/operation-guide/4-3.PNG)
 
-![](../../../../img/operation-guide/4-4.PNG)
+![](../../../img/operation-guide/4-4.PNG)
 
 填入相应参数后,点击 `Next`  按钮。
 
 3. 按您实际情况配置 `stack` 相关参数。
 
-![](../../../../img/operation-guide/4-5.PNG)
+![](../../../img/operation-guide/4-5.PNG)
 
-![](../../../../img/operation-guide/4-6.PNG)
+![](../../../img/operation-guide/4-6.PNG)
 
 配置好后点击 `Next` 按钮。
 
 4. 进行配置 `Review`。
 
-![](../../../../img/operation-guide/4-7.PNG)
+![](../../../img/operation-guide/4-7.PNG)
 
-![](../../../../img/operation-guide/4-8.PNG)
+![](../../../img/operation-guide/4-8.PNG)
 
-![](../../../../img/operation-guide/4-9.PNG)
+![](../../../img/operation-guide/4-9.PNG)
 
 确认好点击 `Submit` 按钮。
 
 5. 在上述操作后,将进入创建阶段。
 
-![](../../../../img/operation-guide/4-10.PNG)
+![](../../../img/operation-guide/4-10.PNG)
 
-![](../../../../img/operation-guide/4-11.PNG)
+![](../../../img/operation-guide/4-11.PNG)
 
-![](../../../../img/operation-guide/4-12.PNG)
+![](../../../img/operation-guide/4-12.PNG)
 
 6. 等待一段时间,创建完成后,进入 `Outputs` 标签页,如下图。
 
-![](../../../../img/operation-guide/4-13.PNG)
+![](../../../img/operation-guide/4-13.PNG)
 
 其中 `ssinernaldomain` 对应的值就是我们需要的域名。
 
diff --git a/docs/content/operation-guide/cloudformation-multi-az/_index.en.md b/docs/content/operation-guide/cloudformation-multi-az/_index.en.md
index e02e9f9..b7a4734 100644
--- a/docs/content/operation-guide/cloudformation-multi-az/_index.en.md
+++ b/docs/content/operation-guide/cloudformation-multi-az/_index.en.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>2.4 </b>"
+pre = "<b>3.4 </b>"
 title = "CloudFormation deploys ShardingSphere Proxy Cluster in Multiple AZs"
 weight = 4
 chapter = true
@@ -13,7 +13,7 @@ As an important part of the data infrastructure, the shardingSphere Proxy cluste
 
 We will create a shardingSphere Proxy highly available cluster as shown in the following architecture diagram:
 
-![](../../../../img/overview/terraform.png)
+![](../../../img/overview/terraform.png)
 
 The Amazon resources created are as follows:
 
@@ -42,51 +42,51 @@ To create ShardingSphere Proxy highly available cluster, you need to prepare the
 
 1. Enter Amazon CloudFormation service and create Stacks.
 
-![](../../../../img/operation-guide/4-1.PNG)
+![](../../../img/operation-guide/4-1.PNG)
 
 Click `Choose File` button to upload the prepared CloudFormation configuration.
 
-![](../../../../img/operation-guide/4-2.PNG)
+![](../../../img/operation-guide/4-2.PNG)
 
 Click Next after uploading.
 
 2. Fill the resources you have prepared into the relevant locations below.
 
-![](../../../../img/operation-guide/4-3.PNG)
+![](../../../img/operation-guide/4-3.PNG)
 
-![](../../../../img/operation-guide/4-4.PNG)
+![](../../../img/operation-guide/4-4.PNG)
 
 After filling in the corresponding parameters, click Next.
 
 3. Configure 'stack' related parameters according to your actual situation.
 
-![](../../../../img/operation-guide/4-5.PNG)
+![](../../../img/operation-guide/4-5.PNG)
 
-![](../../../../img/operation-guide/4-6.PNG)
+![](../../../img/operation-guide/4-6.PNG)
 
 Click Next after configuration.
 
 4. Configure 'Review'.
 
-![](../../../../img/operation-guide/4-7.PNG)
+![](../../../img/operation-guide/4-7.PNG)
 
-![](../../../../img/operation-guide/4-8.PNG)
+![](../../../img/operation-guide/4-8.PNG)
 
-![](../../../../img/operation-guide/4-9.PNG)
+![](../../../img/operation-guide/4-9.PNG)
 
 Confirm and click `Submit`.
 
 5. After the above operations, you will enter the creation phase.
 
-![](../../../../img/operation-guide/4-10.PNG)
+![](../../../img/operation-guide/4-10.PNG)
 
-![](../../../../img/operation-guide/4-11.PNG)
+![](../../../img/operation-guide/4-11.PNG)
 
-![](../../../../img/operation-guide/4-12.PNG)
+![](../../../img/operation-guide/4-12.PNG)
 
 6. Wait for a while. After the creation, enter the 'Outputs' tab, as shown in the following figure.
 
-![](../../../../img/operation-guide/4-13.PNG)
+![](../../../img/operation-guide/4-13.PNG)
 
 The value corresponding to 'ssinernaldomain' is the domain name we need.
 
diff --git a/docs/content/operation-guide/helm/_index.cn.md b/docs/content/operation-guide/helm/_index.cn.md
index 8e93df0..248e2c9 100644
--- a/docs/content/operation-guide/helm/_index.cn.md
+++ b/docs/content/operation-guide/helm/_index.cn.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>2.1 </b>"
+pre = "<b>3.1 </b>"
 title = "ShardingSphere Helm Charts 简明用户手册"
 weight = 1
 chapter = true
diff --git a/docs/content/operation-guide/helm/_index.en.md b/docs/content/operation-guide/helm/_index.en.md
index 958f0ab..43ebc20 100644
--- a/docs/content/operation-guide/helm/_index.en.md
+++ b/docs/content/operation-guide/helm/_index.en.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>2.1 </b>"
+pre = "<b>3.1 </b>"
 title = "ShardingSphere Helm Charts User Manual"
 weight = 1
 chapter = true
diff --git a/docs/content/operation-guide/operator/_index.cn.md b/docs/content/operation-guide/operator/_index.cn.md
index 0969d94..fb813a2 100644
--- a/docs/content/operation-guide/operator/_index.cn.md
+++ b/docs/content/operation-guide/operator/_index.cn.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>2.2 </b>"
+pre = "<b>3.2 </b>"
 title = "ShardingSphere-Operator 简明用户手册"
 weight = 2
 chapter = true
diff --git a/docs/content/operation-guide/operator/_index.en.md b/docs/content/operation-guide/operator/_index.en.md
index 22790f4..14629cc 100644
--- a/docs/content/operation-guide/operator/_index.en.md
+++ b/docs/content/operation-guide/operator/_index.en.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>2.2 </b>"
+pre = "<b>3.2 </b>"
 title = "ShardingSphere-Operator User Manual"
 weight = 2
 chapter = true
diff --git a/docs/content/operation-guide/using-cloudformation-to-start-proxy/_index.cn.md b/docs/content/operation-guide/using-cloudformation-to-start-proxy/_index.cn.md
index 0167031..76c2f48 100644
--- a/docs/content/operation-guide/using-cloudformation-to-start-proxy/_index.cn.md
+++ b/docs/content/operation-guide/using-cloudformation-to-start-proxy/_index.cn.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>2.3 </b>"
+pre = "<b>3.3 </b>"
 title = "利用 CloudFormation 启动 ShardingSphere Proxy"
 weight = 3
 chapter = true
@@ -24,56 +24,56 @@ AWS CloudFormation 是一个以基础设施即代码的方式配置和启动任
 
 如下图所示:
 
-![](../../../../img/operation-guide/1.PNG)
+![](../../../img/operation-guide/1.PNG)
 
-![](../../../../img/operation-guide/2.PNG)
+![](../../../img/operation-guide/2.PNG)
 
 ### 2. 上传本仓库中的模板文件
 
 上传本地文件 `cloudformation/apache-shardingsphere-5.2.0.json` 到 CloudFormation,然后点击 `Next`。
 
-![](../../../../img/operation-guide/3.PNG)
+![](../../../img/operation-guide/3.PNG)
 
-![](../../../../img/operation-guide/4.PNG)
+![](../../../img/operation-guide/4.PNG)
 
 ### 3. 指定 CloudFormation 堆栈细节
 
 填写本页中的空白项,必填项已在前置条件中就绪。
 
-![](../../../../img/operation-guide/5.PNG)
+![](../../../img/operation-guide/5.PNG)
 
 ### 4. 配置堆栈选项
 
 为该堆栈添加标签,有助于后续成本分析。
 
-![](../../../../img/operation-guide/6.PNG)
+![](../../../img/operation-guide/6.PNG)
 
 ### 5. 回顾和确认配置
 
 回顾配置内容,在提交前确认所有内容符合期望。
 
-![](../../../../img/operation-guide/7.PNG)
+![](../../../img/operation-guide/7.PNG)
 
 ### 6. 检查 EC2 实例
 
 几分钟后,EC2 实例已经启动。
 
-![](../../../../img/operation-guide/8.PNG)
+![](../../../img/operation-guide/8.PNG)
 
 ### 7. 检查 ShardingSphere Proxy 和 ZooKeeper 状态
 
 使用 `systemctl status shardingsphere` 和 `./bin/zkServer.sh status` 来检查组件的运行状态。
 
-![](../../../../img/operation-guide/9.PNG)
+![](../../../img/operation-guide/9.PNG)
 
-![](../../../../img/operation-guide/10.PNG)
+![](../../../img/operation-guide/10.PNG)
 
 ### 8. 测试简单的分片示例
 
 创建数据库 `sharding_db`,以及添加两个独立的数据库实例 `resources`。然后创建逻辑表 `t_order` 并插入两行数据。如下检查结果:
 
-![](../../../../img/operation-guide/11.PNG)
+![](../../../img/operation-guide/11.PNG)
 
-![](../../../../img/operation-guide/12.PNG)
+![](../../../img/operation-guide/12.PNG)
 
-![](../../../../img/operation-guide/13.PNG)
+![](../../../img/operation-guide/13.PNG)
diff --git a/docs/content/operation-guide/using-cloudformation-to-start-proxy/_index.en.md b/docs/content/operation-guide/using-cloudformation-to-start-proxy/_index.en.md
index 2b15781..79f9960 100644
--- a/docs/content/operation-guide/using-cloudformation-to-start-proxy/_index.en.md
+++ b/docs/content/operation-guide/using-cloudformation-to-start-proxy/_index.en.md
@@ -1,5 +1,5 @@
 +++
-pre = "<b>2.3 </b>"
+pre = "<b>3.3 </b>"
 title = "Start ShardingSphere Proxy with CloudFormation "
 weight = 3
 chapter = true
@@ -24,56 +24,56 @@ Before starting, you need to confirm the following checklist:
 
 As shown in the figure below:
 
-![](../../../../img/operation-guide/1.PNG)
+![](../../../img/operation-guide/1.PNG)
 
-![](../../../../img/operation-guide/2.PNG)
+![](../../../img/operation-guide/2.PNG)
 
 ### 2. Upload the template file in this warehouse
 
 Upload local file `cloudformation/apache-shardingsphere-5.2.0.json` to CloudFormation, and then click `Next`.
 
-![](../../../../img/operation-guide/3.PNG)
+![](../../../img/operation-guide/3.PNG)
 
-![](../../../../img/operation-guide/4.PNG)
+![](../../../img/operation-guide/4.PNG)
 
 ### 3. Specify CloudFormation stack details.
 
 Fill in the blank items on this page. The required items are ready in the preconditions.
 
-![](../../../../img/operation-guide/5.PNG)
+![](../../../img/operation-guide/5.PNG)
 
 ### 4. Configure stack options
 
 Adding labels to the stack is helpful for subsequent cost analysis.
 
-![](../../../../img/operation-guide/6.PNG)
+![](../../../img/operation-guide/6.PNG)
 
 ### 5. Review and confirm configuration
 
 Review the configuration contents and confirm that all contents meet the expectations before submission.
 
-![](../../../../img/operation-guide/7.PNG)
+![](../../../img/operation-guide/7.PNG)
 
 ### 6. Check EC2 instances
 
 A few minutes later, the EC2 instance has started.
 
-![](../../../../img/operation-guide/8.PNG)
+![](../../../img/operation-guide/8.PNG)
 
 ### 7. Check the status of ShardingSphere Proxy and ZooKeeper
 
 Use `systemctl status shardingsphere` and `./bin/zkServer.sh status` to check the running status of components.
 
-![](../../../../img/operation-guide/9.PNG)
+![](../../../img/operation-guide/9.PNG)
 
-![](../../../../img/operation-guide/10.PNG)
+![](../../../img/operation-guide/10.PNG)
 
 ### 8. Test simple sharding example
 
 Create database `sharding_db` and add two independent database instances `resources`. Then create logical table `t_order` and insert two rows of data. The following inspection results:
 
-![](../../../../img/operation-guide/11.PNG)
+![](../../../img/operation-guide/11.PNG)
 
-![](../../../../img/operation-guide/12.PNG)
+![](../../../img/operation-guide/12.PNG)
 
-![](../../../../img/operation-guide/13.PNG)
+![](../../../img/operation-guide/13.PNG)
diff --git a/docs/content/operation-guide/using-terraform-to-deploy-multi-az/_index.cn.md b/docs/content/operation-guide/using-terraform-to-deploy-multi-az/_index.cn.md
new file mode 100644
index 0000000..fb8422f
--- /dev/null
+++ b/docs/content/operation-guide/using-terraform-to-deploy-multi-az/_index.cn.md
@@ -0,0 +1,244 @@
++++
+pre = "<b>3.5 </b>"
+title = "Terraform 部署多可用区 ShardingSphere 集群"
+weight = 5
+chapter = true
++++
+
+## 背景
+
+Terraform 是一个开源的基础设施自动化编排工具,使用 “基础设施即代码” 的理念来管理基础设施的变更,AWS, gcp, Azure, aliyun, ucloud 等公有云厂商都支持,还有社区提供的各种各样的 provider,已成为 “基础设施即代码” 领域的一个事实上的标准。
+
+Terraform 有以下优点:
+
+- 支持多云部署
+
+  Terraform 适用于多云方案,将类似的基础结构部署到阿里云、其他云提供商或者本地数据中心。开发人员能够使用相同的工具和相似的配置文件同时管理不同云提供商的资源。
+
+- 自动化管理基础架构
+
+  Terraform 能够创建模块,可重复使用,从而减少因人为因素导致的部署和管理错误。
+
+- 基础架构即代码(Infrastructure as Code)
+
+  可以用代码来管理维护资源。允许保存基础设施状态,从而使您能够跟踪对系统(基础设施即代码)中不同组件所做的更改,并与其他人共享这些配置。
+
+- 降低开发成本
+
+  您通过按需创建开发和部署环境来降低成本。并且,您可以在系统更改之前进行评估。
+
+## 目标
+
+能够使用 Terraform 在 Amazon 上创建 ShardingSphere 高可用集群,创建的集群架构图如下,后续会支持更多的云厂商。
+
+![](../../../img/overview/terraform.png)
+
+创建的 Amazon 资源如下:
+1. 每个可用区一个 ZooKeeper 实例。
+2. 每个可用区一个 Auto Scaling Group。
+3. 每个可用区一个 Launch Template,用于 Auto Scaling Group 启动 ShardingSphere Proxy 实例。
+4. 一个内网 Network LoadBalancer,给应用使用。
+
+## 快速开始
+
+### 前提条件
+
+为创建 ShardingSphere Proxy 高可用集群,您需要事先准备如下资源:
+1. 一个 ssh keypair,用于远程连接 EC2 实例。
+2. 一个 VPC。
+3. 每个可用区的 subnet。
+4. 一个 SecurityGroup,能够放行 ZooKeeper Server 使用的 2888,3888,2181 端口。
+5. 一个内网 HostedZone。
+6. 一个通用的 AMI 镜像,Amazon linux2 即可。
+
+根据上述准备好的资源,修改相应的 `main.tf` 中的参数。
+
+### 步骤
+
+1. 进入到 terraform 目录, 根据上述准备好的资源,修改相应的 `main.tf`  中的参数。
+
+```shell
+git clone --depth=1 https://github.com/apache/shardingsphere-on-cloud.git
+cd shardingsphere-on-cloud/terraform
+```
+
+以下提到的命令都需要在 `terraform` 目录中执行。
+
+2. 运行以下命令初始化 terraform。
+
+```shell
+terraform init
+```
+
+![](../../../img/operation-guide/5-1.png)
+
+3. 运行以下命令查看 terraform 将要执行的计划,您可以观察是否符合预期。
+
+```shell
+terraform plan
+```
+
+![](../../../img/operation-guide/5-2.png)
+
+4. 如果符合预期,可以执行以下命令创建集群。
+
+```shell
+terraform apply
+```
+
+![](../../../img/operation-guide/5-3.png)
+
+创建完成后,会有以下输出:
+
+![](../../../img/operation-guide/5-4.png)
+
+您需要记录下 `shardingsphere_domain` 对应的值,应用可以通过连接该域名访问到 Proxy。
+
+5. 如果您想删除创建的集群,可以运行以下命令:
+
+```shell
+terraform destroy
+```
+
+## 使用手册
+
+### 依赖
+
+|名称|版本|
+|---|----|
+|aws|4.37.0|
+
+### 模块列表
+
+|名称|源|
+|----|--|
+|[zk](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#ZK)|./zk|
+|[shardingsphere](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#shardingsphere)|./shardingsphere|
+
+### 输出
+
+|名称 |类型|描述|
+|---------------------|----|---|
+|[shardingsphere_domain](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#output_shardingsphere_domain)|string|最终的对内提供的 SharidngSphere Proxy 域名,其他应用可以通过此域名连接到 Proxy|
+|[zk_node_domain](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#output_zk_node_domain)       |list(string)|ZooKeeper 服务对应的域名列表|
+
+### 模块详细信息
+
+#### ZK
+
+**内部资源列表**
+
+|名称|类型|
+|----|---|
+|[aws_instance.zk](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance)|resource|
+|[aws_network_interface.zk](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/network_interface)|resource|
+|[aws_route53_record.zk](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_record)|resource|
+|[aws_ami.base](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/ami)|data source|
+|[aws_availability_zones.available](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/availability_zones)|data source|
+|[aws_route53_zone.zone](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/route53_zone)|data source|
+
+**输入**
+
+|名称|描述|类型|默认值|是否依赖|
+|----|---|----|------|-------|
+|[cluster_size](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_cluster_size)|与可用区相同数量的集群大小|number|n/a|yes|
+|[hosted_zone_name](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_hosted_zone_name)|私有 zone 名称|string|"shardingsphere.org"|no|
+|[instance_type](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_instance_type)|EC2 实例类型|string|n/a|yes|
+|[key_name](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_key_name)|SSH 密钥对|string|n/a|yes|
+|[security_groups](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_security_groups)|Security Group 列表, 必须放行 2181,2888,3888 端口|list(string)|[]|no|
+|[subnet_ids](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_subnet_ids)|VPC 中按可用区排序的子网列表|list(string)|n/a|yes|
+|[tags](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_tags)|ZooKeeper Server 实例 tags 默认是: Name=zk-${count.idx}"|map(any)|	{}|no|
+|[vpc_id](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_vpc_id)|VPC id|string|n/a|yes|
+|[zk_config](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_zk_config)|ZooKeeper Server 的默认配置|map|{ <br>"client_port": 2181, <br>"zk_heap": 1024 <br>}"|no|
+|[zk_version](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_zk_version)|ZooKeeper Server 版本|string	|"3.7.1"|no|
+
+**输出**
+
+|名称|描述|
+|----|----|
+|[zk_node_domain](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#output_zk_node_domain)|ZooKeeper Server 对应的域名列表|
+|[zk_node_private_ip](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#output_zk_node_private_ip)|ZooKeeper Server 示例的内网 IP|
+
+#### ShardingSphere
+
+**内部资源列表**
+
+|名称|类型|
+|----|----|
+|[aws_autoscaling_attachment.asg_attachment_lb](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/autoscaling_attachment)|resource|
+|[aws_autoscaling_group.ss](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/autoscaling_group)|resource|
+|[aws_launch_template.ss](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/launch_template)|resource|
+|[aws_lb.ss](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb)|resource|
+|[aws_lb_listener.ss](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_listener)|resource|
+|[aws_lb_target_group.ss_tg](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_target_group)|resource|
+|[aws_network_interface.ss](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/network_interface)|resource|
+|[aws_route53_record.ss](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_record)|resource|
+|[aws_availability_zones.available](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/availability_zones)|data source|
+|[aws_route53_zone.zone](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/route53_zone)|data source|
+|[aws_vpc.vpc](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/vpc)|data source|
+
+**输入**
+
+|名称|描述|类型|默认值|是否依赖|
+|----|---|----|------|-------|
+|[cluster_size](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_cluster_size)|与可用区相同数量的集群大小|number|n/a|yes|
+|[hosted_zone_name](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_hosted_zone_name)|私有 zone 名称|string|"shardingsphere.org"|no|
+|[image_id](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_image_id)|AMI 镜像 ID|string|n/a|yes|
+|[instance_type](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_instance_type)|EC2 实例类型|string|n/a|yes|
+|[key_name](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_key_name)|SSH 密钥对|string|n/a|yes|
+|[lb_listener_port](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_lb_listener_port)|ShardingSphere Proxy 启动端口|string|n/a|yes|
+|[security_groups](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_security_groups)|Security Group 列表|list(string)|[]|no|
+|[shardingsphere_version](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_shardingsphere_version)|ShardingSphere Proxy 版本|string|n/a|yes|
+|[subnet_ids](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_subnet_ids)|VPC 中按可用区排序的子网列表|list(string)|n/a|yes|
+|[vpc_id](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_vpc_id)|VPC ID|string|n/a|yes|
+|[zk_servers](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_zk_servers)|Zookeeper Servers|list(string)|n/a|yes|
+
+**输出**
+
+|名称|描述|
+|----|----|
+|[shardingsphere_domain](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#output_shardingsphere_domain)|ShardingSphere Proxy 集群对内提供的域名,其他应用可以通过此域名连接到 Proxy|
+
+## 运维
+
+默认使用我们提供的 Terraform 配置创建的 ZooKeeper 和 ShardingSphere Proxy 服务可以使用 systemd 管理。
+
+### ZooKeeper 
+
+#### 启动
+
+```shell
+systemctl start zookeeper
+```
+
+#### 停止
+
+```shell
+systemctl stop zookeeper
+```
+
+#### 重启
+
+```shell
+systemctl restart zookeeper
+```
+
+### ShardingSphere Proxy
+
+#### 启动
+
+```shell
+systemctl start shardingsphere
+```
+
+#### 停止
+
+```shell
+systemctl stop shardingsphere
+```
+
+#### 重启
+
+```shell
+systemctl restart shardingsphere
+```
diff --git a/docs/content/operation-guide/using-terraform-to-deploy-multi-az/_index.en.md b/docs/content/operation-guide/using-terraform-to-deploy-multi-az/_index.en.md
new file mode 100644
index 0000000..498952e
--- /dev/null
+++ b/docs/content/operation-guide/using-terraform-to-deploy-multi-az/_index.en.md
@@ -0,0 +1,244 @@
++++
+pre = "<b>3.5 </b>"
+title = "Terraform deploys shardingsphere cluster in multiple AZs"
+weight = 5
+chapter = true
++++
+
+## Background
+
+Terraform is an open source automated infrastructure orchestration tool, which uses the concept of "infrastructure is code" to manage infrastructure changes. Public cloud manufacturers such as AWS, gcp, Azure, aliyun, and ucloud support it, and various providers provided by the community have become a standard in the field of "infrastructure is code".
+
+Terraform has the following advantages:
+
+- Support multi cloud deployment
+
+  Terraform is applicable to multi cloud solutions. It deploys similar infrastructure to Alibaba Cloud, other cloud providers or local data centers. Developers can use the same tools and similar configuration files to manage the resources of different cloud providers at the same time.
+
+- Automated manage infrastructure
+
+  Terraform can create modules that can be reused to reduce deployment and management errors caused by human factors.
+
+- Infrastructure as Code
+
+  You can use code to manage maintenance resources. Allows you to save infrastructure state, enabling you to track changes to different components in your system (infrastructure as code) and share these configurations with others.
+
+- Reduce development costs
+
+  You reduce costs by creating development and deployment environments on demand. Also, you can evaluate before the system changes.
+
+## Goal
+
+You can use Terraform to create a shardingSphere high availability cluster on Amazon. The cluster architecture is shown below. More cloud vendors will be supported later.
+
+![](../../../img/overview/terraform.png)
+
+The Amazon resources created are as follows:
+1. One ZooKeeper instance per AZ.
+2. One Auto Scaling Group per AZ.
+3. Each AZ has a Launch Template, which is used by the Auto Scaling Group to start the SharedingSphere Proxy instance.
+4. An intranet Network LoadBalancer for applications.
+
+## Quick Start
+
+### Prerequisites
+
+To create a ShardingSphere Proxy highly available cluster, you need to prepare the following resources in advance:
+1. An ssh keypair used to remotely connect EC2 instances.
+2. One VPC.
+3. The subnet of each AZ.
+4. A SecurityGroup can release the 2888, 3888, and 2181 ports used by ZooKeeper Server.
+5. An intranet HostedZone.
+6. A common AMI image, such as Amazon linux2.
+
+根据上述准备好的资源,修改相应的 `main.tf` 中的参数。
+
+### 步骤
+
+1. Enter the directory of terraform, modify the parameters in `main.tf`  according to the above prepared resources.
+
+```shell
+git clone --depth=1 https://github.com/apache/shardingsphere-on-cloud.git
+cd shardingsphere-on-cloud/terraform
+```
+
+The commands mentioned below need to be executed in the 'terraform' directory.
+
+2. Run the following command to initialize the terraform.
+
+```shell
+terraform init
+```
+
+![](../../../img/operation-guide/5-1.png)
+
+3. Run the following command to check the plan that terraform will execute. You can observe whether it meets the expectation.
+
+```shell
+terraform plan
+```
+
+![](../../../img/operation-guide/5-2.png)
+
+4. If it is as expected, you can execute the following command to create a cluster.
+
+```shell
+terraform apply
+```
+
+![](../../../img/operation-guide/5-3.png)
+
+After creation, the following outputs will be available:
+
+![](../../../img/operation-guide/5-4.png)
+
+You need to record the value corresponding to `shardingsphere_domain`. Applications can access the proxy by connecting to the domain name.
+
+5. If you want to delete the created cluster, you can run the following command:
+
+```shell
+terraform destroy
+```
+
+## User Manual
+
+### Dependency
+
+|Name|Version|
+|---|----|
+|aws|4.37.0|
+
+### Module List
+
+|Name|Source|
+|----|--|
+|[zk](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#ZK)|./zk|
+|[shardingsphere](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#shardingsphere)|./shardingsphere|
+
+### Outputs
+
+|Name|Type|Description|
+|---------------------|----|---|
+|[shardingsphere_domain](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#output_shardingsphere_domain)|string|The final SharidngSphere proxy domain name provided internally, through which other applications can connect to the proxy|
+|[zk_node_domain](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#output_zk_node_domain)       |list(string)|List of domain names corresponding to ZooKeeper service|
+
+### Module Details
+
+#### ZK
+
+**Internal resource list**
+
+|Name|Type|
+|----|---|
+|[aws_instance.zk](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance)|resource|
+|[aws_network_interface.zk](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/network_interface)|resource|
+|[aws_route53_record.zk](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_record)|resource|
+|[aws_ami.base](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/ami)|data source|
+|[aws_availability_zones.available](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/availability_zones)|data source|
+|[aws_route53_zone.zone](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/route53_zone)|data source|
+
+**Inputs**
+
+|Name|Description|Type|Default Value|Dependent on or not|
+|----|---|----|------|-------|
+|[cluster_size](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_cluster_size)|Cluster size of the same number as the availability zone|number|n/a|yes|
+|[hosted_zone_name](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_hosted_zone_name)|Private zone name|string|"shardingsphere.org"|no|
+|[instance_type](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_instance_type)|EC2 instance type|string|n/a|yes|
+|[key_name](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_key_name)|SSH key pair|string|n/a|yes|
+|[security_groups](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_security_groups)|Security Group list. 2181, 2888, 3888 ports must be released|list(string)|[]|no|
+|[subnet_ids](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_subnet_ids)|Subnet list sorted by AZ in VPC|list(string)|n/a|yes|
+|[tags](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_tags)|ZooKeeper Server instance tags The default is: Name=zk-${count.idx}"|map(any)|	{}|no|
+|[vpc_id](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_vpc_id)|VPC id|string|n/a|yes|
+|[zk_config](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_zk_config)|Default configuration of ZooKeeper Server|map|{ <br>"client_port": 2181, <br>"zk_heap": 1024 <br>}"|no|
+|[zk_version](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_zk_version)|ZooKeeper Server version|string	|"3.7.1"|no|
+
+**Outputs**
+
+|Name|Description|
+|----|----|
+|[zk_node_domain](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#output_zk_node_domain)|List of domain names corresponding to ZooKeeper Server|
+|[zk_node_private_ip](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#output_zk_node_private_ip)|The intranet IP address of the ZooKeeper Server example|
+
+#### ShardingSphere
+
+**Internal resource list**
+
+|Name|Type|
+|----|----|
+|[aws_autoscaling_attachment.asg_attachment_lb](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/autoscaling_attachment)|resource|
+|[aws_autoscaling_group.ss](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/autoscaling_group)|resource|
+|[aws_launch_template.ss](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/launch_template)|resource|
+|[aws_lb.ss](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb)|resource|
+|[aws_lb_listener.ss](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_listener)|resource|
+|[aws_lb_target_group.ss_tg](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_target_group)|resource|
+|[aws_network_interface.ss](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/network_interface)|resource|
+|[aws_route53_record.ss](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_record)|resource|
+|[aws_availability_zones.available](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/availability_zones)|data source|
+|[aws_route53_zone.zone](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/route53_zone)|data source|
+|[aws_vpc.vpc](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/vpc)|data source|
+
+**Inputs**
+
+|Name|Description|Type|Default Value|Dependent on or not|
+|----|---|----|------|-------|
+|[cluster_size](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_cluster_size)|Cluster size of the same number as the availability zone|number|n/a|yes|
+|[hosted_zone_name](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_hosted_zone_name)|Private zone name|string|"shardingsphere.org"|no|
+|[image_id](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_image_id)|AMI iamge ID|string|n/a|yes|
+|[instance_type](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_instance_type)|EC2 instance type|string|n/a|yes|
+|[key_name](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_key_name)|SSH key pair|string|n/a|yes|
+|[lb_listener_port](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_lb_listener_port)|ShardingSphere Proxy startup port|string|n/a|yes|
+|[security_groups](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_security_groups)|Security Group list|list(string)|[]|no|
+|[shardingsphere_version](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_shardingsphere_version)|ShardingSphere Proxy version|string|n/a|yes|
+|[subnet_ids](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_subnet_ids)|Subnet list sorted by AZ in VPC|list(string)|n/a|yes|
+|[vpc_id](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_vpc_id)|VPC ID|string|n/a|yes|
+|[zk_servers](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#input_zk_servers)|Zookeeper Servers|list(string)|n/a|yes|
+
+**Outputs**
+
+|Name|Description|
+|----|----|
+|[shardingsphere_domain](https://github.com/apache/shardingsphere-on-cloud/tree/main/terraform#output_shardingsphere_domain)|The domain name provided by the shardingSphere Proxy cluster. Other applications can connect to the proxy through this domain name.|
+
+## Operation and Maintenance
+
+By default, ZooKeeper and ShardingSphere Proxy services created using our Terraform configuration can be managed using systemd.
+
+### ZooKeeper 
+
+#### Start
+
+```shell
+systemctl start zookeeper
+```
+
+#### Stop
+
+```shell
+systemctl stop zookeeper
+```
+
+#### Restart
+
+```shell
+systemctl restart zookeeper
+```
+
+### ShardingSphere Proxy
+
+#### Start
+
+```shell
+systemctl start shardingsphere
+```
+
+#### Stop
+
+```shell
+systemctl stop shardingsphere
+```
+
+#### Restart
+
+```shell
+systemctl restart shardingsphere
+```
diff --git a/docs/content/overview/_index.cn.md b/docs/content/overview/_index.cn.md
index 6276a3f..123a337 100644
--- a/docs/content/overview/_index.cn.md
+++ b/docs/content/overview/_index.cn.md
@@ -24,11 +24,11 @@ ShardingSphere-on-Cloud 项目是面向 Apache ShardingSphere 的云上解决方
 
 - ShardingSphere-Operator 示意图
 
-![Operator 示意图](../../../../img/overview/operator.png)
+![Operator 示意图](../../img/overview/operator.png)
 
 - ShardingSphere-Terraform 示意图
 
-![Terraform 示意图](../../../../img/overview/terraform.png)
+![Terraform 示意图](../../img/overview/terraform.png)
 
 ## 项目功能
 
diff --git a/docs/content/overview/_index.en.md b/docs/content/overview/_index.en.md
index ab208b5..d3f51c0 100644
--- a/docs/content/overview/_index.en.md
+++ b/docs/content/overview/_index.en.md
@@ -24,11 +24,11 @@ At present, the terms involved in this warehouse are from common cloud service p
 
 - ShardingSphere-Operator Diagram
 
-![Operator Diagram](../../../../img/overview/operator.png)
+![Operator Diagram](../../img/overview/operator.png)
 
 - ShardingSphere-Terraform Diagram
 
-![Terraform Diagram](../../../../img/overview/terraform.png)
+![Terraform Diagram](../../img/overview/terraform.png)
 
 ## Feature List
 
diff --git a/docs/static/img/operation-guide/5-1.png b/docs/static/img/operation-guide/5-1.png
new file mode 100644
index 0000000..95f6c4f
Binary files /dev/null and b/docs/static/img/operation-guide/5-1.png differ
diff --git a/docs/static/img/operation-guide/5-2.png b/docs/static/img/operation-guide/5-2.png
new file mode 100644
index 0000000..9831992
Binary files /dev/null and b/docs/static/img/operation-guide/5-2.png differ
diff --git a/docs/static/img/operation-guide/5-3.png b/docs/static/img/operation-guide/5-3.png
new file mode 100644
index 0000000..6c834db
Binary files /dev/null and b/docs/static/img/operation-guide/5-3.png differ
diff --git a/docs/static/img/operation-guide/5-4.png b/docs/static/img/operation-guide/5-4.png
new file mode 100644
index 0000000..4ae47f2
Binary files /dev/null and b/docs/static/img/operation-guide/5-4.png differ