首页 > 技术文章 > 云效应用交付平台 AppStack,10分钟完成代码提交到上线

yyds114 2021-11-08 17:13 原文

云效应用交付平台 AppStack 是什么?云效应用交付平台 AppStack是一款开发者友好的、以应用为核心的云原生应用交付平台,提供应用编排、环境管理、部署运维、资源管理、应用发布等一站式能力,帮助企业建立应用持续交付整体解决方案,加速企业云原生与 DevOps 转型,提升团队研发效能。
 
 
你仅需以下5步即可完成代码提交到上线的应用研发交付流程:
 
1、新建应用
 
2、编排应用部署架构
 
3、为应用环境分配资源
 
4、将应用部署到环境
 
5、配置应用发布流水线
 
现在开始吧!
 

Step1: 新建应用

  1. 在云效AppStack 应用列表处点击 新建应用
  2. 填写 应用ID,应用ID一旦创建后不可修改,支持1-63个小写英文字母、数字和“-”,不能以“-”开头或结尾
  3. 点击 确认 即可创建一个应用

Step2: 编排应用部署架构

  1. 点击进入刚才创建的应用
  2. 应用-编排 处,点击 从模版创建 ,选择一个应用编排模版,一个应用通常包含 Kubernetes 的工作负载、网络、配置、存储等资源类型,你可以在此处预览模版中包含的组件配置详情
  3. 在本例中我们选择云效示例模版,一个典型的微服务应用部署架构包含 无状态服务Deployment、服务发现Service、路由Ingress三个组件,点击“确定”即可生成应用的编排
  4. 使用云效示例模版可以直接进行部署,你也可以点击 编辑 对应用编排进行进一步的修改
  5. 云效AppStack的应用编排采用 Kubernetes YAML 文件来描述,你可以点击 + 按钮添加更多组件
云效AppStack提供了占位符机制,你可以使用占位符替换 YAML 文件中的部分关键字,以便达到一套编排多环境差异化部署的效果,AppStack 预置了一些常用的占位符来简化你的配置,你也可以添加更多自定义的占位符。
 
 
例如:我们通常会使用 Kubernetes 的多个命名空间(namespace)来隔离多套环境,开发环境使用 dev,测试环境使用 test,生产环境使用 production。在 YAML 文件中将 namespace 这个关键字的值替换为占位符。 {{ .AppStack.namespace }},占位符的又被赋值为变量 ${namespace},这个变量在默认生成的三个环境使用的值分别为 dev、test、production,在发起部署时进行模版渲染变量替换,云效AppStack 最终会将应用部署到指定的 Kubernetes 命名空间中。
 
除多环境差异化部署之外,占位符和变量组的机制还可以在企业内实现统一定义编排模版简化应用编排的效果,即使不熟悉的 Kubernetes 的用户,在模版基础上仅修改部分占位符或变量的值就可以完成应用编排。
 

Step3: 为应用环境分配资源

 
云效AppStack 为每个应用默认生成了三套环境:开发环境、测试环境、生产环境,你也可以根据实际情况新增或删除环境。在部署应用之前,我们需要为环境分配资源,指定使用的 Kubernetes 集群。
 
 
1、点击 导入资源 来导入 Kubernetes 集群,支持阿里云容器服务 ACK集群、其他云厂商提供的集群或是自建的 Kubernetes 集群
 
2、如果使用阿里云容器服务 ACK集群,则点击 新建服务连接 进行授权,授权后可以列出当前帐号下所有 ACK 集群,选择所需集群,设置资源ID(创建后不可更改)和资源名称,点击 确定 后即可导入集群
 
3、如果使用其他云厂商提供的集群或是自建的 Kubernetes 集群,则选择 通用 Kubernetes 集群,输入集群生成的 KubeConfig 文件内容,设置资源ID(创建后不可更改)和资源名称,点击 确定 后即可导入集群。注意⚠️:Kubernetes 集群的 API Server 可以从公网访问,否则无法正常导入
 
4、在 环境-快速设置-资源 处,选择刚才导入的集群,点击 确定 即将集群资源分配给改环境使用
 

Step4:将应用部署到环境

1、在 应用-环境 处,选择需要部署的环境点击 立即部署
 
2、在部署单界面按实际情况修改部署选项,例如需要部署的镜像地址、部署策略、资源规格大小,这些选项的默认值可以在 Step2 应用编排 中定义,也可以在发起部署时进行修改
 
 
3、 点击 确认 后,开部署工单开始执行
 
 
区域1是部署环境列表,AppStack 支持在一个部署工单中批量部署多个环境,适合一个版本发布到多个地区的生产环境等场景,一起部署一起回滚。
 
区域2是对选中环境的部署过程控制,支持在部署中进行暂停、继续、回滚、终止操作,一旦发现问题可应急处理。
 
区域3是选中组件的部署进程,以Deployment类型为例,展示部署的批次信息、新老版本此消彼长的过程,使部署进程一目了然。一个方格代表一个 Kubernetes Pod,点击展示Pod的基本信息、关键事件和容器日志。可以通过查看容器日志了解应用服务是否正常启动。
 
4、 部署完成后,返回环境详情页,可以看到应用组件的运行情况,并可以对环境进行部署、回滚、扩缩容、锁定等操作
 
 
至此,完成了将一个应用的镜像部署到环境中的操作,接下来通过配置云效流水线,实现从代码分支到发布上线的过程。
 

Step5: 配置应用发布流水线

1、在 应用-发布 处,点击新建流水线,选择AppStack 推荐模版
 
2、为流水线添加代码源,详见 流水线源
 
3、配置镜像构建任务,设置镜像仓库地址,详见 构建阿里云容器镜像
 
4、配置AppStack部署任务,选择需要部署的应用环境,使用的镜像,示例中 标签.${DATETIME} 是上一个镜像构建任务输出的构建产物
 
 
5、点击 保存并运行 ,流水线开始执行,如果环境是首次部署,需要点击 创建部署单 按钮手动提交部署单,再次部署则可以自动提交部署单
 
 
6、根据自身业务流程,继续设置开发阶段、测试阶段、生产发布阶段所使用到的流水线,更多流水线使用说明详见 云效流水线 Flow
 
 
至此,你已经完成了一个应用从开发、测试、生产发布按环境逐级晋升的应用研发交付上线流程设置。
 
以应用为核心来组织研发、测试、交付、运维活动,高效、安全、有序。介绍给你的团队吧
 
云效应用交付平台 AppStack 是一款开发者友好的、以应用为核心的云原生应用交付平台,提供应用编排、环境管理、部署运维、资源管理、应用发布等一站式能力,帮助企业建立应用持续交付整体解决方案,加速企业云原生与 DevOps 转型,提升团队研发效能。
 
 

关于我们

了解更多关于云效DevOps的最新动态,可微信搜索关注【云效】公众号

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

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


推荐阅读