devops 快速入门
前提必要条件
- 准备充足的ide开发池,因为每一个流水线(外部应用)会创建一个ide来执行作业逻辑
- 保证系统资源充足
- 使用的租户管理员尽量用组织租户,因为流水线板块里部分功能依赖到了人员组织的能力,如:依赖库、api发布及回调类型的流水线......
- 保证流水线依赖到的服务正常,如:控制台console-deploy、newcsl租户下entry、newcsl租户下scheduling、newcsl下wf、newcsl租户下message
流水线管理基本操作
创建流水线
- 流水线名称和流水线编码命名很重要,它决定ide的命名,由此会影响此应用的服务名等基础信息
- 流水线模板即流水线线流程,在系统管理员控制台的流水线模板页出可以配置,目前系统有已支持5种流程 helm部署模板、api发布及回调模板、市场应用部署模板、内部应用部署模板、外部应用部署模板
- 参数配置模板:如果选择了就会填充该《流水线编辑》的内容,内容源头在参数模板管理里进行新增
流水线的其他操作
- 打开应用:类型是helm部署模板、外部应用部署模板的流水线都会拥有一个ide应用,该ide应用里承载了流水线作业逻辑
- 转存到参数模板:将配置好的流水线内容转存到参数模板里,方便在创建相似流水线时引用
- 停止/重置:流水线在执行中时,进行强行停止并恢复到最初的待发布状态
- 强制删除:当系统出现不可抗异常时导致流水线混乱出现脏数据,我们在删除脏数据流水线时能够强制将其清理掉
租户控制台下不同类型流水线配置和开发
流水线编辑
外部应用部署
- 代码拉取设置
- 以下几个重要的项在《配置模板》命令脚本中的引用变量命名
发布工程所在目录 releasePath 目标目录 targetDir 发布项目名称 projectName 发布项目名称全大写 projectNameUpperCase
- 基础镜像:在制品库管理——》镜像管理中可进行新增。基础镜像关联到环境语言、环境版本、ide构建环境等一系列基础环境信息。
- 以下几个重要的项在《配置模板》命令脚本中的引用变量命名
- 命令脚本:主要能力是为用户提供自定义的逻辑设置,基础脚本模板在管理员控制台《配置模板管理》
- 构建脚本:对源码构建编译
- 安装脚本:安装编译好的用户代码,安装系统依赖,安装某种开发语言的环境依赖。如果应用要多进程也是在此处配置
- 初始化命令:主要负者启动前的初始化工作,如:调用门户进行初始化数据
- 启动脚本:启动用户二进制包的命令在这里进行设置
- Maven setting文件:管理者Maven中央仓库
- Nginx配置文件:对web类型的流水线进行nginx更细节的配置
- 应用配置
- 网关设置:配置的是ide应用里模块下的 app.m
- 服务注册设置:如果应用想要作为企业应用使用,并且希望注册到门户
- 发布部署
- standalone模式:独立部署模式应用导出的helm安装包是云原生的最小内核runtime,可以在任何云原生环境运行,无需依赖特定的基础环境
- 是否是企业应用:如果选择了standalone模式场景下,需要选择是否是企业应用。企业应用会走门户entry注册逻辑,所以此刻必须依赖门户entry服务
- 选择发布方式
- 内部市场:主要以资源的方式发布到平台应用市场
- 外部市场:以helm包的方式发布到配置的helm仓库(helmmuseum仓库),可在统一通用配置——》devops管理服务——》helm仓库下进行配置
- 内部k8s集群:部署到平台内部的kube或pool
- 外部k8s集群:部署到远程k8s上,远程k8s配置可在统一通用配置——》devops管理服务——》远程k8s下进行配置
helm部署
平台除了支持标准应用外,还支持云原生helm应用,用户通过chart yaml配置和制作镜像即可完成一个云原生的helm应用
- helm包设置
- 设置方式:有两种方式,上传helm包、基于helm模板修改
- helm模板配置:主要配置 values.yaml,用户还可以进行更大范围的定制开发,在配置里的高级设置里点击打开vsCode即可进行全方位的定制
内部应用部署
租户管理员创建的企业应用ide进行常规的发布操作属于内部应用部署行为,通过流水线的目的是自动化
- 内部应用选择设置:选择好已存在的应用,然后设置git分支
市场应用部署
所有发布到应用市场下应用都可以使用流水线自动化部署
- 发布部署阶段不允许发布到内部市场
api发布及回调
发布api到api市场,并进行订阅和回调
发布策略
即是任务调度的调度策略,每条流水线流程实例关联一个任务调度job,更多任务调度细节请参考开发手册——》业务中间件——》任务调度
- 执行一次
- 周期执行
- cron执行
通知设置
主要是调用消息中心发消息,更多消息中心的配置细节请参考开发手册——》业务中间件——》消息中心
环境变量设定
即应用的环境变量引入,在ide和发布后端prod阶段都能全程生效
解释:这里环境变量是应用到ide模块下的def.xml中的,如下:
<service>
<properties>
<property name="hello" env="HELLO_WORLD" value="你好">
<label label="参数描述"/>
</property>
</properties>
</service>
依赖库管理
使用依赖库前提是租户管理员必须在某组织下
- 当前组织下如果创建了依赖库,那么该依赖库在流水线编辑页中Maven setting文件里会关联上
镜像管理
主要为外部应用流水线编辑里的基础镜像设置提供关联选择,和helm部署类型的流水线,在基于模板配置的场景下设置的helm镜像信息提供源数据
管理员system控制台下基础源的配置和开发
配置模板管理
主要目的是为流水线编辑里为脚本文件、Maven setting文件、nginx conf文件等提供模板内容。 模板里可引用的变量如下:
发布工程所在目录 releasePath
目标目录 targetDir
发布项目名称 projectName
发布项目名称全大写 projectNameUpperCase
流水线模板
即流水线流程模板,走wf流程服务逻辑
- 流水线模板创建可以通过组装任务模板来实现
任务模板
为流程模板提供最基础的流程服务环节,该服务环节里主要定义的是任务调度的job作业。
- 参数格式如何与定义内容中变量配合使用的
参数格式里定义了一个表单finalTask字段,如果要引入到定义内容中去,那么 这样引入, 这样就能做到finalTask表单的值动态替换内容里面的 了。
任务调度管理
流水线流程实例与任务调度job一一对应,是流水线作业的主要做工引擎。 任务调度管理的更多细节请到开发手册——》业务中间件——》任务调度
组织依赖库管理
人员用户组织下创建依赖库,其中有三种类型maven、pypi、npm,有了这些依赖库用户可以在构建脚本、安装脚本......等文件里引入使用
pass平台基础镜像管理
所有需要管理起来的平台基础镜像都在这,此处管理后在租户端镜像管理进行上传时会进行同名检查拦截