Skip to content

Based on the automatic release module of neatlogic-autoexec, it supports various functions such as code compilation and packaging, handling differences in multi-environment configurations, database publishing, artifact management, release orchestration, grayscale release and rollback, and deployment for containers and the cloud.

License

Notifications You must be signed in to change notification settings

neatlogic/neatlogic-deploy

Repository files navigation

中文 / English


关于

neatlogic-deploy是发布模块,可以解决应用环境一键发布的场景,主要包括应用配置、版本中心、一键发布等功能。 neatlogic-deploy需要自动化模块neatlogic-autoexec提供支持。

主要功能

应用配置

应用配置主要是管理应用、模块层和环境层的流水线脚本和参数等配置。 img.png img.png

  • 支持配置应用持续集成
  • 支持配置应用超级流水线,模板中只能选当前应用。
  • 支持配置通知策略
  • 支持通过授权管理使用者范围
  • 支持编辑应用、模块和环境信息

版本中心

版本中心是用于管理应用模块的版本及版本的工程物料。已编译过的版本的工程物理库支持上传和下载 img.png img.png

一键发布

一键发布页面支持发起单个发布作业和发起批量作业

  1. 发起单个发布作业
    选择发起作业的应用、模块(已配置流水线和环境),然后点击添加作业按钮,完成发起发布作业配置并保存 img.png img.png
  2. 批量发布作业
    批量发布作业可以直接创建也可以通过超级流水线发起。直接创建是将当前已有作业添加到一个集合里,超级流水线方式是通过模板发起。 img.png img.png img.png

超级流水线

超级流水线是管理全局批量发布作业模板,超级流水线支持发起批量作业和发起定时作业。 img.png img.png

定时作业

定时作业通过配置固定作业定时器实现定时发起发布作业,发起的作业类型支持普通作业和超级流水线两种。 img.png

Webhook

webhook页面是管理作业触发器,包括配置触发范围和触发动作,触发范围即触发点,触发范围的对象是应用模块的环境关联的作业状态,触发动作则是关联“发布触发器数据规范”类型的集成配置。 img.png

功能列表

编号分类功能点说明
1参数全局参数支持自动化作业全局参数的增删改查基础管理。
2支持全局参数字段文本、密码、日期、文本域等类型。
3预设参数支持自动化作业预设参数的增删改查基础管理。
4支持按工具库、原子操作预设参数集。
5支持预设参数集引用全局参数。
6分类工具分类支持工具分类的增删改查基础管理。
7支持工具库查看统计分类下面的工具库、自定义原子操作、关联编排的数量。
8支持工具库按类型设置工具库的权限。
9工具目录支持工具目录的增删改查基础管理。
10支持工具库按目录设置权限。
11场景编排场景支持自动化场景的增删改查基础管理。
12支持按类型、按场景、按岗位职能定义自动化场景分类。
13支持在自动化的组合编排内,设置不同的使用场景,不同的使用场景包含了编排中的不同执行阶段。场景可以实现一个编排,多种使用场景的需求。
14工具库内置工具库平台内置常用的基础工具库外,还包括发布模块的文件操作、配置备份、SQL执行、服务启停、WebSphere发布插件、K8s发布插件、Docker发布插件、WebLogic发布插件等。
15支持内置工具在线测试。
16支持内置工具库在线帮助,如输入参数、输出参数、执行方式、风险等级。
17支持内置工具库关联自定义展示模板。
18自定义
原子操作
支持常见的脚本语言,包括Python、Ruby、VBScript、Perl、PowerShell、CMD、Bash、csh、ksh、sh、JavaScript。
19支持丰富的输入、输出参数类型,包括文本、文本域、密码、文件、时间、日期、单选、多选、开关、账号、JSON对象、节点信息,参数支持设置默认值。
20支持命令行参数,可指定或不指定命令行参数数量。
21支持自定义工具可设置风险等级。
22支持自定义工具可绑定工具目录。
23支持基于git版本管理,支持基于从git导入、导出原子操作。
24支持自定义工具支持版本审核发布。
25支持常见的连接协议,如:SSH、WinRM、Tagent、IPMI、HTTP、HTTPS、Telnet、SNMP、SMI等。
26支持连接方式,如:远端目标机器执行、本地执行、本地到远程执行。
27支持自定义原子操作在线测试验证。
28支持远在操作导入、导出,用于在不同环境的环境迁移。
29发布管理发布模板支持按类型定义一类的发布场景模板,如WebLogic发布,预定义一类发布模板,单独实例配置时选择对应的模板快速完成发布配置。
30支持常规发布的单实例、集群部署的模板配置,如WebLogic应用更新。
31发布配置支持发布模板组合管理的增删改查基础管理功能。
32支持自定义场景发布编排组合,支持图形化拖拉拽布局设计。
33支持复制现有发布组合编排,用于创建与原组合编排相似的新组合编排。
34支持发布组合编排内工具自定义若干阶段或阶段组,阶段内的工具支持串行、并行、条件判断。
35支持发布组合编排阶段内工具全量、分批次、灰度等执行策略。
36支持基础剧本的新增、编辑、删除管理功能,基础剧本可进行可见层级授权,即剧本可设置被调用的层级,包括在子系统层级可见、环境层级可见与实例层级可见。
37编排剧本内可支持对编排工具库和自定义原则操作的直接调用,简化剧本的设计过程。
38支持子系统、系统环境、发布实例下的剧本(Playbook)编排,可对多个剧本进行编排,快速执行剧本的增删改等操作。
39相同剧本在不同层级管理单元之间可继承、重用,且优先级从高到低的顺序为:应用实例层级、子系统环境层级、子系统层级。
40场景预设支持一个系统内的发布按场景进行预选设置,比如:只编译、构建、备份、回退、SQL执行、应用启停等。
41编译&构建支持从SVN、Git代码仓库开始的应用代码自动化编译打包与自动发布,同时支持从SVN获取数据库脚本、应用配置文件的自动化执行与下发功能。
42支持代码基线自动维护,发布后自动归并修改到基线,编译前自动归并基线上的修改到发布分支。
43支持对JUnit的测试结果数据进行抽取和展示。
44支持对接SonarQube代码扫描,并且出具扫表结果清单。
45具有封版的功能,封版后,需要有权限的用户开版后才能再编译,防止在生产发布前代码存在修改而没有经过测试。
46支持通过Maven、Ant、Gradle等工具自动化编译打包Java应用;支持.Net、C、VC++、Java等应用的自动化编译打包;同时支持自定义编译打包脚本设计功能,以完成应用的自定义编译打包。
47对于编译完成后的应用,平台支持根据自定义需要进行物料整理,并将整理后的物料重新完成自动化打包。
48配置
修改/替换
支持应用配置文件的自动化部署功能,支持配置文件的自动化修改、自动替换。
49支持服务器差异配置的自动配置,支持配置模版功能,配置模版和环境配置结合,生成可以适配到不同的环境(例如:SIT、UAT、PRD)的最终配置文件。
50数据库脚本
自动执行
依据一定的规则,对DB脚本自动识别运行目标和运行顺序串行或并行运行,出错可以交互选择提交或回退。操作可重入,执行成功的脚本不会再执行,能够自动识别修改过的DB脚本并进行提示;自带数据库链接插件,支持MySql、PosgreSQL、Oracle、DB2的发布;DB脚本使用MySql client,Oracle SQLPlus,db2cli兼容的运行方式,能够在上述工具中运行的DB脚本能够直接在发布工具中执行。
51数据库脚本执行出错时,平台页面支持用户交互,用户可选择提交或者回滚;支持数据库事务rollback/commit实时回显时,支持对关键字及所在行作颜色标记。
52支持多DB脚本的免输入以及免说明的一键发布;支持选择并执行若干个DB脚本
53数据库脚本操作可重入,执行成功的脚本不会重复执行,平台能够自动识别修改过的数据库脚本并给出提示。
54支持数据库脚本的回退功能,明确列出回退脚本列表,用户可以交互式的进行回退操作。并且脚本回退操作可重入,执行成功的脚本不能重复执行。
55针对Oracle数据库,进行失效对象的检查和重新编译处理。
56部署&发布支持Linux、Unix、Windows等系统上的的应用自动化部署。
57支持自带部署插件,包含Tomcat、WebLogic和WAS的部署插件,并且支持扩展。
58支持应用批量一键发布功能,即一次发布多个系统版本,应用系统之间需考虑发布优先级。在发布过程中,能够对批量发布中的作业进行暂停、重新运行等操作,以及能够对已修复的作业进行重新发布;
59单个应用的自动化发布与多个应用的一键发布,均需实时显示各个发布过程的状态;
60支持应用版本回退,平台可快速的选择历史任一版本进行回退操作;
61支持应用实例的状态监控,版本发布完成后,平台能够方便的检测与查看应用实例的健康状态。
62支持应用重启操作,可以选择应用的多个实例进行并行或串行的启动与停止操作,且能够提供独立的授权管理功能,可授权给指定用户,便于用户能够自动化部署平台重启应用并查看日志。
63支持待发布物料的完备性、版本一致性等校验,支持数据库脚本的自动扫描。
64代码管理代码管理支持编译前检查版本分支(集成分支)是否已经合并代码基线(master)的更改。
65