如何高效完成ECS多环境部署?

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

一、背景

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

二、用户诉求

一般来说,用户使用主机部署诉求如下:

1、开发人员不需要关注资源变更,只需要按需选择环境进行部署即可。

2、开发人员能够根据制定好的发布策略,自主发布,不需要手工配置和干预。

3、运维人员不需关注研发平台,只需做好资源的规划管理即可。

三、云效解决方案

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

该场景下主要会涉及开发人员跟运维人员两个角色,下面文章中我们主要会这两个角色角度进行讲解。

四、云效操作实践

前置条件

接下来以一个 Java Spring Boot 的代码库为例,讲解如何通过云效流水线进行阿里云 ECS 的多环境发布。

1、运维人员已购买相应阿里云ECS资源,并配置好相应环境,如本文案例中需要的JDK环境。

2、运维人员,根据需要,对相应ECS资源进行标签配置。标签是云资源的标识,可以帮助您从不同维度对具有相同特征的云资源进行分类、搜索和聚合,让资源管理变得更加轻松。本文中ECS资源及标签设置如图所示:

标签键:environment 标签值:dev、sit、product

 创建流水线

1、进入云效流水线,点击右上角【新建流水线】,进入流水线创建向导页面。

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侧准备相应资源,打上相应环境标签即可,如下图所示。

  1. 运维同学配置完毕后,开发同学不需做任何变更,直接运行相应环境流水线即可。流水线运行过程中,因为我们之前设置的分批,第一批暂停的发布策略,因此流水线会暂停,出现如下状态

  1. 此时点击部署详4. 情按钮,进入部署详情页面,确认没有问题后,点击继续按钮,如下图所示

五、结语

通过以上的操作流程,我们可以通过云效流水线,利用标签功能,拉通开发与运维,同时,让开发和运维关注点分离,专注于核心的工作内容,实现高效的ECS多环境部署。

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术探秘: 360数科夺得ICDAR OCR竞赛世界第一

ICDAR(国际文档分析与识别会议)是OCR识别领域最权威的会议之一。近期,360数科在ICDAR2019-SROIE(Results - ICDAR 2019 Robust Reading Challenge on Scanned Receipts OCR and Information Extraction - Robust Reading Competition) 榜单上…

云原生时代,软件交付有何不同 | 研发效能提升36计

简介:从今天起,我们将开启一个新的专栏:《研发效能提升36计_持续交付篇》。专栏将通过10-20篇文章,系统分享云原生时代,企业如何落地持续交付。 编者按:从今天起,我们将开启一个新的专栏&#…

php 获取字符串完整拼音,PHP 获取中文字符串的首字符拼音字母

class"php"><?php header(Content-Type: text/html; charsetutf-8);$str"阅谁问君诵&#xff0c;水落清香浮";echo getFirstCharCode($str);function getFirstCharCode($str){$str iconv("UTF-8","gb2312", $str);$targetChar*…

IT人的年夜饭,也太香了吧

简介&#xff1a; 平时的IT人&#xff0c;奋战在修复bug前线&#xff0c;起早与贪黑齐飞&#xff0c;调休共假期待定。到了新春佳节&#xff0c;对于IT人来说&#xff0c;没有什么是比一顿年夜饭更让人熨贴肺腑的了。为了让废寝忘食编程序、闻机起早保运维的IT人过一个安稳的好…

小红书消息中间件的运维实践与治理之路

简介&#xff1a;近年来&#xff0c;消息领域的全面云原生化逐渐走向深入&#xff0c;比如 RocketMQ 5.0 版本的存算分离设计和 raft 模式&#xff0c;再比如 Kafka3.0 引入了分层设计的方式&#xff08;tiered storage&#xff09;和 raft 模式&#xff0c;以及近年来新崛起的…

爆测一周,22年必看最细致代码托管工具测评

简介&#xff1a;网上代码托管选型的文章不少&#xff0c;不过大多内容有点久远&#xff0c;很多最新的平台没有包括进来&#xff0c;个人花了大概一个星期的时间&#xff0c;把目前市面上比较火的代码托管平台&#xff08;开源托管平台&#xff1a;Github、Gitee&#xff1b;企…

read 文件一个字节实际会发生多大的磁盘IO?

作者 | 张彦飞allen来源 | 开发内功修炼在日常开发中一些看似司空见惯的问题上&#xff0c;我觉得可能大多数人其实并没有真正理解&#xff0c;或者理解的不够透彻。不信我们来看以下一段简单的读取文件的代码&#xff1a;上图中的代码仅仅只是对某个文件读取了一个字节&#x…

【指标需求思考】如何做好指标类需求建设

简介&#xff1a;大家一直所说的【需求】究竟有哪些&#xff1f;用户需求、业务需求、系统需求...... 但是今天我要给大家介绍一种我自认为一种别出心裁的需求&#xff01;【指标类需求】在庞大的需求体系里&#xff0c;一个完整的系统设计流程是非常必要的&#xff0c;好则效率…

oracle 12c 低版本,oracle高版本迁移数据到低版本(12c至11g)方法

1.12c版本信息&#xff1a;2.11g版本信息&#xff1a;3.查看12c的字符集编码&#xff1a;select userenv(language) from dual;要迁移的两个数据库字符集编码要保持一致。如果不一致请手工修改&#xff0c;修改方法另行百度。4.查看11g数据库字符集编码&#xff1a;5.查看12c数…

构建信创产业生态,移动云立足全栈自主创新连放大招

信创&#xff0c;即信息技术应用创新&#xff0c;它是数据安全、网络安全的基础&#xff0c;也是“新基建”的重要内容。在国际信息安全形势严峻、国家安全需要和数智时代新要求三重因素作用下&#xff0c;信创生态应运而生。进入2022年&#xff0c;云计算将成为信创主要落地方…

游戏行业搜索实践

简介&#xff1a;本文通过游戏行业客户案例带大家了解游戏内容&#xff0c;游戏论坛等场景搜索特性&#xff0c;以及如何通过开放搜索游戏增强版解决方案轻松快速接入,实现高质量搜索效果,提升业务指标和用户体验。 客户背景 国内知名的文化社区和视频平台&#xff0c;其游戏…

序列特征在推荐算法中的应用

简介&#xff1a;行为序列特征在推荐&#xff0c;广告等领域中有着广泛应用&#xff0c;最近几年涌现了很多有关行为序列的研究论文&#xff0c;讲解如何将行为序列应用到实际场景中。但是论文中的实际思想距离落地还有一段距离&#xff0c;因此本文先介绍一些论文中的序列特征…

BlackBerry 软件全球现已部署超过2.15亿辆汽车

BlackBerry近日宣布&#xff0c;据知名独立调研公司Strategy Analytics统计&#xff0c;目前全球已有超过2.15亿辆汽车搭载BlackBerry QNX软件&#xff0c;较2021年增加了2,000万辆。 作为获得安全认证的嵌入式汽车软件市场领导者&#xff0c;BlackBerry深受众多业内汽车制造商…

从托管到原生,MPP架构数据仓库的云原生实践

简介&#xff1a;本文介绍了云原生数据仓库产品AnalyticDB PostgreSQL从Cloud-Hosted到Cloud-Native的演进探索&#xff0c;探讨为了实现真正的资源池化和灵活售卖的底层设计和思考&#xff0c;涵盖内容包括产品的架构设计&#xff0c;关键技术&#xff0c;性能结果&#xff0c…

做到这4点,才是真正的持续交付| 研发效能提升36计

简介&#xff1a;全线专栏《研发效能提升36计_持续交付篇》上线啦&#xff01;本专栏将通过10-20篇文章&#xff0c;系统分享云原生时代&#xff0c;企业如何落地持续交付。本文是该专栏的第2篇。 什么是真正的持续交付&#xff1f; 编者按&#xff1a;全线专栏《研发效能提升…

oracle打patch,Oracle初学者入门指南-How to get Oracle Patch?

Oracle初学者入门指南-How to get Oracle Patch?怎样获得/找到Oracle的Patch&#xff0c;这是一个朋友在Itpub上问到的问题。他还举了一个生动的例子:比如我要使用oracle的全文检索功能&#xff0c;但是这个全文检索在9201里不支持中文&#xff0c;中文的无法检索&#xff0c;…

e签宝:借助钉钉宜搭变革传统项目管理模式,交付效率显著提升

简介&#xff1a;通过钉钉宜搭&#xff0c;e签宝在半个月内搭建了项目交付管理平台&#xff0c;提升了项目管理的效率和质量&#xff0c;推进了团队核心业务的信息化建设。e签宝在有效梳理了各环节的工作进度、质量、成本、职权后&#xff0c;通过宜搭平台保障了内外通畅&#…

24 张图一次性说清楚 TCP

来源 | 杰哥的IT之旅做IT相关的工作&#xff0c;肯定都离不开网络&#xff0c;网络中最重要的协议是TCP。无论是实际工作还是笔试面试&#xff0c;你看哪里能少得了TCP?我看过RFC中与TCP相关的文档&#xff0c;也看过linux中TCP相关的源码&#xff0c;也看过不少框架中的TCP相…

php 实例化模型出错,实例化model出错了

我是按照老师所说的做的。在function user 中写入了这些<?php namespace Home\Controller;use Think\Controller;class IndexController extends Controller {public function index(){//省略了}public function user(){//其实新版的url应该这么写&#xff1a;http://www.t…

作业帮基于 DeltaLake 的数据湖建设实践

简介&#xff1a;作业帮是一家以科技为载体的在线教育公司&#xff0c;其大数据中台作为基础系统中台&#xff0c;主要负责建设公司级数仓&#xff0c;向各个产品线提供面向业务主题的数据信息。本文主要分享了作业帮基于 DeltaLake 的数据湖建设最佳实践。 作者&#xff1a; 刘…