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客户端插件的配置与使用,并且在讲解之中着重讲解了冲突的产生于解决。
相关文章
|
3月前
|
弹性计算 运维 Serverless
项目管理和持续集成系统搭建问题之云效流水线支持阿里云产品的企业用户如何解决
项目管理和持续集成系统搭建问题之云效流水线支持阿里云产品的企业用户如何解决
83 1
项目管理和持续集成系统搭建问题之云效流水线支持阿里云产品的企业用户如何解决
|
3月前
|
敏捷开发 Java 测试技术
阿里云云效产品使用合集之如何下载流水线构建过程中生成的jar
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何限制在本地的构建主机创建的流水线的并发数
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 缓存 5G
阿里云云效产品使用合集之流水线中的webhook是否可以设置为变量
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
Devops API
阿里云效流水线API简单使用
阿里云效流水线API简单使用
|
3月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之流水线构建出现问题,连接不到nuget,该如何处理
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
Java 应用服务中间件 测试技术
阿里云云效产品使用合集之云效流水线如何使用alb ingress的脚本
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 数据可视化 测试技术
阿里云云效产品使用合集之怎么在php composer安装自己服务器的代码
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 缓存 Java
阿里云云效产品使用合集之如何配置流水线里的npm构建
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
存储 安全 Java
阿里云云效产品使用合集之怎么设置使用npm私有仓库进行流水线拉取依赖
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
下一篇
无影云桌面