云效AppStack以应用为核心来组织研发、测试、交付、运维活动,高效、安全、有序。本文将带领您以不同角色身份,体验应用交付的完整流程。
作为资源管理员
作为资源管理员,负责统一管理企业基础设置资源并划分给不同的业务应用使用。接下来将按照以下3步,带领您快速完成资源托管和分配。
步骤一:新建服务连接
-
若需要托管阿里云ACK集群,则需要创建 容器服务Kubernetes(ACK) 服务连接进行授权(详见 服务连接);若需要托管其他厂商 K8s 集群或自建 K8s 集群,则直接使用集群的kubeconfig信息建立连接即可(需要集群的 APIServer公网可访问)。
-
若需要托管阿里云ECS,则需要创建 云服务器(ECS)服务连接进行授权(详见 服务连接);若需要托管其他厂商的主机或自有主机,则直接在主机上安装 Agent 建立连接即可(需要主机公网可访问)。
步骤二:导入资源
云效 AppStack 支持托管自建 K8s 集群和传统主机,具体资源导入方法详见 Kubernetes 集群托管、主机集群托管 。
步骤三:为业务应用分配资源
-
若需要划分的资源为自建 K8s 集群,则可直接跳过此步,由后续的应用编排指定 namespace 即可。
-
若需要划分的资源为传统主机集群,则进入目标主机集群详情页,新建部署组,待分配给各个业务应用使用,详见 关联部署组 。
在左侧导航栏单击资源池,进入资源池页面。页面顶部展示通用 K8s 集群数、主机组数、部署应用数和部署环境数的统计卡片。下方分为 Kubernetes 集群列表和主机集群列表,分别显示集群显示名、集群名称(或主机数、主机组名称)、拥有者和创建时间。可通过右上角导入集群按钮导入新的 Kubernetes 集群或主机集群。
作为应用负责人
作为应用负责人,负责某个应用完整的上线流程以及日常研发运维。接下来将按照以下5步,带领快速完成从代码提交到应用发布上线。
步骤一:新建应用
新建应用:通常一个可独立对外提供服务的单元可以定义成一个应用。进入 应用交付AppStack,单击 新建应用,填写 应用名 、标签 、描述,单击创建应用。
拥有者为必填项,默认为当前用户。应用名为应用的唯一标识,创建后不可更改。
步骤二:部署编排
编排应用部署架构,支持K8s Yaml、主机脚本,使用变量支持一套编排多环境差异化管理。
-
K8s应用 YAML 编排详见 Kubernetes 部署编排。
在编辑应用编排页面的 YAML 编辑器中,修改 Deployment 清单内容,将需要差异化的字段(如
containerPort)定义为占位符。单击提取占位符,系统自动在右侧占位符列表中生成对应条目(包括envName、namespace、cpuLimit、memoryLimit、containerPort等)。在占位符值中可通过$(变量名)语法引用变量组中的变量,例如将containerPort的值设为$(port),从而引用开发环境变量组中定义的port=8080,实现不同环境的差异化配置。 -
主机应用脚本编排详见 主机部署编排。
在应用编排编辑页面,配置主机部署的制品信息:将制品类型设置为 HTTP,包来源填写
{{ .AppStack.artifact.demoapp }},保存路径填写/home/admin/app/package.tgz,执行用户设为 root。在启动脚本中依次执行创建目录、解压包文件和运行deploy.sh start;停止脚本中执行deploy.sh stop;健康检查脚本和清理脚本保持关闭。在右侧制品区域添加artifact.demoapp用于定义制品包地址;在占位符区域添加envName(类型为字符串,值来源为变量),脚本中的占位符赋值可引用变量组中定义的变量(例如变量组中定义 port 变量,开发环境取值 8080)。
步骤三:规划环境
配置应用部署所需的环境和资源,详情请参考环境部署策略。
-
云效 AppStack 为您预置开发环境、测试环境、生产环境三套环境,可以在应用环境列表页面查看。
环境列表页面以卡片形式展示各环境,每张卡片包含环境级别标签、部署状态(未部署、运行中或部署中)及当前版本号。单击右上角新建环境可创建自定义环境(如 UAT 环境)。
-
您还可以新建自定义环境,选择部署方式、关联对应资源和变量组后使用。详见 环境管理。
新建环境时需填写名称、显示名、标签和描述等信息。可选的部署方式(Kubernetes部署或主机部署)由应用编排方式决定,每个环境只能指定一种。关联的变量组用于部署时替换编排中的变量。
步骤四:研发流程设置
-
配置应用研发流程,通常可划分为测试、预发、生产流水线,包括构建、部署等步骤,支持人工卡点等,相关研发流程规范请参考研发流程规范。
生产阶段流水线依次包含流水线源(关联代码仓库及分支)、镜像构建、发布审核(人工卡点)和生产环境部署四个阶段,各阶段按顺序执行。
-
部署步骤选择 AppStack部署,选择待部署的应用、环境,制品通常为上游构建阶段产物。
在制品区域选择标签数据源,并勾选自动创建部署单、上一次部署失败时手动确认和存在新的可用编排版本时手动确认。
步骤五:应用发布
当有一个业务需求时,编码完成后提交代码,依次运行开发、测试等各阶段流水线部署应用服务到相应环境。
在应用研发流程页面中,流水线按开发、测试、生产三个阶段从左至右排列,每个阶段显示当前运行状态(如成功或待运行);单击对应阶段的运行按钮可触发该阶段流水线执行。
支持查看部署单详情,观测批次发布进度。
部署完成后,在部署单详情页面的部署进度区域可查看分批发布状态(如第1批、第2批的完成进度),以及 Deployment → ReplicaSet → Pod 的资源拓扑关系,确认所有 Pod 均已就绪。
部署成功后可跳转至环境详情查看资源状态、日志等。待逐环境测试验证后发布至生产,最终完成一次完整的应用交付,如果在您的生产环境中需要用到ARMS监控,详情请参考ARMS+云效AppStack实现应用环境监控。
在环境详情页的工作负载页签下,确认 Deployment 状态为成功,其下属 Pod 状态均为运行中。
最佳实践
相关应用的最佳实践请参考: