课件获取:关注公众号 “数栈研习社”,后台私信 “ChengYing” 获得直播课件
视频回放:点击这里
ChengYing 开源项目地址:github 丨 gitee 喜欢我们的项目给我们点个__ STAR!STAR!!STAR!!!(重要的事情说三遍)__
技术交流钉钉 qun:30537511
产品包的构成
01 产品包制作前置条件
在制作产品包之前,我们首先要完成以下 3 个步骤:
ChengYing 已部署完成,ChengYing 的部署内容可以参考【ChengYing 安装原理】。
组件原料准备完成(组件原料主要是指已经编译完成的二进制包)。
当以上两个步骤完成之后,我们就可以开始产品包的制作。
02 产品包构成
产品包主要由 schema.yml 及各服务目录组成。Schema 主要主要描述产品的组成,是一个编排文件,服务目录类似于工作目录,也有可能是静态组件,我们以下面两个产品包介绍为例:
● 基础服务包
上层应用所依赖的服务、例如 mysql、zookeeper 等服务,其目录结构如下:
● Java 应用包
Java 应用层产品包、包含的组件,前端,后端,sql 组件、其目录结构如下:
Schema 解析 & 产品包制作
接下来我们来重点了解下 Schema 相关的内容。
01 Schema 解析
Schema.yml 是整个产品包的核心文件,其内容主要描述了产品包里所有组件信息以及配置变量。
- 产品所属父级名称 (parent_product_name)
- 产品名称 (product_name)
- 产品版本(product_version)
- 服务名(service)
配置文件(application.properties)
schem 语法参考:
https://dtstack.github.io/chengying-web/docs/chengyingDocs/introduction/schema
02 部署流程
部署流程在上述的 Schema 解析中都有体现,主要是以下流程:
● 安装(install)
从 ChengYing 服务端下载组件,并执行 post_deploy.sh 脚本,成功则进行下一步。
● 启动(running)
执行 Schema 文件中所定义的启动脚本,执行失败,脚本返回 “1” 则表示 run failed ,反之则表示启动成功。
● 健康检查 (healthy-check)
定时执行健康检查脚本(health.sh)。
案例分享
接下来为大家分享两个 ChengYing 产品包制作的案例
01 Base 包制作
以 Base 产品包为例,其中主要包含 zookeeper,mysql,mysql_slaves 等组件。
1. 官网下载二进制安装包
2. 脚本编写(启动脚本,监控脚本,部署脚本)
3. 提取参数,编写 Schema
4. 使用 Mero 工具制作产品包
产品包地址:
curl http://172.0.0.1:8864/api/v2/product/upload -F 'package=@DTBase_2.1.19.tar'
注意:IP 为 ChengYying 所在服务的节点 ip,产品包则是执行 mero 命令后所生成的文件
02 Taier 产品包制作
Taier 属于 Java 应用,前后端分离部署的架构模式。
1. 下载前端代码,进行编译获取编译后的 js 文件
2. 下载后端代码,进行编译后获取编译后 jar 包
3. 按模块划分目录
4. 提取参数,编写 schema
5. 使用 mero 工具制作产品包
产品包地址:
curl http://172.0.0.1:8864/api/v2/product/upload -F 'package=@Taier_4.2.1_rel.tar'
注意:IP 为 ChengYying 所在服务的节点 ip,产品包则是执行 mero 命令后所生成的文件
03 附录
● 关于 Base 产品包
Mysql 二进制包:
https://downloads.mysql.com/archives/community/
Zookeeper 二进制包下载:
https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/
● 关于 Taier 产品包
Taier 源码下载:https://github.com/DTStack/Taier
前端编译命令:npm run build
后端编译命令:mvn clean package -DskipTests -T 1C -pl taier-data-develop,taier-common,taier-worker/taier plugins -am –amd
● Mero 下载地址
https://dtstack-opensource.oss-cn-hangzhou.aliyuncs.com/chengying/mero
开源项目库地址:https://github.com/DTStack/Taier