草庐IT

云效应用交付平台 AppStack 之部署运维

云效DevOps 2023-03-28 原文
云效应用交付平台 AppStack是一款开发者友好的、以应用为核心的云原生应用交付平台,提供应用编排、环境管理、部署运维、资源管理、应用发布等一站式能力,帮助企业建立应用持续交付整体解决方案,加速企业云原生与 DevOps 转型,提升团队研发效能。
新建环境后,你可以按需对环境进行部署、扩缩、回滚等运维操作。
 

一、部署

部署通常用于应用制品或配置有变更时去更新环境服务。
 
前提条件
  • 已经完成了应用编排,具体参见 应用编排
  • 至少有一个环境,并且环境已经关联了资源。具体参见 环境管理
操作步骤
 
1. 功能入口
  • 应用-环境,在环境列表找到目标环境卡片,点击 立即部署;也可以进入目标环境详情页面,点击右上角操作区域的 部署 按钮。
  • 应用-环境,点击环境列表上方的 新建部署 可以同时部署多个环境,实现批量部署。
2. 填写部署单参数
  • 工单名称:名单名称,默认填充:${秒级时间戳}-部署,可按需修改。
  • 版本号:部署版本号,自动生成:${秒级时间戳}-${三位毫秒},不可修改。
  • 环境选项:展示本环境应用编排里定义的部署组件,点击 查看YAML 可以查看各组件具体内容。其中工作负载类型组件可按需调整部署参数:
  • 制品:镜像地址。
  • CPU规格:容器CPU请求和限制,单位「核」,支持输入浮点数。
  • 内存规格:容器内存请求核限制,单位「MB」,支持输入浮点数。
  • 部署策略:环境部署策略,支持「分批发布」和「滚动升级」两种策略。
  • 目标实例数:工作负载复本数,支持输入正整数。
  • 分批数:选择「分批发布」部署策略时需要指定分批数和每批发布数量。
  • 暂停策略:选择「分批发布」部署策略时需要指定暂停策略,支持「不暂停」「首批暂停」和「每批暂停」三种策略。
  • 说明:工单描述。
特殊说明: 部署单参数中的「制品」「CPU规格」「内存规格」「目标实例数」受应用编排管控,管控原则为:若应用编排中使用了相应的预置占位符,且预置占位符打开「部署时修改」开关,则在部署单相应的表单项可在编排校验规则范围内按需动态修改。详见 应用编排-使用占位符和变量。
 
添加多环境批量部署:
 
此外,可以点击 添加环境 发起多环境批量部署。以异地多套生产环境为例,可以一次性将一个制品版本同时部署到所有生产环境,并方便后续一次性回滚。
 
打开 所有环境使用相同制品 开关,可以一次填写多个环境制品,保证多环境使用相同制品。具体环境部署参数可在各个环境选项卡片上按需修改,同上述部署单参数填写。
 
 
3. 提交部署
 
点击 提交,生成部署工单,跳转工单详情页面。
 
4. 观察部署过程
 
观察工单执行
  • 左侧环境列表区域,展示本次工单部署的环境,点击卡片可切换环境。
  • 中间流水线区域,展示当前环境部署流水线,流水线节点由当前部署内容决定。
  • 左侧节点详情区域,展示当前节点资源基本信息和部署进度。

 

 

暂停/继续
 
中间流水线上方操作区域,可对当前环境部署进度进行手工干预。可以点击 暂停 当前任务,可用于异常情况下暂停任务观察服务状态。已手动暂停的任务或者受暂停策略控制暂停的任务,可以点击 继续 执行任务。
 
终止
 
部署执行中,可以手动 终止 当前部署任务,可选 置为成功置为失败。可用于一些不需要继续部署的特殊场景:如,SRE通过手工运维集群,已部署应用服务到目标版本,无需工单继续处理的情况。
 
回滚
 
部署执行中,可以点击 回滚,回滚当前环境到上次部署状态。点击 回滚 后,当前部署任务将取消,并生成新的回滚任务,回滚任务将使用环境的最近的部署基线进行一次重新部署。可用于当前部署版本不符合预期,需要快速恢复环境到上次可用状态的场景。
 
查看资源详情
  • 工单详情页-右侧节点区域可以查看各个资源的基本信息和部署进度。特别的针对工作负载类型的资源,点击 部署进度 下的实例块,可以查看实例的详细信息,包括:基本信息关键事件容器日志等。
  • 此外,还可以通过环境卡片进度环境详情页查看各资源状态,具体参见 环境管理。
 
 

二、扩缩

 
环境扩缩容通常用于环境工作负载过高或过低时,动态调整环境对外提供服务实例数。
 
前提条件
  • 环境至少完成一次部署,具体参见 部署
操作步骤
 
1. 功能入口
  • 应用-环境,进入目标环境详情页面,点击右上角操作区域的 扩缩 按钮。
2. 填写扩缩单参数
  • 工单名称:默认填充:${秒级时间戳}-部署,可按需修改。
  • 扩缩选项:展示待扩缩环境工作负载组件的部署信息,需填写以下参数:
  • 部署策略:自动选择上一次部署策略。
  • 目标实例数:根据实际场景输入需要提供服务的目标实例数。
  • 分批数:根据待扩容/缩容的实例数据,输入合适的分批数,以及每批扩/缩数量。
  • 暂停策略:自动选择上一次暂停策略。
  • 说明:输入扩缩说明。
 
 
3. 提交扩缩
 
点击 提交,生成扩缩容工单,跳转工单详情页面。
 
4. 观察扩缩过程
 
观察工单执行
  • 左侧环境列表区域,展示本次工单扩缩的环境。
  • 中间流水线区域,展示当前环境工作负载扩缩流水线。
  • 左侧节点详情区域,展示当前节点的基本信息和扩缩进度。
 
 
暂停/继续
 
中间流水线区域,可对当前环境扩缩进度进行手工干预,可以点击 暂停 当前任务,可用于异常情况下暂停任务观察服务状态。已手动暂停的任务或者受暂停策略控制暂停的任务,可以点击 继续 执行任务。
 
终止
 
工单执行中,可以手动 终止 当前任务,可选 置为成功 或 置为失败 。可用于一些不需要继续部署的特殊场景:如,SRE通过手工运维集群,已部署应用服务到目标版本,无需工单继续处理的情况。
 
查看资源详情:参见上述部署工单。
 

三、回滚

 
回滚可一次性将多个环境快速恢复到目标版本,适用于新版本发布后不符合预期,需要回滚到最近可用版本场景。回滚相当于使用历史版本进行一次重新部署,请谨慎操作!
 
前提条件
  • 待回滚环境至少有一个成功的历史部署版本。
操作步骤
 
1. 功能入口
 
应用-版本,在版本列表找到目标回滚版本,点击 回滚 提交回滚工单。 2. 填写回滚单参数
  • 工单名称:默认填充:${秒级时间戳}-回滚,可按需修改。
  • 回滚版本:自动填充选中的部署版本。
  • 环境选项:展示目标回滚版本下的环境,制品部署策略目标实例数 均使用回滚版本的参数,可按实际情况指定回滚的 分批数 和 暂停策略。
  • 说明:输入回滚说明。
 
 
3. 提交回滚
 
点击 提交,生成回滚工单,跳转工单详情页面。
 
4. 观察回滚过程
 
观察工单执行
  • 左侧环境列表区域,展示本次工单回滚的环境,点击卡片可切换环境。
  • 中间流水线区域,展示当前环境回滚流水线。
  • 左侧节点详情区域,展示当前节点的基本信息和回滚进度。
 
 
暂停/继续
 
中间流水线区域,可对当前环境回滚进度进行手工干预,可以点击 暂停 当前任务,可用于异常情况下暂停任务观察服务状态。已手动暂停的任务或者受暂停策略控制暂停的任务,可以点击 继续 执行任务。
 
终止
 
工单执行中,可以手动 终止 当前任务,可选 置为成功置为失败 。可用于一些不需要继续部署的特殊场景:如,SRE通过手工运维集群,已部署应用服务到目标版本,无需工单继续处理的情况。
 
查看资源详情:参见上述部署工单。
 
云效应用交付平台 AppStack是一款开发者友好的、以应用为核心的云原生应用交付平台,提供应用编排、环境管理、部署运维、资源管理、应用发布等一站式能力,帮助企业建立应用持续交付整体解决方案,加速企业云原生与 DevOps 转型,提升团队研发效能。
新建环境后,你可以按需对环境进行部署、扩缩、回滚等运维操作。
 
 

关于我们

 更多关于云效应用交付平台 AppStack的干货及云效动态,可微信搜索关注【云效】公众号~

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

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

有关云效应用交付平台 AppStack 之部署运维的更多相关文章

  1. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  2. ruby-on-rails - Ruby on Rails 可以部署在 Azure 网站上吗? - 2

    我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/

  3. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

  4. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  5. Ruby,使用包含 TK GUI 的 ocra 部署一个 exe - 2

    Ocra无法处理需要“tk”的应用程序require'tk'puts'nope'用奥克拉http://github.com/larsch/ocra不起作用(如链接中的一个问题所述)问题:https://github.com/larsch/ocra/issues/29(Ocra是1.9的"new"rubyscript2exe,本质上它用于将rb脚本部署为可执行文件)唯一的问题似乎是缺少tcl的DLL文件我不认为这是一个问题据我所知,问题是缺少tk的DLL文件如果它们是已知的,则可以在执行ocra时将它们包括在内有没有办法知道tk工作所需的DLL依赖项? 最佳答

  6. ruby-on-rails - NameError(未初始化常量 Unzipper::Zip)但仅在 Heroku 部署(Rails)上 - 2

    我有一个类unzipper.rb,它使用Rubyzip解压文件。在我的本地环境中,我可以成功解压缩文件,而无需使用require'zip'明确包含依赖项但是在Heroku上,我得到一个NameError(uninitializedconstantUnzipper::Zip)我只能通过使用明确的require来解决问题:为什么这在H​​eroku环境中是必需的,但在本地主机上却不是?我的印象是Rails自动需要所有gem。app/services/unzipper.rbrequire'zip'#OnlyrequiredforHeroku.Workslocallywithout!class

  7. ruby - Sinatra + Heroku + Datamapper 使用 dm-sqlite-adapter 部署问题 - 2

    出于某种原因,heroku尝试要求dm-sqlite-adapter,即使它应该在这里使用Postgres。请注意,这发生在我打开任何URL时-而不是在gitpush本身期间。我构建了一个默认的Facebook应用程序。gem文件:source:gemcuttergem"foreman"gem"sinatra"gem"mogli"gem"json"gem"httparty"gem"thin"gem"data_mapper"gem"heroku"group:productiondogem"pg"gem"dm-postgres-adapter"endgroup:development,:t

  8. ruby-on-rails - 在服务器上没有互联网访问权限的 Capistrano 部署 - 2

    如何使用Capistrano将Rails应用程序部署到无法访问外部网络或存储库的生产或暂存服务器?我已经设法完成部署的一半,并意识到Capistrano没有在我的本地机器上下载gitrepo,但它首先连接到远程服务器并尝试在那里下载Git存储库。我希望有一个类似Javaee的构建系统,其中创建可交付成果并将该可交付成果发送到服务器。就像您构建.ear文件并将其部署到您想要的任何服务器上一样。显然在RoR中,你被迫(据我所知)在该服务器上构建应用程序,在那里创建一个gem存储库,在那里克隆最新的分支等等。有什么方法可以将准备运行的包发送到远程服务器吗? 最佳答

  9. 从零开始学习Linux运维,成为IT领域翘楚(二) - 2

    文章目录🔥Linux系统目录结构🔥Linux用户和用户组🔥Linux用户管理🔥Linux系统目录结构文件系统组织结构⭐ /lib系统开机所需要最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。⭐ /lost+found一般情况下是空的,当系统非法关机后,这里就存放了一些文件。⭐ /etc所有系统管理所需要的配置文件和子目录my.conf⭐ /usr用户的很多应用程序和文件都放在这个目录下。⭐ /bin是Binary的缩写,这个目录存放着经常使用的命令⭐ /sbin(usr/sbin、/usr/local/sbin)sbin就是peruse

  10. Streampark集成Cloudera Flink、ldap、告警,以及部署常见问题 - 2

    集成背景我们当前集群使用的是ClouderaCDP,Flink版本为ClouderaVersion1.14,整体Flink安装目录以及配置文件结构与社区版本有较大出入。直接根据Streampark官方文档进行部署,将无法配置FlinkHome,以及后续整体Flink任务提交到集群中,因此需要进行针对化适配集成,在满足使用需求上,尽量提供完整的Streampark使用体验。集成步骤版本匹配问题解决首先解决无法识别Cloudera中的FlinkHome问题,根据报错主要明确到的事情是无法读取到Flink版本、lib下面的jar包名称无法匹配。修改对象:修改源码:(解决无法匹配clouderajar

随机推荐