WY自动部署平台使用

一、自动部署平台下概念间关系

产品:顶级元素,一切从“产品”开始
应用:可以在“产品”下建立1到多个“应用”,支持的“应用”类型有:Tomcat,Nginx,JavaApp等
环境:需要在“应用”下建立至少1个环境,比如一个“应用”可以有测试环境,演练环境,线上环境等
实例:实例就是部署节点,为了高可用性,一个环境往往被部署到多个实例

二、构建过程与部署过程

2.1、标准过程

2.1.1、构建过程

构建过程:包括编译代码,打包编译后代码等步骤,比如执行mvn package就是执行构建过程。
构建过程在自动部署平台的服务器上进行,自动部署平台的服务器首先根据配置从SVN或者Git上下载源代码到本地,然后执行构建过程。
自动部署平台默认项目为标准的Maven项目,据此,平台创建了默认的构建脚本build.xml(该构建脚本被Ant工具使用,另外该构建脚本内调用执行maven命令)。
下载该默认的构建脚本,进行分析得:
1、调用maven命令,编译源代码,打包,复制项目依赖,以上命令的输出都放在本项目下的“target”目录中
2、在本项目下创建一个“compressed”目录,在该目录下创建“lib”和“conf”两个子目录
3、将“target”目录下的所有项目依赖和打包本项目得到的包都复制到“compressed/lib”目录下;将Maven标准目录“src/main/resources”下的所有文件复制到“compressed/conf”目录下
4、如果在本项目目录下存在“conf”目录,将该“conf”目录下的所有文件复制到“compressed/conf”目录下,复制过程中,如果已存在同名文件,则进行覆盖
5、将“compressed/conf/${ConfArgu}”目录下的内容复制到“compressed/conf/”目录下,复制过程中,如果已存在同名文件,则进行覆盖,其中“ConfArgu”变量的值是在配置环境参数时,在图1中所填入的值,这个机制对于不同环境需要采用不同的项目配置参数的需求非常有用

图1
这里写图片描述

在构建脚本运行完后,自动部署平台会在当前项目目录下尝试寻找“compressed”目录,如果未找到则会抛出错误;如果找到,则将“compressed”目录下内容打包成一个“*.tar.gz”包

2.1.2、部署过程

部署过程:自动部署平台的服务器与实例节点上安装的自动部署平台Agent通信,将构建过程得到的“*.tar.gz”包传送到实例节点,然后自动部署平台Agent负责解压,运行Java进程。
具体步骤如下:
1、自动部署平台的服务器与实例节点上安装的自动部署平台Agent通信,将构建过程得到的“*.tar.gz”包传送到实例节点
2、自动部署平台Agent会在特定目录下创建A和B两个目录(A和B目录的名称由应用名等构成),在A目录下,Agent会放置从“*.tar.gz”包解压得到的lib目录和conf目录;在B目录下,Agent会创建一些特定的可执行脚本
3、Agent会执行B目录下的相应脚本:将“A/lib”目录下的所有JAR包加入类路径,将“A/conf”目录加入类路径(从而使得项目中以类资源形式加载文件的方式能够正常工作),进入A目录,执行Java主类(这个Java主类在图2中配置),创建Java进程

图2
这里写图片描述

2.2、非标准过程

2.2.1、非标准构建过程

当你的项目为非标准Maven项目,需要你自己编写build.xml文件并上传到自动部署平台。
根据以上标准构建和部署过程的讨论,自己编写build.xml文件需要注意以下几点:
1、在当前项目下创建一个“compressed”目录,所有内容都放到该目录下
2、在“compressed”目录下创建一个“lib”目录,将当前项目的所有依赖和打包当前项目得到的JAR包都放到该“lib”目录下
3、在“compressed”目录下创建一个目录用于存放项目配置文件,将项目所有配置文件放入其中。当该目录名为“conf”时,由于最后部署节点上的Agent会将其加入类路径,因而可通过类资源形式加载其下文件;否则不能以类资源形式加载其下文件
4、可以在“compressed”目录下自由放置其他任意文件和目录

2.2.2、非标准部署过程

部署过程不可介入,因而不存在非标准部署过程

备注:以上构建过程与部署过程的描述是针对JavaApp应用类型的,其他应用类型的构建过程与部署过程还未研究

三、其他

3.1、两个重要的环境配置参数

“build.xml”:项目是标准Maven目录,采用默认的build.xml即可,否则自己编写build.xml,并上传到自动部署平台
“conf名称”:见图1。如果没有这个目录,填写“./”。如果采用自己编写的build.xml,该配置失效

3.2、实例管理

实例节点的管理在“主机管理”页面中

3.3、环境配置参数中的“appName”参数

方便识别具体应用,便于监控

3.4、如何分配实例端口

可以自己设置,不设置会有默认端口,如果设置的端口被占用,会自动递增找到可用端口

3.5、环境的参数配置和实例的参数配置之间的关系

环境的参数配置只是个最初的模板,新建的实例从环境参数配置获取最初的值,以后要修改实例的参数配置,只能在实例级别进行

3.6、主机与实例

一台主机可以作为多个实例的载体

3.7、实例管理和环境管理中的“启动、停止、重启”等操作

实例管理中的“启动、停止、重启”等操作针对选中实例上的相应进程进行;
环境管理中的“启动、停止、重启”等操作针对选中环境所对应的所有实例上的相应进程进行

你可能感兴趣的:(实例,应用,产品)