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