{"id":15138547,"url":"https://github.com/silentbalanceyh/vertx-zero-cloud","last_synced_at":"2025-07-23T09:33:03.299Z","repository":{"id":46592085,"uuid":"497145691","full_name":"silentbalanceyh/vertx-zero-cloud","owner":"silentbalanceyh","description":"🏆 Zero云原生平台（实验版）","archived":false,"fork":false,"pushed_at":"2023-06-08T12:35:56.000Z","size":212,"stargazers_count":5,"open_issues_count":0,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-06T17:51:42.268Z","etag":null,"topics":["istio","k8s","vertx","zero"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/silentbalanceyh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-27T21:42:46.000Z","updated_at":"2023-02-16T23:19:59.000Z","dependencies_parsed_at":"2024-09-16T12:35:13.367Z","dependency_job_id":"3b8ab2d9-458f-4687-8767-dc1f2864357e","html_url":"https://github.com/silentbalanceyh/vertx-zero-cloud","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/silentbalanceyh/vertx-zero-cloud","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silentbalanceyh%2Fvertx-zero-cloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silentbalanceyh%2Fvertx-zero-cloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silentbalanceyh%2Fvertx-zero-cloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silentbalanceyh%2Fvertx-zero-cloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/silentbalanceyh","download_url":"https://codeload.github.com/silentbalanceyh/vertx-zero-cloud/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silentbalanceyh%2Fvertx-zero-cloud/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266655112,"owners_count":23963539,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["istio","k8s","vertx","zero"],"created_at":"2024-09-26T07:41:12.826Z","updated_at":"2025-07-23T09:33:03.262Z","avatar_url":"https://github.com/silentbalanceyh.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zero Cloud\n\n* 第三方库基础环境安装参考[链接](document/LINKS.md)\n* [《Zero规范介绍》](http://www.vertx-cloud.cn)\n\n## 1. 基本介绍\n\n### 1.1. 序\n\n\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;Zero Cloud是基于Zero\nFramework的云端版本，目前Zero框架的Extension部分功能已经可以支撑大部分企业级应用（在ITSM、CMDB、IOT、酒店管理、金融、医疗领域运行了9个生产环境的企业内部系统），在准备发布`1.0.0`\n版本之前，我又重新基于云端进行了新的架构设计，准备打造**云原生**平台。\n\n\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;早期开发Zero时有一个**侵入式**的微服务云端版本，但那个版本比较初级，当时就是基于`K8S`和`Istio`\n最早的版本开发的，底层使用了`etcd`和`gRpc`，如今旧事重提，换一种云端思路来打造新的**云原生**生态，于是有了Zero Cloud。\n\n\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;该项目目前没有核心代码，核心代码会收录在`vertx-zero/vertx-istio`\n子项目中，当前项目主要提供云端架构的指导规范、概念定义、设计思路、自动化脚本以及云端项目脚手架，并通过自动化或半自动化模式使完整生态落地。\n\n### 1.2. 结构（概念版）\n\n\u003e Zero Cloud的基础系统设计并没有完全按照云原生十二要素进行，由于K8S和Istio已经提供了底层大部分基础设施功能，所以Zero\n\u003e Cloud将所有精力集中于**应用层**，根据部署运维的视角，其实客户本身的应用系统是一个**平行四边形**结构。\n\n![](./document/_image/2022-07-20/20220720145836.png)\n\n\u003chr/\u003e\n\n## 2. 目录说明\n\n### 2.1. vertx-zero-cloud\n\n|目录名|所属|说明|\n|---|---|---|\n|development|vertx-zero-cloud|研发/开发环境工具目录。|\n|document|vertx-zero-cloud|内置文档目录。|\n|toolkit|vertx-zero-cloud|脚本工具专用目录。|\n|apps|xxx-cloud|全局环境配置模板。|\n|environment|xxx-cloud|环境分流格式专用配置目录。|\n|platform|xxx-cloud|多语言资源配置分流目录。|\n\n\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;对vertx-zero-cloud而言，xxx-cloud系统平台是单独的一个app，而xxx-cloud其本身是一个**\n多租户、多语言、多应用**的环境，至于结构图中的**多环境、多区域**和部署应用没有直接关系，大部分是在底层K8S这一级实现分离。\n\n### 2.2. xxx-cloud\n\n\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;无须手工创建，直接设置环境变量后运行初始化脚本即可，`xxx-cloud`自带分类配置：\n\n* K8S环境配置：用于描述该平台发布到哪种K8S环境中（五选一）\n* 应用语言配置：用于描述该平台使用哪种语言优先（三选一）\n\n|目录名|类型|说明|\n|---|---|---|\n|database/mysql|目录|（K8S挂载）MySQL数据库文件目录。|\n|database/tidb|目录|（K8S挂载）TiDB数据库文件目录。|\n|development|目录|和vertx-zero-cloud中的development维持一致，协同开发。|\n|deployment|目录|（五选一）对应vertx-zero-cloud中的environment。|\n|kzero|目录|（生产运行）对应vertx-zero-cloud中的platform。|\n|kidd|目录|（生产运行）和kzero协同处理配置的专用平台。|\n|kinect|目录|（开发测试）低代码所见即所得专用平台。|\n|zapp.yml|文件|当前平台的全局统一配置。|\n|zapp-axis.yml|文件|当前平台核心引擎配置。|\n|zapp-modulat.yml|文件|当前平台的Zero模块化配置，标准化专用。|\n|zapp-plugin.yml|文件|当前平台的功能插件配置，集成和IT驱动专用。|\n|zapp-down.yml|文件|当前平台下的app-children专用配置（子系统、子模块专用）。|\n|zapp-up.yml|文件|和vertx-zero-cloud连接执行协同处理的专用配置。|\n|k-app.sh|文件|初始化环境融合脚本，融合出厂设置、平台特有专用。|\n|k-init.sh|文件|初始化环境专用脚本。|\n|.env.development|文件|开发用环境变量。|\n|.env.production|文件|生产用环境变量。|\n\n### 2.3. 设计理念\n\n* `xxx-cloud`必须实现自动化运维、管理、更新以及不下线。\n* `vertx-zero-cloud`属于`xxx-cloud`的中枢神经系统，它提供了整个平台环境的专有规范，更新时自动分发**出厂设置**\n  给每一个`xxx-cloud`。\n* `xxx-cloud`本身的Github库中记录了所有版本变更，配置层用于协调生产、开发、测试环境的无缝切换。\n* 二者协同实现**双平台**架构，上游平台和下游平台各司其职，上游平台负责开发、运维、监控、管理以及命令和事件的分发，下游平台负责应用变更、需求适配。\n\n\u003chr/\u003e\n\n## 3. 系统规范\n\n### 3.1. K8S环境类型\n\n\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;Zero Cloud中定义了K8S的运行环境，位于目录`environment`中，而每一个`xxx-cloud`\n只能选择一种，之中所包含的脚本和相关部署工具都相互独立、相互隔离，其核心环境如下（只有两个可以上生产）：\n\n| 目录名     | 类型     | 说明              |\n|---------|--------|-----------------|\n| `kmini` | 开发     | 本地Minikube开发环境。 |\n| `k8s`   | 开发/测试  |远程Minikube开发测试环境（单节点）。|\n| `kmt`| 压测| 预发布压力测试专用环境（单节点 / 集群）。|\n| `ki`    | 生产     |远程标准环境（单节点 / 集群）。|\n| `kiha`  | 生产/高可用 |远程HA环境（集群）。|\n\n### 3.2. 组件环境\n\n\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;K8S的每个目录会包含各种功能型组件的核心目录，其支持功能是横向的，所有`xxx-cloud`\n都可以选择启用或禁用。`etcd`是K8S自带，所以此处不考虑etcd的启动和部署脚本，以下环境是目前可以直接和zero执行集成的核心环境，大部分内容zero-framework中已提供了集成客户端以及相关代码。\n\n| 项 | 说明 |\n|:---|---|\n|`/cloud/*`| Zero Cloud部署脚本/配置。|\n|`/elk/*`| ELK日志平台部署脚本/配置。|\n|`/es/*`| ElasticSearch部署脚本/配置。 |\n|`/hcp/*`| HCP Vault部署脚本/配置。|\n|`/istio/*` | Istio启动脚本。|\n|`/kafka/*`| Kafka部署脚本/配置。|\n|`kiali/*`| Kiali部署脚本/配置。|\n|`/mysql/*` | MySQL部署脚本/配置。|\n|`/neo4j/*` | Neo4J部署脚本/配置。|\n|`/pts/*`|Prometheus部署脚本/配置。|\n|`/redis/*` | Redis部署脚本/配置。|\n|`/tidb/*`| TiDB部署脚本/配置。|\n|`/zipkin/*`| Zipkin部署脚本/配置。|\n\n\u003chr/\u003e\n\n## 4. 应用规范\n\n### 4.1. 语言分类\n\n| 项 | 说明 |\n|---|---|\n| cn | 中文 |\n| en | 英文（保留） |\n| jp | 日文（保留） |\n\n### 4.2. 环境分类\n\n| 项 | 类型  | 说明 |\n|---|---|---|\n| `kzero`  | 出厂  | 平台基础默认环境。                 |\n| `kidd`   | 运行 | 不下线的云端运行环境，kzero冗余镜像。     |\n| `kinect` | 测试/预发布 | 从`kzero -\u003e kidd`的预发布验证环境。 |\n\n1. `kzero`为静态环境，环境中不包含相关配置，云端部署和发布时，会直接以此目录中的所有配置信息为基版本。\n2. `kidd/kinect`为运行环境，其中会包含整套配置信息，基于平台目录相关配置都存储于该目录中。\n\n### 4.3. 配置文件\n\n|项|说明|\n|---|---|\n|zcloud.yml|平台连接配置目录。|\n|zcloud-plugin.yml|插件启用配置，可配置`environment`中所需部署脚本。|\n|zcloud-axis.yml|开发专用配置，配置低代码平台。|\n|zcloud-modulat.yml|模块化专用配置文件。|\n\n### 4.4. 应用配置目录\n\n|项|说明|\n|---|---|\n|asset/admin|「OOB」平台共享管理目录。|\n|asset/modulat|「OOB」模块化专用目录。|\n|asset/tenant|「OOB」租户专用目录。|\n|asset/istio|「OOB」K8S连接配置专用目录。|\n|atom/workflow|「OOB」工作流引擎专用配置目录。|\n|atom/emf|「OOB」模型专用配置目录（基于EMF）。|\n|atom/authorize|「OOB」权限管理配置专用目录。|\n|atom/integration|「OOB」集成服务配置专用目录。|\n|atom/graphic|「OOB」拓扑图配置专用目录。|\n|atom/tpl|「OOB」模板系统配置专用目录。|\n|action/job|「OOB」操作执行任务定义。|\n|action/api|「OOB」操作执行接口定义。|\n|action/lexeme|「OOB」操作执行语义转换定义。|\n|action/rule|「OOB」操作执行规则定义。|\n|above/page|「OOB」呈现配置页面。|\n|above/form|「OOB」呈现配置表单。|\n|above/list|「OOB」呈现配置列表。|\n|above/event|「OOB」呈现行为配置目录。|\n\n\u003chr/\u003e\n\n## 5. 整体拓扑\n\n\u003e 以最新版为准，该图是老版本，后续定型后重新更新。\n\n![](./document/_image/2022-07-20/20220720164554.png)\n\n\u003chr/\u003e\n\n## 6. 应用初始化\n\n### 6.1. 环境变量\n\n\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;环境变量命名规范如下：\n\n* `ZK`打头，全称Zero Kernel，容器相关的环境变量。\n* `ZA`打头，全称Zero Aeon，**永世系统**核心驱动层组件专用。\n* `ZC`打头，全称Zero Component，每个应用专有的环境变量。\n\n\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;环境变量如：\n\n| 类型 | 名称 | 说明 |\n|---|---|---|\n| Zero Kernel | `ZK_NS`| 应用APP的名空间。|\n| Zero Kernel | `ZK_CONFIG`| 应用APP核心配置文件路径。|\n| Zero Aeon | `ZA_ENV`| 环境五选一，默认`kmini`。|\n| Zero Aeon | `ZA_LANG`| 语言三选一，默认cn。|\n| TiDB| `ZC_TIDB` | TiDB名称。|\n| TiDB| `ZC_TIDB_STORE` | TiDB挂载的存储数据文件的路径（物理路径）。 |\n\n### 6.2. 初始化步骤\n\n1. 创建一个Maven的空项目，并链接到您的Git私库中。\n2. 从`vertx-zero/vertx-istio/scaffold`中下载核心文件到项目根目录。\n\n    ```shell\n    .env.development            # 开发环境文件\n    k-app.sh                    # 初始化环境融合脚本\n    k-init.sh                   # 初始化环境脚本\n    ```\n3. 修改`.env.development`环境变量。\n4. 运行`k-app.sh`自动执行当前项目初始化。\n\n### 6.3. 基本环境要求\n\n|项|说明|\n|---|---|\n|JDK| 17+（推荐ZuLu）|\n|Node| 18.x+ |\n|envsubst| 该命令必须可用，网上参考安装教程。|\n|minikube|（开发）K8S迷你环境、单节点。|\n|docker|（开发）容器环境。|\n\n\u003chr/\u003e\n\n## 7. 运行说明\n\n### 7.1. 脚本命名规范\n\n* `minikube-`：基本环境启动脚本（包括dashboard）。\n* `istio-`：Istio环境安装脚本。\n* `zo-`（Zero Deployment to K8S）脚本：发布组件到K8S的专用脚本。\n* `zp-`（Zero Purge from K8S）脚本：从K8S清除当前组件专用脚本。\n* `zq-`（Zero Query）脚本：查询组件状态专用脚本。\n* 如果该脚本需开放或启动某个端口号，则以端口号名称为文件前缀，如：\n    * `1201-istioctl-kiali.sh`\n    * `1231-minicube-dashboard.sh`\n\n### 7.2. 默认端口\n\n* 1231：Dashboard主端口号。\n* 1201 ~ 1299：辅助工具主端口号。\n* Random：以组件标准为主，如TiDB是4000，程序消费专用端口号。\n\n|端口|类型|说明|\n|---|---|---|\n|1231|Minikube|Minikube Dashboard专用端口号，查看K8S集群专用。|\n|1201|Kaili|Kaili监控平台专用端口号。|\n|1202|TiDB|TiDB Grafana专用端口号。|\n|1203|TiDB|TiDB Prometheus专用端口号。|\n|4000|TiDB|TiDB数据库专用端口号。|","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilentbalanceyh%2Fvertx-zero-cloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsilentbalanceyh%2Fvertx-zero-cloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilentbalanceyh%2Fvertx-zero-cloud/lists"}