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

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

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

1、准备工作

 云效侧准备工作

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

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

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

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

EDAS侧准备工作

创建集群:

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

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

创建应用:

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

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

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

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

2、云效-注册应用

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

配置代码库

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

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

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

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

配置代码内容

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

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

配置应用

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

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

3、云效-配置环境

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

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

4、IDE-链接代码

克隆阿里云Git库

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

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

导入应用代码

克隆完成后导入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、云效-查看和编辑流水线

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

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

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

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

提交代码

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

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

触发流水线

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

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

部署运行

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

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

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

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

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

上一篇:mysql编译安装错误解决方法


下一篇:点赞收藏:PyTorch常用代码段整理合集