云效和 EDAS 在 DevOps 开发实践中的联合应用

在之前的文章《使用 Spring Tool Suite 快速开发 EDAS HSF 服务》中说到了如何快速开发运行在EDAS上的服务化应用,本文接着说说如何使用云效再加速应用的研发。

云效是一个一站式的研发效能工具,提供了从“计划->需求->开发->构建->测试->部署->运营”一体化的协同服务和研发支撑。使用云效可以对应用进行快速迭代研发,满足DevOps的最佳实践。下面就按步骤看看云效是如何加速EDAS HSF服务的开发的。

1、准备工作

 云效侧准备工作

假设阿里云管理员已经创建子账号和企业,这些步骤可以参考云效用户手册。我们从创建项目开始,访问https://rdc.aliyun.com/project开始创建项目,这里需要选择研发项目,这样可以配置代码库,业务空间类型则只是用来做项目管理。

新建项目

进入项目之后,通过设置 > 成员将团队成员加入到项目中,这样团队成员在登陆后能在自己的项目列表中看到相应的项目,就能协同开发应用了。

编辑团队成员

EDAS侧准备工作

创建集群:

在阿里云控制台 > 企业级分布式应用服务 > 资源管理 > 集群里面可以创建集群,本文使用的是Swarm类型的容器集群,也可以选择ECS集群,但是不能选择Kubernetes类型的容器集群,因为目前云效还不支持与Kubernetes类型的容器集群对接,无法将构建产物自动部署过去。

创建集群

创建应用:

在应用管理中创建一个新的应用,应用运行环境可以选择最新版本的EDAS-Container 3.3.9。

创建应用

创建完应用后,记下应用ID,在对接云效的时候需要用到。

EDAS应用ID

2、云效-注册应用

在项目中,通过应用 > 注册应用来新建应用,一个项目中可以包含多个应用。

配置代码库

Git库:注册应用的时候需要绑定Git库,如果已经有Git库了,使用关联已有来关联,新建的话云效会在阿里云GitLab(code.aliyun.com)上创建一个新的Git代码库。这里需要注意的是,阿里云GitLab使用单独的用户管理,在GitLab上需要把之前准备工作步骤中的团队成员再加入进来,通过GitLab > Project > Members > Add new user to project来配置。Master权限可以提交代码到master,Developer权限则只能提交代码到branch。

GitLab用户管理

分支模式:自由模式通常是对master进行主干开发,使用master来开发、集成和部署发布。master上的任何变化,会触发流水线执行构建、部署等连续操作。分支模式则是对特性分支进行开发。这里采用自由模式,直接对master进行开发、集成和发布,以便更直观的看到云效流水线带来的效果。

注册应用

配置代码内容

这个步骤事实上为了生成release文件,release文件控制的是程序类型、开发语言及版本,本文的示例使用的是Java 1.7,初始化模板是Spring Boot。产物路径是灰掉不可更改的,之后可以在Git库里直接修改release文件。

配置代码内容

配置应用

最后一步是配置应用,因为是要将应用部署到EDAS的容器集群中,因此这里选择部署方式为EDAS部署。

配置应用

3、云效-配置环境

在注册应用完成后,进入应用 > 环境可以看到当前应用对应的环境列表,云效在注册应用时自动创建了测试环境(日常环境)、生产环境(预发环境、正式环境)三个配置,本文示例只对测试环境进行配置,以便链接到EDAS集群。进入日常环境 > 部署配置,选择部署方式为EDAS部署,EDAS应用ID就是之前在准备工作步骤中记下的应用的ID。

配置环境

4、IDE-链接代码

克隆阿里云Git库

在Spring Tool Suite(STS)中克隆阿里云GitLab上的代码库,URI可以在code.aliyun.com对应的Git库里复制到,用户认证则使用GitLab中配置的用户名和密码(务必注意不是子账号)。

Clone Git

导入应用代码

克隆完成后导入Git库里的项目,也就是云效自动创建的模板应用,导入后,将《使用 Spring Tool Suite 快速开发 EDAS HSF 服务》里创建的HSF服务应用手工Merge进来。

编辑release文件

注册应用时,云效自动生成了release文件,在项目里我们需要确认这里的配置是否正确,需要注意以下两个配置项。

# 构建打包使用的打包文件
build.output=target/SimpleStore-0.0.1-SNAPSHOT.jar

# 该配置项会避免云效对build.output中的产物再进行压缩(EDAS部署需要此配置项)
build.output.nottgz=True

5、云效-查看和编辑流水线

注册应用后,云效会自动创建一条默认的流水线,包含了构建 > 部署到测试环境 > 部署到预发环境 > 部署到正式环境这几个步骤,本文只有测试环境,因此需要编辑流水线来删除部署到预发环境和部署到正式环境这两个阶段。当然在编辑流水线页面上,也可以加入新的阶段和每个阶段的任务,以及配置监听、流转条件(手动和自动)等,编辑页面如下图所示。

编辑流水线

DevOps实践中的研发、持续集成、自动化测试、持续部署和发布都可以在流水线中自动化流转,可以说流水线在真正意义上实现了DevOps过程的一体化,体现了敏捷、高效的精神。

6、IDE-提交代码,云效-触发流水线,EDAS-部署运行

提交代码

所有步骤完成之后,可以在本地IDE中提交代码,提交成功后,可以在阿里云GitLab的Commits记录里看到提交的记录,本例子里,将Ping页面加了个字符串,以便直观的体验应用更新的变化。

commits change

触发流水线

云效在监听到代码改变后,会自动触发流水线进行构建,在本示例中跳过了测试阶段,真正实用角度来说,任何应用需要测试通过后,才可以被发布。下图是流水线执行成功的示意图,注意看到Commit号与之前Git库的变化历史是一致对应的。

触发流水线

部署运行

流水线成功执行后,可以到阿里云的控制台中查看EDAS的运行情况,在变更记录中记录了流水线执行部署的事件。

EDAS变更记录

通过浏览器检查Ping页面,发现应用已经被成功更新,如下图所示:

更新页面

本文通过一个简单的EDAS HSF服务应用开发,介绍了云效和EDAS容器集群在实际研发过程中的结合使用方法。这两者的结合极大程度的提高了应用研发的敏捷性,真正实现了DevOps的持续集成、持续部署发布的理念。当然也希望公有云云效能提供更多、更完善的支持,例如EDAS Kubernetes集群的部署,更多的编译构建器等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值