3分钟,480条流水线,云效DevOps全家桶再为差旅壹号节省6台服务器!

简介: 3分钟,480条流水线,云效DevOps全家桶再为差旅壹号节省6台服务器!差旅壹号作为一站式企业消费管理平台品牌,涵盖了一站式企业商旅管理、一站式企业出行管理、一站式企业用餐管理、一站式企业福利管理平台。服务着30余家央企全集团,100余家国企全集集团,超过1000家上市公司和大型集团型公司。但随着业务规模和服务企业数量的持续增长,客户的需求逐渐变得多样化、复杂化,差旅壹号为了快速迭代,响应客户的诉求,开始寻寻找更高效的解决方案。

编者按:元叹,12年加入差旅壹号,拥有多年技术管理及架构经验,差旅壹号技术委员会成员,曾负责过多个核心产品架构,致力于研发质量与效能提升。


背景


差旅壹号作为一站式企业消费管理平台品牌,涵盖了一站式企业商旅管理、一站式企业出行管理、一站式企业用餐管理、一站式企业福利管理平台。服务着30余家央企全集团,100余家国企全集集团,超过1000家上市公司和大型集团型公司。但随着业务规模和服务企业数量的持续增长,客户的需求逐渐变得多样化、复杂化,差旅壹号为了快速迭代,响应客户的诉求,开始寻寻找更高效的解决方案。


问题及痛点


差旅壹号采用微服务架构,共200多个服务,双机房容灾部署,灰度发布。使用SVN管理代码分支、jekins管理编译构建任务、kubernates管理容器。随着公司规模不断壮大,发布效率方面出现挑战。具体问题如下:


  • 为了适用互联网快速迭代,需要经常发布,存在工作量大,投产耗时长等问题;
  • jekins集成代码检测安全检测无线上结果,修复检查效率低;


解决效果


480条流水线,平均发布耗时3分钟/次,平均每月构建6000分钟,稳定运行1年;


发布效率方面:发布效率提升70%;


成本方面:节约jenkins等日常维护成本,及相关服务器6台;


那是怎么做到的呢?


1、结合公司情况及云效功能支持设计合适的流水线


流水线大致可分为4步:拉取分支代码、代码扫描、代码编译、镜像构建并上传仓库、部署。结合企业实际情况可增加:集成sonarqube、集成自动化接口测试。


差旅壹号环境分研发集成环境、预发布环境、灰度发布环境、全量发布环境。研发集成环境,快速集成,快速测试,不设人工干预卡点;预发布环境,必须经过研发集成环境的充分测试,测试无问题方可发布;灰度发布环境,预发布环境验证通过,部署灰度发布环境,切换少量用户运营验证;全量发布环境,灰度发布环境验证通过,部署全量发布环境,切换所有用户到最新版本。


结合实际情况,差旅壹号流水线设计如下:将研发集成环境独立成一条流水线(内网流水线),预发布环境、灰度发布环境、全量发布环境设置为1条流水线(外网流水线)。内网流水线,效率优先。代码提交后自动触发流水线,经过代码规范扫描、安全扫描后,直接编译构建和部署。代码扫描只扫描出结果,不设红线,在发布外网前解决即可。

88.png

外网流水线,质量稳定优先。内网测试通过后,人工触发流水线,首先通过代码规范检测和代码安全检测红线。其次增加人工卡点,对发布做审核,确保内网已经测试通过满足发布条件。审核通过后发布预发布环境,发布后经过测试、产品验证后即可发布灰度环境,灰度环境运行稳定后即可发布全量环境。


在上线之初代码规范和代码安全可优先解决严重和高危级别问题,中危、一般问题可后续一次或按增量解决。

99.png

2、建立模板,统一规则,降低维护成本


测试流水线建立测试成功后,建立流水线模板,规范流水线的创建,并节约创建成本。(流水线模板可直接从已有流水线另存为流水线模板也可新建)


1.png

3、建立流水线,控制权限,保障流水线按指定流程执行


通过模板建立服务流水线(或复制已有流水线),给相应人员开通流水线对应权限:所有权限、运行权限、查看权限。


2.png

4、设置流水线分组、标签快速查询筛选


公司可能拥有多条产品线或多个研发团队,每个团队负责内容不同。为避免相互影响,可通过流水线的分组和标签进行区分。差旅壹号产品线分机票、酒店、大交通、用餐等,分组按产品线区分,产品线内不同模块以标签区分。

3.png


5、流水线改进


流水线运行一段时间后,差旅壹号做了部分改进,如将线上配置文件修改纳入流水线管控,通过流水线发布;集成python自动化接口测试,部署后,自动触发python自动化测试脚本并产生测试报告;集成SonarQube,加强代码安全扫描。


结语


云效是一款非常不错的产品,它与阿里云产品深度融合、功能丰富、配置简单,并一直在不断地优化和完善。企业能够基于流水线提供的能力快速且低成本地搭建一套适合自己的流水线。差旅壹号也借助云效,实现了企业产品快速创新迭代和研发效能升级。感谢云效产品的赋能以及实施过程中云效同事的支持。以上内容只是差旅壹号在实施后的一些拙见,希望能给各位同行带来一点帮助。5.png


点我立即体验云效DevOps全家桶!



感谢元叹对云效的信任和肯定,希望云效可以陪伴他们不断进步。
如果你也有故事要分享,扫描下方二维码进群分享你的故事,后台提交给我们。

38AA7D9E-02D8-4e99-B63C-C82F887BD4A9.png


相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
SVN版本控制系统
SVN是现在软件开发之中的主流软件版本控制工具,在工作之中利用SVN可以有效的解决多人开发的代码管理问题,本课程将为读者讲解SVN服务器的配置以及基于MyEclipse的SVN客户端插件的配置与使用,并且在讲解之中着重讲解了冲突的产生于解决。
相关文章
|
4月前
|
弹性计算 运维 Serverless
项目管理和持续集成系统搭建问题之云效流水线支持阿里云产品的企业用户如何解决
项目管理和持续集成系统搭建问题之云效流水线支持阿里云产品的企业用户如何解决
83 1
项目管理和持续集成系统搭建问题之云效流水线支持阿里云产品的企业用户如何解决
|
20天前
|
运维 Devops 持续交付
自动化运维的魔法:打造高效DevOps流水线
【10月更文挑战第34天】在数字化时代的浪潮中,DevOps成为企业追求敏捷、高效和稳定的关键。本文将通过一个真实案例,展示如何构建一个高效的DevOps流水线,实现从代码提交到部署的全自动化流程。我们将探讨流水线设计的哲学、工具选择以及面临的挑战,并分享实际的代码示例和操作步骤,帮助读者理解自动化运维的精髓。
35 2
|
4月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何限制在本地的构建主机创建的流水线的并发数
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2月前
|
运维 监控 Devops
自动化运维的魔法:打造高效DevOps流水线
【10月更文挑战第6天】 在现代软件开发的快节奏中,自动化运维成为提高效率、保障质量的重要手段。本文将带你了解如何构建高效的DevOps流水线,从持续集成到部署,再到监控和反馈,我们将一步步揭开自动化运维的神秘面纱。你将学习到如何通过代码和工具的结合,实现软件交付过程的自动化,以及如何通过这一流程提升团队的协作和响应速度。让我们开始探索自动化运维的奇妙之旅吧!
|
3月前
|
运维 Devops jenkins
自动化运维:打造高效DevOps流水线
【8月更文挑战第44天】本文将通过深入浅出的方式,带你构建一个自动化的DevOps流水线,提升开发和部署效率。从基础概念到实际操作,我们一步步剖析如何实现代码提交、自动测试、构建、部署的全过程自动化。你将学会使用Jenkins、Git、Docker等工具,并结合Shell脚本编写,完成一个完整的自动化流程。文章末尾附有完整的示例代码,助你快速上手实践。
|
4月前
|
Java Spring 传感器
AI 浪潮席卷,Spring 框架配置文件管理与环境感知,为软件稳定护航,你还在等什么?
【8月更文挑战第31天】在软件开发中,配置文件管理至关重要。Spring框架提供强大支持,便于应对不同环境需求,如电商项目的开发、测试与生产环境。它支持多种格式的配置文件(如properties和YAML),并能根据环境加载不同配置,如数据库连接信息。通过`@Profile`注解可指定特定环境下的配置生效,同时支持通过命令行参数或环境变量覆盖配置值,确保应用稳定性和可靠性。
65 0
|
4月前
|
前端开发 Java UED
JSF遇上Material Design:一场视觉革命,如何让传统Java Web应用焕发新生?
【8月更文挑战第31天】在当前的Web开发领域,用户体验和界面美观性至关重要。Google推出的Material Design凭借其独特的动画、鲜艳的颜色和简洁的布局广受好评。将其应用于JavaServer Faces(JSF)项目,能显著提升应用的现代感和用户交互体验。本文介绍如何通过PrimeFaces等组件库在JSF应用中实现Material Design风格,包括添加依赖、使用组件及响应式布局等步骤,为用户提供美观且功能丰富的界面。
49 0
|
4月前
|
前端开发 Devops 持续交付
【前端自动化新高度】Angular与Azure DevOps完美结合:从零构建持续集成与持续部署的全自动流水线,提升开发效率与软件交付质量!
【8月更文挑战第31天】Angular作为领先的前端框架,以强大功能和灵活性深受开发者喜爱。Azure DevOps提供一站式DevOps服务,涵盖源码管理、持续集成(CI)及持续部署(CD)。本文将指导你如何在Azure DevOps中搭建Angular项目的CI/CD流程,并通过具体示例代码展示整个过程。首先,我们将创建一个Angular项目并初始化Git仓库;然后,在Azure DevOps中设置CI流水线,定义YAML文件以自动化构建和部署流程。最终实现每次提交代码后自动构建并部署至Azure Web App,极大提升了开发效率和软件交付速度,使团队更专注于创新。
39 0
|
4月前
|
Devops API
阿里云效流水线API简单使用
阿里云效流水线API简单使用
|
4月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之流水线构建出现问题,连接不到nuget,该如何处理
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。