如何通过云效Flow完成自动化部署—主机部署,云效流水线Flow是持续交付的载体,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线过程的持续交付。通过持续向团队提供及时反馈,让交付过程高效顺畅,Flow 提供了通用的部署能力该篇内容注意讲解如何通过云效Flow完成自动化部署—主机部署

新建部署任务

为了创建部署组,需要先在流水线中添加「主机部署」任务。用户可以通过以下方式添加部署任务。
  • 使用模板新建流水线,选择包含 “部署” 任务的模板
  • 在已有的流水线中,添加新的阶段,并选择「部署」任务
流水线模版创建
 
新建流水线时,选择对应的开发语言,可以查看当前语言下的默认流水线模版,选择带有“部署”节点的流水线模版,即可快速使用构建能力 。
 
 
编排流水线,添加部署任务
 
 

一、主机部署

云效Flow 提供了通用的部署能力,支持业务被部署到不同国家,不同云厂商环境还有你的私有环境的主机中。
云效Flow 目前支持部署以下的主机类型:
  • 阿里云ECS

二、主机组

主机组是什么?每个 Web 应用,在集成测试的环境(通常称作日常环境)、预发的环境(称作预发环境)、对外提供服务的环境(称作正式环境)等不同的环境里运行。
 
对应在 Flow 中,我们把这些环境称之为「主机组」,也就是该应用运行在若干台机器(虚拟机/容器)。
 
前置任务
 
可以通过两种方式创建主机组:
 
方法一:通过「主机组管理」添加主机组
 
 
方法二:先在流水线中添加「主机部署」任务。用户可以通过以下方式添加部署任务。
  • 使用模板新建流水线,选择包含 “部署” 任务的模板
  • 在已有的流水线中,添加新的阶段,并选择「主机部署」任务
 
如何使用添加部署任务,可查阅“部署”一节
 
创建主机组
 
在部署任务中,点击「新建主机组」,进入新建主机组的流程。
 
你可以创建三种类型的主机组:
2、部署到阿里云 ECS
 
云效流水线 Flow 支持部署到阿里云 ECS 。你可以按照以下方式,将你的阿里云 ECS 加入主机组,从而让流水线能对其进行部署。
 
创建阿里云 ECS 类型主机组
 
添加方式——直接添加
 
1)新建主机组,选择 【主机类型】为 "阿里云ECS" 。
 
 
2)选择【服务授权】和【地区】,展示【可添加的主机列表】,可【新建服务授权】。
 
 
3) 选择你想要添加至主机组的ECS主机。
 
  
 
4) 编辑主机信息,包括主机组名称、环境、标签;主机组成员权限的配置,创建人默认为企业拥有者;点击保存,即可完成主机组的创建。
 
 
5)至此,你可在流水线中选择使用该主机组了。
 
 
对部署权限的说明,可查看“主机组成员权限”一节
 
添加方式——通过 ECS 标签添加
 
同时,主机组支持通过ECS标签添加,如果您使用 ECS 标签对 ECS 资源进行分类管理,可以直接在 Flow 中建立主机组和 ECS 标签的关联。
 
 
StarAgent
 
为保证部署通道可用性,提高部署成功率,飞流采用了云助手(https://help.aliyun.com/document_detail/64601.html)和Staragent双通道方案,云助手在阿里云ECS会默认安装,在新增和修改部署组的时候,飞流会通过云助手自动安装StarAgent。
 
StarAgent介绍
 
StarAgent是阿里巴巴集团服务器运维基础设施,承载了全集团的服务器交互任务。StarAgent是打造全网通,7*24不间断提供服务,安全可靠,日均亿级调用量,99.995%的系统成功率的命令通道。通过阿里巴巴集团安全团队对StarAgent进行了安全加固。重置帐号密钥,客户端服务端使用不同的加密方式,在服务器上执行的命令进行全量审计等安全策略为命令通道保驾护航。
 
StarAgent基础操作
 
查看状态:/home/staragent/bin/staragentctl status;
启动:/home/staragent/bin/staragentctl restart;
重启:/home/staragent/bin/staragentctl restart;
卸载:
1. /home/staragent/bin/staragentctl stop;
2. rm -rf /home/staragent;
3. rm /usr/sbin/staragent_sn

  

3、部署到公网主机

 
通过在对应主机中添安装 Agent 的方式,云效流水线 Flow支持部署到非阿里云的公网主机(包括其他公有云主机或者可以联通公网的自有主机)。
 
你可以按照以下方式,将你的公网主机加入主机组,从而让 Flow 能对其进行部署。
 
创建自由主机类型主机组
 
1)新建主机组,选择 【主机类型】为 “自有主机”。
 
 
2) 展示【可添加的主机列表】,如果想要添加新的自有主机至【可添加的主机列表】,请复制主机添加指令。
 
 
3) 请打开你需要添加进主机组部署的主机的命令行, 并将前序操作中复制的命令,在你的自有主机上执行(请注意,主机需要能访问公网)。
 
 
4) 主机添加指令执行后,等待1-2分钟后,自有主机会导入【可添加的主机列表】,选择你想要添加至主机组的自有主机。
 
 
5) 编辑主机信息,包括主机组名称、环境、标签;主机组成员权限的配置,创建人默认为企业拥有者;点击保存,即可完成主机组的创建。
 
 
6)至此,你可在流水线中选择使用该主机组了。
 
 
图6. 使用主机组
对部署权限的说明,可查看“流水线成员权限”一节
 

三、部署配置

 
在流水线的部署组件中,需要进行部署配置。本篇文档会给出一个示例,供你参考,如何配置。
 
提前准备
  1. 从示例代码库新建一个SpringBoot代码库:https://code.aliyun.com/code-template/spring-boot。其中包含启动脚本deploy.sh:https://code.aliyun.com/code-template/spring-boot/blob/master/deploy.sh
  2. 在部署机安装Java运行环境
  3. 在流水线构建出制品
为了进行部署,首先需要构建出制品。Flow 中的制品是一个tgz压缩包,在构建任务中可以指定一个或者多个文件(文件夹),Flow 的制品中就会包含这些文件(文件夹)。详情可以参考文档上传到 Flow 的制品库
 
在本例中,需要将target/application.jar和deploy.sh两个文件打包到制品中。因此需要在构建任务中按下面的方式进行配置:
 
 
主机部署配置
 
在主机部署任务中,可以进行部署相关的配置,用于将构建产物在部署机上进行安装。
 
 
下载路径
 
部署配置中的下载路径就是构建物上传步骤产出的压缩包将要被下载到你的主机上的路径,本例中为:/home/admin/app/package.tgz
 
执行用户
 
填写执行部署脚本的用户,如 root,或者 admin 等。本例中为root
 
部署脚本
 
因为实际的部署脚本已经打包到了构建产出的压缩包中,因此部署脚本可以简单的进行解压和执行即可
 
mkdir -p /home/admin/application
tar zxvf /home/admin/app/package.tgz -C /home/admin/application/
sh /home/admin/application/deploy.sh restart

 

四、部署策略

真实的上线过程,如果采用全量发布,会给开发运维团队带来未知的风险,为了减少发布对线上业务的影响, Flow 提供了灰度发布,分批发布能力,最大限度的避免了不稳定发布对用户的影响, 保障业务交付的稳定。
 
主机分批部署
 
如果你一次需要发布多台主机,Flow 支持分批发布,您可在主机部署任务中,可以指定对应的部署策略。假如你有 4 台主机,选择分 2 批发布,则每一批自动发布 2 台主机。
  • 暂停方式
第一批暂停:第一批发布完后,您可先行验证,点击继续后可执行后续发布。
不暂停:每一批发布完后,自动执行后续批次的发布。
每批暂停:每一批发布完后,都需要手动确认继续发布。
  • 分批数量
指定主机分批的数量,指定分批发布的数量,会按照相应的数量进行分批部署。
 
五、查看部署详情
 
流水线配置完成,在流水线运行页面,在“主机部署”任务中,可以点击【部署详情】查看部署过程。
 
 
 
部署详情 部署单会显示当前部署的整体状态和情况。
 
 
 
部署状态
 
部署中:可以执行【终止】操作,及查看日志 暂停中:可以执行【终止】,【继续下一批】操作,及查看部署日志 成功:可以查看部署日志 失败:可以查看部署日志,并在卡片视图上重新发起部署
机器状态
 
待部署:无操作 部署中:可以查看部署日志 成功:可以查看部署日志 失败:可以查看部署日志,并重试单台机器 常见部署问题,可查看“部署常见问题”一节

六、部署历史 和 回滚

用户可在 流水执行记录 —> 部署历史 中,查看到该流水线所有执行的部署历史记录,并可选择其中任意一条历史记录进行回滚操作。
 
Flow 会根据当时运行的部署脚本和构建制品重新执行部署任务,以实现回滚的效果。
 
 
如何通过云效Flow完成自动化部署—主机部署,云效流水线Flow是持续交付的载体,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线过程的持续交付。通过持续向团队提供及时反馈,让交付过程高效顺畅,Flow 提供了通用的部署能力该篇内容注意讲解通过云效Flow完成自动化部署—主机部署。

如何通过云效Flow完成自动化部署—主机部署的更多相关文章

  1. 如何通过云效Flow完成自动化构建—构建集群

    如何通过云效Flow完成自动化构建-构建集群,云效流水线Flow是持续交付的载体,通过构建自动化.集成自动化.验证自动化.部署自动化,完成从开发到上线过程的持续交付.通过持续向团队提供及时反馈,让交付 ...

  2. 如何使用云效Flow做质量检测,保障高质量的交付速度

    使用云效Flow做质量检测,保障高质量的交付速度,云效「Flow」 提供代码扫描. 安全扫描和各种自动化测试能力,支持人工测试卡点.自动化验证卡点等多种质量红线,确保业务质量.云效流水线 Flow 流 ...

  3. 云效Flow如何实现阿里云ECS多环境发布

    一.背景 云效Flow基于标签功能实现阿里云ECS多环境发布,在软件开发和部署过程中,我们的软件往往需要在不同的运行环境中运行,例如:开发人员本地开发环境.测试团队的测试环境.还有类生产环境和生产环境 ...

  4. AspNetCore&云效Flow持续集成

    如今有了越来越多的持续集成工具,给的个人开发者的福利也是很足了,如无必要,自建工具有时只是作为练手了. 众多持续集成工具 现在可用的持续集成工具繁多,各大云服务商都推出了持续集成,甚至是一定条件内都是 ...

  5. 如何在云效流水线 Flow中构建属于自己的NPM仓库

    如何在云效流水线 Flow中构建属于自己的NPM仓库,Flow 通过各种构建组件,对各种语言提供了制品打包能力,让用户可以快速的使用流水线构建制品,并通过后续的部署任务进行部署.Flow 已经完成了与 ...

  6. 基于云原生DevOps服务自动化部署前端项目学习总结

    本文主要以部署前端Vue项目为例,讲述了如何基于云原生DevOps服务自动化部署前端项目~从开发完成到线上环境,我们只需提交代码即可~ 一.引言 作为一名开发人员,日常工作中我们除了需要负责代码的开发 ...

  7. 一站式交付体验:云效+Kubernetes

    背景 云效依托于阿里巴巴研发效能多年规模化持续交付,赋能云上开发者专为云端用户提供的一站式研发协作平台.Kubernetes,由Google开源的容器集群管理平台,面向运维侧提供自动化的集群和应用管理 ...

  8. 高效使用Java构建工具,Maven篇|云效工程师指北

    大家好,我是胡晓宇,目前在云效主要负责Flow流水线编排.任务调度与执行引擎相关的工作. 作为一个有多年Java开发测试工具链开发经验的CRUD专家,使用过所有主流的Java构建工具,对于如何高效使用 ...

  9. 什么是云效持续集成?如何关联Jenkins进行持续集成?

    什么是云效持续集成?如何关联Jenkins进行持续集成?云效流水线 Flow是一款企业级.自动化的研发交付流水线, 提供灵活易用的持续集成.持续验证. 持续发布功能,帮助企业高质量.高效率的交付业务. ...

随机推荐

  1. mongoose报错:DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead

    参考:mongoose报错:DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead mo ...

  2. spring cloud 项目

    ### 项目需求 客户端:针对普通用户,用户登录.用户退出.菜品订购.我的订单. 后台管理系统:针对管理员,管理员登录.管理员退出.添加菜品.查询菜品.修改菜品.删除菜品.订单处理.添加用户.查询用户 ...

  3. datetime和timestamp的区别

    时间日期数据类型总概况 MySQL中有多种表示时间日期的数据类型,主要有YEAR.TIME.DATE.DATETIME.TIMESTAMP等.每一种数据类型都有存储的时间日期格式.以及取值范围,因此在 ...

  4. 使用Hugo和GitHub搭建博客

    折腾了几天博客的框架终于搭建起来了.研究了一番之后,最终还是选择使用Hugo和GitHub来搭建博客.本文介绍了如何使用Hugo来搭建静态博客网站,并将其部署在GitHub上.使用https://&l ...

  5. ORB_SLAM2 闭环检测段错误

    问题描述: Ubuntu14.04运行正常.Ubuntu 16.04下运行时,检测到闭环后有时会段错误,定位发现断错误出现在CorrectLoop()的红色代码处 void LoopClosing:: ...

  6. WIN7下安装Python3.7和labelImg-1.7.0

    安装python3.7 官方https://www.python.org/downloads/windows/,下载windows 64bit python3.7版本 用Administrator权限 ...

  7. SQL查询语句执行流程

    msyql执行流程 你有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时:: select * from T where ID=10: 我们看到的只是输入一条语句,返回一个结果,却不知 ...

  8. golang GC 垃圾回收机制

    垃圾回收(Garbage Collection,简称GC)是编程语言中提供的自动的内存管理机制,自动释放不需要的对象,让出存储器资源,无需程序员手动执行. Golang中的垃圾回收主要应用三色标记法, ...

  9. 华为分析X HUAWEI Ads,上线深度转化事件回传功能,让ROI 看得见!

    华为分析X HUAWEI Ads,上线深度转化事件回传功能,让ROI 看得见! 随着移动应用生态的流量成本攀升.行业竞争加剧,越来越多的广告商希望通过精准投放来获取更高质量的深度转化用户,比如二手车. ...

  10. scikit-learn 1.0 版本新特性及变动前瞻性预览

    1 简介 就在几天前,著名的机器学习框架scikit-learn在pypi上释放了其1.0rc1版本,这里给大家科普一下,版本号中的rc是Release Candidate的简称,代表当前的版本是一个 ...