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

本文涉及的产品
云效 DevOps 流水线,基础版人数 不受限
云效 DevOps 项目协作,基础版人数 不受限
云效 DevOps 测试管理,基础版人数 不受限
简介: 在之前的文章《使用 Spring Tool Suite 快速开发 EDAS HSF 服务》中说到了如何快速开发运行在EDAS上的服务化应用,本文接着说说如何使用云效再加速应用的研发。 云效是一个一站式的研发效能工具,提供了从“计划->需求->开发->构建->测试->部署->运营”一体化的协同服务和研发支撑。使用云效可以对应用进行快速迭代

在之前的文章《使用 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集群的部署,更多的编译构建器等等。

相关实践学习
通过EDAS实现K8s微服务应用的金丝雀发布
本实验旨在通过使用分布式应用服务EDAS纳管容器服务ACK Serverless,体验微服务应用的部署、访问和高级发布能力。
SpringMVC框架入门
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts2等。 相关的阿里云产品企业级分布式应用服务 EDAS:企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Spring Cloud、Apache Dubbo(以下简称 Dubbo )等微服务运行环境,助力您的各类应用轻松上云。产品详情: https://www.aliyun.com/product/edas 
目录
相关文章
|
4月前
|
Devops jenkins 持续交付
DevOps实践:构建和部署一个Docker化的应用
【9月更文挑战第14天】在当今快节奏的软件开发领域,DevOps已经成为提升效率、加速交付的关键。本文将引导你理解DevOps的核心概念,并通过一个实际的示例—构建和部署一个Docker化的应用—来深入探讨其实践方法。我们将从简单的应用出发,逐步实现Docker容器化,并最终通过CI/CD流水线自动化部署过程。这不仅是对DevOps流程的一次实操演练,也是对现代软件开发理念的一次深刻体验。
|
4月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
241 3
|
4月前
|
存储 网络安全 开发工具
快速认识和上手云效代码管理应用
要体验云效代码托管Codeup的本地命令行操作和SSH克隆/提交,请先安装Git并配置SSH公钥。登录Codeup后,新建代码库并设置相关信息。可从其他平台导入代码。提交代码支持网页和本地客户端两种方式。库管理员可邀请成员协作,并按需设置角色。此外,Codeup内置代码检测服务,支持自动触发扫描。功能开发完成后,可通过合并请求进行代码评审,确保编码质量。
131 1
|
5月前
|
Prometheus 运维 监控
Grafana 在 DevOps 中的应用
【8月更文第29天】Grafana 是一个开源的数据可视化平台,它可以连接到多种数据源,从简单的指标到复杂的查询,都能轻松创建出漂亮的图形化仪表板。在 DevOps 领域,Grafana 被广泛应用于性能监控、故障排查、服务可用性监控等方面。本文将详细介绍 Grafana 如何支持 DevOps 团队的工作,并提供一些具体的使用案例和代码示例。
52 1
|
5月前
|
运维 监控 安全
构建高效自动化运维系统:DevOps在企业级应用的实现路径
【7月更文挑战第54天】在当今IT领域,DevOps作为一种文化和实践,旨在弥合开发与运维之间的鸿沟,以实现更快速、更可靠的产品交付。本文将深入探讨在企业环境中如何构建一个高效的自动化运维系统,不仅涵盖理论框架,还包括具体实施步骤和最佳实践。通过持续集成(CI)、持续部署(CD)、基础设施即代码(IaC)等关键概念的融合运用,文章旨在为读者提供一个清晰的指导,以便在其组织中落实DevOps策略,并实现运维效率的显著提升。
|
5月前
|
缓存 运维 前端开发
阿里云云效操作报错合集之如何解决在使用流水线构建net8应用时遇到无法构建的报错
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
5月前
|
运维 Devops 持续交付
DevOps实践之路:从理论到企业级应用
在数字化浪潮中,DevOps作为一种提升软件开发和运维效率的方法论,正被越来越多的企业采纳。本文通过探讨DevOps的核心理念、关键实践以及在不同规模企业中的应用案例,旨在为读者提供一条清晰的DevOps实践之路。无论你是初涉这一领域的新手,还是寻求进阶的资深人士,这篇文章都将为你打开一扇洞悉DevOps精髓的大门。
108 2
|
5月前
|
Kubernetes Devops 测试技术
DevOps实践:持续集成和持续部署(CI/CD)在现代企业中的应用
随着软件开发行业的迅猛发展,DevOps文化及其核心实践—持续集成(Continuous Integration, CI)与持续部署(Continuous Deployment, CD)—已成为提升软件交付速度和质量的关键策略。本文将深入探讨CI/CD的理论基础,并结合真实案例分析其在现代企业中的实际应用效果,旨在为读者提供一套可行的实施指南。
|
5月前
|
敏捷开发 运维 监控
DevOps 在敏捷开发中的应用
【8月更文第30天】随着软件开发行业对快速迭代和持续交付的需求不断增加,敏捷开发方法论已经成为标准实践。DevOps 作为一种文化理念和技术实践的结合,强调开发与运维团队之间的紧密协作,以提高软件产品的质量和交付速度。本文将探讨 DevOps 如何支持敏捷开发流程,并通过具体的代码示例来展示其在迭代发布和反馈循环中的应用。
242 0
|
6月前
|
运维 监控 安全
DevOps实践:从理论到企业级应用的转化之路
【7月更文挑战第21天】在数字化转型的大潮中,DevOps作为一种提升软件开发与运维效率的方法论,正逐步成为企业IT战略的核心。本文将从DevOps的基本概念出发,深入探讨其在企业级应用中的实践路径,包括文化理念转变、工具链的选择与集成、持续交付的实施步骤以及监控与反馈机制的建立。通过分析成功案例,旨在为读者提供一条清晰的DevOps转型路线图,帮助技术团队和运维人员理解并实施DevOps,以实现快速迭代和高效运营的目标。

热门文章

最新文章