一、背景

云效Flow基于标签功能实现阿里云ECS多环境发布,在软件开发和部署过程中,我们的软件往往需要在不同的运行环境中运行,例如:开发人员本地开发环境、测试团队的测试环境、还有类生产环境和生产环境。在整个研发流程的过程中,针对开发和运维,前者面向需求和代码,后者面向资源和环境,而部署,是两者都会关注的部分。通过本文,你可以了解到,如何通过云效流水线有效拉通开发与运维,打破二者之间的壁垒墙,让开发与运维高效联动。
 
 

二、用户诉求

 
一般来说,用户使用主机部署诉求如下:
 
1、开发人员不需要关注资源变更,只需要按需选择环境进行部署即可。
 
2、开发人员能够根据制定好的发布策略,自主发布,不需要手工配置和干预。
 
3、运维人员不需关注研发平台,只需做好资源的规划管理即可。
 
该场景下主要会涉及开发人员跟运维人员两个角色,下面文章中我们主要会这两个角色角度进行讲解。
 

三、云效解决方案

 
结合云效交付流水线发布策略及ECS的标签功能,为ECS的多环境发布提供了很好的基础保障,如图:
 
 

四、云效操作实践

 

前置条件

接下来以一个 Java Spring Boot 的代码库为例,讲解如何通过云效流水线进行阿里云 ECS 的多环境发布。
 
1、运维人员已购买相应阿里云ECS资源,并配置好相应环境,如本文案例中需要的JDK环境。
 
2、运维人员,根据需要,对相应ECS资源进行标签配置。标签是云资源的标识,可以帮助您从不同维度对具有相同特征的云资源进行分类、搜索和聚合,让资源管理变得更加轻松。本文中ECS资源及标签设置如图所示:
 
标签键: environment 标签值:dev、sit、product
 
 

创建流水线

 
1、进入云效流水线,点击右上角【新建流水线】,进入流水线创建向导页面。
 
说明 立即体验:云效流水线Flow
 
2、选择图中标识模板,并点击创建
 
 
配置代码库
 
1. 创建流水线之后会自动弹出添加代码源的窗口,这里选择Flow提供的示例代码源,并进行添加
 
配置构建上传任务
 
修改一下”Java构建上传“的任务,增加一个打包路径,填入deploy.sh。这个文件存在于代码库中,其中包含了在ECS上进行应用启动的脚本,为了进行后续的主机部署,需要将这个文件也打入到压缩包中,在后续的主机部署任务中可以看到如何使用该deploy.sh。在该配置中指定了target/和deploy.sh两个路径,所以Flow会将这两个文件(夹)打包成为一个压缩包,并进行归档,在Flow中我们称之为制品,该制品也会在后续的主机部署任务中用到。
 
 
配置部署任务
 
1、接下来配置主机部署任务,在制品下拉框中选择”制品名称.default”,也就是前面的”Java构建上传“步骤归档的那个制品。为了配置主机组,需要先创建一个,点击”新建主机组”。
 
 
2、选择”阿里云ECS“,点击”新建服务授权”,跳转到阿里云,完成RAM授权,然后会自动跳回到Flow。
 

 
3、此时再选择标签方式添加,依次选择地区、ECS标签键、ECS标签值,点击下一步。
 

4、在新弹出的页面中输入主机组名称及主机组环境,点击保存即可。
 
5、接下来进行部署脚本的配置:
 
· 下载路径:表示希望把”构建上传”任务中的压缩包下载到机器上的什么位置,在本例的值为:/home/admin/app/package.tgz
 
· 执行用户:希望以是哪个用户的身份进行脚本执行,本例的值为:root
 
· 部署脚本:在机器上执行脚本的具体内容,本例的值为:
 
mkdir -p/home/admin/application/tar zxvf /home/admin/app/package.tgz -C/home/admin/application/sh /home/admin/application/deploy.sh restart
 
 
6、部署策略配置
 
· 暂停方式:希望一个主机组中的机器以什么样的暂停方式进行,比如第一批暂停,每批暂停,或者不暂停。推荐使用第一批暂停,在发布完第一批之后,对线上服务进行观察,如果没有异常,则可以继续其余批的发布
 
· 分批数量:希望主机组中的机器分为几批进行发布。比如一共4台机器,分两批,则每批同时发布2台机器。
 
本文中配置如下所示:
 
7、部署结果查看
 
· 点击右上角保存并执行按钮
 
 
· 待执行完毕后,点击部署详情按钮查看部署明细。

· 通过IP:8080访问验证,如下图所示:
 

资源变更场景

1. 因业务需要,需在开发环境中增加一台机器,运维同学只需在ECS侧准备相应资源,打上相应环境标签即可,如下图所示。
 
 
2. 运维同学配置完毕后,开发同学不需做任何变更,直接运行相应环境流水线即可。流水线运行过程中,因为我们之前设置的分批,第一批暂停的发布策略,因此流水线会暂停,出现如下状态
 
 
3. 此时点击部署详情按钮,进入部署详情页面,确认没有问题后,点击继续按钮,如下图所示
 
 

五、结语

 
云效Flow基于标签功能实现阿里云ECS多环境发布,在软件开发和部署过程中,我们的软件往往需要在不同的运行环境中运行,通过以上的操作流程,我们可以通过云效流水线,利用标签功能,拉通开发与运维,同时,让开发和运维关注点分离,专注于核心的工作内容,实现ECS的多环境部署。
 
欢迎体验、试用云原生时代新DevOps平台阿里云云效

云效Flow如何实现阿里云ECS多环境发布的更多相关文章

  1. 如何通过云效Flow完成自动化部署—主机部署

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

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

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

  3. 云服务器ECS优惠券 阿里云 ecs 5折优惠码 阿里云5折优惠码 阿里云5折推荐码 阿里云优惠码 阿里云的5折优惠券 阿里云服务器购买优惠码 服务器购买优惠码

    阿里云代金券 | 阿里云优惠券云服务器ECS,就是阿里云服务器,大家一定要清楚.云服务器ECS优惠券官方领取优惠页面:https://promotion.aliyun.com/ntms/act/amb ...

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

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

  5. 【阿里云产品公测】阿里云ACE部署通用完整教程及评测

    [阿里云产品公测]阿里云ACE部署通用完整教程及评测 作者:阿里云用户bailimei ACE应该是目前在公测的服务中应用最广泛的一项服务.在公测云引擎ACE前曾使用过新浪SAE,而ACE给我的最初印 ...

  6. 不服跑个分:ARM鲲鹏云服务器实战评测——华为云鲲鹏KC1实例 vs. 阿里云G5实例【华为云技术分享】

    原文链接:https://m.ithome.com/html/444828.htm 今年一月份,华为正式发布了鲲鹏920数据中心高性能处理器,该处理器兼容ARM架构,采用7纳米制造,最高支持64核,主 ...

  7. [转帖]华为鲲鹏云服务器实战:华为云鲲鹏KC1实例 vs. 阿里云G5实例

    鲲鹏云服务器实战:华为云鲲鹏KC1实例 vs. 阿里云G5实例 https://m.ithome.com/html/444828.htm 2019-09-12 15:25IT之家 (阿迷) 今年一月份 ...

  8. 【阿里云产品公测】阿里云ACE配置全程图解,详细到不行!

    作者:阿里云用户sofia 看过阿里云社区的其他技术大姥们的评测教程,感觉还是不够详细,对于一个第一次接触ace.新浪sae这类的应用来说还是比较陌生的.我最喜欢写教程了,不过我有我的风格,那就是简单 ...

  9. 【转载】ASP.NET网站选购阿里云服务器的时候,阿里云账号个人认证以及企业认证有何不同

    在采购阿里云产品,如阿里云云服务器.阿里云短信包.阿里云数据库MySql以及Sqlserver.阿里云对象存储OSS等云产品的时候,如果账号未进行实名认证,很多时候会要求实名认证操作,在实名认证时可选 ...

随机推荐

  1. Fastjson 1.2.22-24 反序列化漏洞分析(2)

    Fastjson 1.2.22-24 反序列化漏洞分析(2) 1.环境搭建 我们以ubuntu作为被攻击的服务器,本机电脑作为攻击者 本机地址:192.168.202.1 ubuntu地址:192.1 ...

  2. go build 与go install

    相同点都能生成可执行文件 不同点go build 不能生成包文件, go install 可以生成包文件go build 生成可执行文件在当前目录下, go install 生成可执行文件在bin目录 ...

  3. Linux的bg和fg和jobs和nohup命令简单介绍

    我们都知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务.而不能让程序在前台后台之间切换.而 Linux 提供了 fg 和 bg 命令,让我们轻松调度正在运行的 ...

  4. SQL注入与burPsuit工具介绍

    sql注入原理 原理:用户输入不可控,用户输入导致了sql语义发生了改变 用户输入不可控:网站不能控制普通用户的输入 sql语义发生变化: 动态网页介绍: 网站数据请求 脚本语言:解释类语言,如,后端 ...

  5. 个人作业——CVPR顶会论文爬取

    main.py #保存单个界面数据 def getInfo(url): # url='https://openaccess.thecvf.com/WACV2021' header={ 'User-Ag ...

  6. js判断苹果端,安卓端

    <script type="text/javascript"> var browser = { versions : function() { var u = navi ...

  7. 【TP3.2.3】根据字段统计条数

    // 省份查询 $province = M('hospital') -> field('area as label,count(*) as value') -> group('area') ...

  8. P3235-[HNOI2014]江南乐【整除分块,SG函数】

    正题 题目链接:https://www.luogu.com.cn/problem/P3235 题目大意 \(T\)组游戏,固定给出\(F\).每组游戏有\(n\)个石头,每次操作的人可以选择一个数量不 ...

  9. 华为云计算IE面试笔记-请描述华为容灾解决方案全景图,并解释双活数据中心需要从哪些角度着手考虑双活设计

    容灾全景图: 按照距离划分:分为本地容灾 同城容灾 异地容灾  本地容灾包括本地高可用和本地主备.(本数据中心的两机房.机柜) 本地高可用这个方案为了保持业务的连续性,从两个层面来考虑: ①一个是从主 ...

  10. 初探计算机网络之TCP/IP网络协议

    网络协议 ​ 在计算机诞生以来,从最原始的单机模式到现在多台计算机协同工作,形成计算机网络,从前很难想象的信息共享.多机合作.大规模计算在今天也早已成了现实.在早期,计算机网络需要解决的痛点,就是怎样 ...