一、背景
在软件开发和部署过程中,咱们的软件往往须要在不同的运行环境中运行,例如:开发人员本地开发环境、测试团队的测试环境、还有类生产环境和生产环境。在整个研发流程的过程中,针对开发和运维,前者面向需要和代码,后者面向资源和环境,而部署,是两者都会关注的局部。通过本文,你能够理解到,如何通过云效流水线无效拉通开发与运维,突破二者之间的壁垒墙,让开发与运维高效联动。
二、用户诉求
一般来说,用户应用主机部署诉求如下:
1、开发人员不须要关注资源变更,只须要按需抉择环境进行部署即可。
2、开发人员可能依据制订好的公布策略,自主公布,不须要手工配置和干涉。
3、运维人员不需关注研发平台,只需做好资源的布局治理即可。
三、云效解决方案
联合云效交付流水线公布策略及 ECS 的标签性能,为 ECS 的多环境公布提供了很好的根底保障,如图:
该场景下次要会波及开发人员跟运维人员两个角色,上面文章中咱们次要会这两个角色角度进行解说。
四、云效操作实际
前置条件
接下来以一个 Java Spring Boot 的代码库为例,解说如何通过云效流水线进行阿里云 ECS 的多环境公布。
1、运维人员已购买相应阿里云 ECS 资源,并配置好相应环境,如本文案例中须要的 JDK 环境。
2、运维人员,依据须要,对相应 ECS 资源进行标签配置。标签是云资源的标识,能够帮忙您从不同维度对具备雷同特色的云资源进行分类、搜寻和聚合,让资源管理变得更加轻松。本文中 ECS 资源及标签设置如图所示:
标签键:environment 标签值:dev、sit、product
创立流水线
1、进入云效流水线,点击右上角【新建流水线】,进入流水线创立向导页面。
2、抉择图中标识模板,并点击创立
配置代码库
- 创立流水线之后会自动弹出增加代码源的窗口,这里抉择 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 拜访验证,如下图所示:
资源变更场景
- 因业务须要,需在开发环境中减少一台机器,运维同学只需在 ECS 侧筹备相应资源,打上相应环境标签即可,如下图所示。
- 运维同学配置结束后,开发同学不需做任何变更,间接运行相应环境流水线即可。流水线运行过程中,因为咱们之前设置的分批,第一批暂停的公布策略,因而流水线会暂停,呈现如下状态
- 此时点击部署详 4. 情按钮,进入部署详情页面,确认没有问题后,点击持续按钮,如下图所示
五、结语
通过以上的操作流程,咱们能够通过云效流水线,利用标签性能,拉通开发与运维,同时,让开发和运维关注点拆散,专一于外围的工作内容,实现高效的 ECS 多环境部署。
点击下方立刻体验云效流水线 Flow!
https://www.aliyun.com/produc…
对于咱们
理解更多对于云效 DevOps 的最新动静,可微信搜寻关注【云效】公众号;
福利:公众号后盾回复【指南】,可取得《阿里巴巴 DevOps 实际指南》&《10 倍研发效力晋升案例集》;
看完感觉对您有所帮忙别忘记点赞、珍藏和关注呦;