使用云效应用交付平台 AppStack进行应用管理

云效应用交付平台 AppStack 是一款开发者友好的、以应用为核心的云原生应用交付平台,提供应用编排、环境管理、部署运维、资源管理、应用发布等一站式能力,帮助企业建立应用持续交付整体解决方案,加速企业云原生与 DevOps 转型,提升团队研发效能。那么应用管理能帮我们做些什么呢?
 

应用的定义

应用,是一个可独立交付的对外提供服务的单元,是开发、部署、发布、运维的最小逻辑单元。 在研发态,通常对应一个到多个功能模块,关联一个或多个代码库; 在运行态,通常对应一组Kubernetes资源。 以电商系统为例,购物车、商品详情、下单系统都是独立应用。众多应用构成了淘宝、天猫、支付宝等业务系统。 开发、 交付、运维工作都是围绕应用展开的,建议每个应用有明确的负责人,对应独立的代码库,上线流程、运维监控、故障定责等工作都以应用维度展开。
 
新建应用
 
应用列表点击 新建应用
  1. 填写 应用ID
  2. 应用ID 一旦创建后不可修改
  3. 支持1-63个小写英文字母、数字和“-”,不能以“-”开头或结尾,此限制是为了将应用ID 安全的用于 Kubernetes,参见Kubernetes 对象名称
  4. (可选)为应用添加更多负责人,应用负责人默认拥有该应用较多操作权限,对该应用的部署架构设计、研发、交付、运维整体负责
  5. 点击 确定,完成应用创建
一个应用中的功能模块
 
进入应用,包含以下功能模块
  1. 发布:应用发布流水线,在这里定义应用构建、测试、部署的应用交付流程,更多详见 发布流水线
  2. 环境:是应用运行态的载体,是应用维度做部署和运维的操作界面,云效AppStack 为你默认生成了三套环境,分别是开发环境、测试环境、生产环境,可根据自身情况规划应用的环境,更多详见 环境管理
  3. 编排:是对应用部署架构的描述,通常包含工作负载、配置项、网络、存储声明等,是一组Kubernetes资源组合。更多详见 应用编排
  4. 变量:变量是一个键值对,变量组是一组变量的集合。在云效AppStack中,变量组可关联到一个环境,用于应用编排时通过提取出多个环境中的不同部分,支持同一套应用编排在多个环境中差异化部署
  5. 版本:部署的版本,包含制品(镜像)信息、环境信息、部署策略、使用的应用编排版本、环境关联的变量版本等信息,是回滚、扩缩和追溯的依据
  6. 工单:对应用环境实例进行的变更的任务执行记录,类型包含部署、扩缩容、回滚、删除等
收藏应用
  1. 点击 应用列表应用详情页星标 可对应用进行收藏,收藏后应用将在 应用列表-我收藏的 列出
  2. 再次点击 星标 取消收藏
⚠️删除应用
  1. 当应用下有部署过的环境时,需要先删除环境再删除应用
  2. 当应用下没有环境,或者有环境但从未部署过,可以直接删除应用,删除应用数据不可恢复,请谨慎操作
  3. 操作入口:应用-设置-删除应用

应用编排

应用编排的定义
 
是对应用部署架构的描述,通常包含工作负载、配置项、网络、存储声明等,是一组Kubernetes资源组合。 AppStack采用 Kubernetes 原生 YAML 的形式来描述应用部署架构,更多参见Kubernetes的概念定义
 
前提条件
 
已经创建了一个应用。
 
应用编排生效原理概述
 
 
云效AppStack 的应用编排主体由 Kubernetes 的 YAML 文件构成。 AppStack 提供了占位符和变量组机制,你可以使用占位符替换 YAML 文件中的部分关键字,以便达到一套编排多环境差异化部署的效果,AppStack 预置了一些常用的占位符来简化你的配置,你也可以添加更多自定义的占位符。
 
例1:使用多个 K8s namespace 隔离多个环境 我们通常会使用 Kubernetes 的多个命名空间(namespace)来隔离多套环境,开发环境使用dev,测试环境使用test,生产环境使用production。 在 YAML 文件中将 namespace 这个关键字的值替换为占位符 {{ .AppStack.namespace }},占位符的又被赋值为变量 ${namespace},这个变量在默认生成的三个环境使用的值分别为 dev、test、production,在发起部署时进行模版渲染变量替换,AppStack 最终会将应用部署到指定的Kubernetes 命名空间中。
 
例2: 为线下环境与生产环境分配不同大小的资源 我们通常会为线下测试环境分配较小资源,为生产环境分配足够支撑业务量的资源。 在 YAML 文件中将 replicas 这个关键字的值替换为占位符 {{ .AppStack.replicas }} , 占位符的又被赋值为变量 ${replicas}, 这个变量在默认生成的三个环境使用的值分别为 1、1、10,在发起部署时进行模版渲染变量替换,AppStack 最终会在开发环境部署 1 个复本,在测试环境部署 1 个复本,在生产环境部署 10 个复本。
 
除多环境差异化部署之外,占位符和变量组的机制还可以在企业内实现统一定义编排模版简化应用编排的效果,即使不熟悉的 Kubernetes 的用户,在模版基础上仅修改部分占位符或变量的值即可完成应用编排。
操作步骤
 
新建应用编排
  1. 应用-编排 处,点击 从模版创建,选择一个应用编排模版,一个应用通常包含 Kubernetes 的工作负载、网络、配置、存储等资源类型
  2. 点击 查看YAML 可预览编排模版内容
  3. 点击 确定 后,所选模版实例化为当前应用的编排
  4. 点击 组件列表-设置 按钮,可修改组件名称和描述
 
 
查看应用编排 点击 应用编排-查看详情 按钮,以只读态打开应用编排详情
 
  1. 云效AppStack 的示例模版会为你预置好 YAML 文件,无需修改可直接将应用部署起来
 
编辑应用编排
 
1、点击“编辑”按钮,进入应用编排的编辑态,你可以新增、删除应用组件,修改应用组件的 YAML 内容,使用预置占位符或自定义占位符替换 YAML 中的关键字,将占位符赋值为所需的常量、变量或Null。
添加/删除组件
 
 
  1. 点击 1 处按钮,为应用编排添加更多组件
  2. 填写组件ID,组件ID是组件的唯一标识,创建后不可修改,仅支持输入1~63个小写英文字母、数字或“-”,不能以“-”开头或结尾,此限制是为了将应用ID 安全的用于 Kubernetes,参见Kubernetes 对象名称
  3. 点击“确定”,编排中会新生成组件对应的 YAML 文件
  4. 点击 2 处按钮,将组件从编排中移除,需要在保存编辑后才会最终删除,点击 3 处按钮,可撤销移除操作
编辑组件描述
 
在 YAML 编辑区域编写组件描述,更多参见Kubernetes的概念定义
 
使用占位符和变量
 
 
 
1、在 YAML 需要替换的关键字处键入 {{ .AppStack.占位符名 }} 可引用预置占位符,键入 {{ .Values.占位符名 }} 可引用自定义占位符,注意⚠️:不符合上述书写格式无法解析为占位符
 
2、云效AppStack 提供以下预置占位符,以便简化配置
 
 
3、点击 提取占位符 ,会从左侧 YAML 编辑区将占位符解析出来,填充到右侧占位符列表
 
4、点击 + 按钮,添加占位符
 
 
  1. 占位符可以赋值为常量、变量、Null,注意,部分 YAML 字段不可为Null
  2. 选择占位符赋值为变量时,可以选择系统预置变量,也可以新建自定义变量
  3. 点击 变量 按钮,可以查看每个变量组中的变量键值
暂存/保存编排
 
1、云效AppStack 每隔数秒会自动暂存编排的修改,也可以点击 暂存 按钮主动进行暂存,暂存并不会真正生效记录一个编排修订版本
 
2、点击 保存 按钮,记录编排修订版本,注意⚠️:此时环境中运行应用并不会立即更新,需要在下一次部署后生效新版本的应用编排。
 
云效应用交付平台 AppStack 是一款开发者友好的、以应用为核心的云原生应用交付平台,提供应用编排、环境管理、部署运维、资源管理、应用发布等一站式能力,帮助企业建立应用持续交付整体解决方案,加速企业云原生与 DevOps 转型,提升团队研发效能。那么应用管理能帮我们做些什么呢?
 
 

关于我们

 更多关于云效DevOps的干货及云效动态,可微信搜索关注【云效】公众号~

 彩蛋:公众号后台回复【指南】,可获得《阿里巴巴DevOps实践指南》&《10倍研发效能提升案例集》~

 看完觉得对您有所帮助别忘记点赞、收藏和关注呦

posted @ 2021-11-10 16:53  云效DevOps平台  阅读(206)  评论(0编辑  收藏  举报