首页   >   D   >
    DevOps可视化编排

DevOps可视化编排

2020-08-18

案例重点介绍

通过云效解决企业代码托管和软件集成发布问题,整体发布节奏由原来一周发版1次提升为每日交付;发布时长由原来一次发布30分钟提升为2分钟;现在各自项目组完成代码评审后自动集成发布,目前有30条生产环境流水线,单次发布节省20分钟的情况下可以节省10个小时;

背景

杭州幻熊科技是一家根植于婚礼行业的移动互联网公司,帮助客户创造并提升品牌与消费者之间的关系。主要从事结婚新零售和产业云平台建设,旨在提供行业出色的产品,推进中国婚嫁行业的互联网化变革,重塑行业服务体系与商业文明,建立全新的婚嫁消费格局。幻熊科技旗下产品主要包括云设计系统、智能一体机、供应链云仓、移动端APP和小程序。小而精的技术团队保障产品发布的同时承担着更为重要的创新任务,其中上海分公司15人,主要从事具体产品研发,包括移动端APP、小程序和H5等;武汉分公司10人,主要从事婚礼实景VR研究和开发。

出于对研发效能的深刻理解与共同追求,于是有了这次杭州幻熊科技与云效的对话。我们将全方位展示本次共创的过程、最终产生的效果,希望能为不同行业的创业与小微企业提供可以借鉴的经验。

面临的问题

经过进一步接触,我们了解到为了支撑快速发展的行业业务,企业内部正在调研、并准备搭建持续集成和持续交付平台。云效的出现恰好在时机上契合了企业流程升级的需求。

企业现状

流程升级首先要洞悉当前流程遇到了什么问题,找出其中影响效率与质量的关键节点,加以改进并获得良好的效果。以幻熊上海研发团队为例,研发人员共15人,其中:

服务端4人,主要开发语言PHP

WEB前端4人,主要开发语言JS

Android客户端3人,主要开发语言JAVA

iOS客户端2人,主要开发语言SWIFT

测试2人,负责所有产品测试

技术团队负责产品全栈开发,整体规模较小并且没有专职的运维人员。基于快速发展的业务,要求产品迭代速度持续加快。迭代次数增加同时加重了发布负担,发布逐渐变成了制约产品创新的瓶颈。流程升级前基本情况如下:

产品迭代周期以周为单位

代码通过开源代码平台“码云”托管

版本发布以FTP+手工部署的方式进行

自建Jenkins流水线执行Android/iOS客户端构建

企业痛点及解决方案

发布流程和人员协调复杂,时间长:

为了保障服务器安全,生产环境只有特定的人员可以操作。所有项目发布都需要事先协调,并等待有权发布的人员,等待和依赖发布人员需要消耗较长的时间。

1.BUG从修复到验证耗时久、效率低:

测试环境通常需要频繁打包,一个BUG从修复到部署至测试环境进行验证,消耗时间较长,且多为重复性工作,已经严重影响到了开发效率。

2.人工部署生产环境存在安全隐患:

具有发布权限的开发人员身兼数职,直接通过人工执行部署不能避免误操作,给生产环境安全带来了极大的隐患。
以上是企业切身感受到的痛点,从这些问题来看恰好是云效致力于解决的问题。通过良好的分支策略、自动化的流水部署和环境管理,增强的测试与质量卡点,只需要简单的变化就可以将成熟的DevOps经验应用于企业研发流程,解决企业遇到的实实在在的问题,总结下来有以下几点:

1.增加代码评审加强开发质量

2.高度自动化,尽可能减少人工干预

3.需要快速且准确地反馈问题

4.加强质量管控和可视化呈现

解决效果

小微研发团队通常不会面临复杂的开发策略与产品维护需求,其核心诉求是产品快速迭代,以满足不断变化的业务需求。引入成熟的方法快速提升研发效率,规范现有流程是最直接的方式。这是一个小变化引起大收益的典型案例,通过以下对比可以看到流程升级带来的变化:

对比项目原来现在发布方式手工发布自动发布正式发布频率、时长1次/周
平均30分钟/次随时发布
2分钟/次代码集成频率3~4次/日随时集成BUG修复完成至开始测试等待时间平均2小时5分钟代码评审无强制要求合并请求强制评审构建通知无通知自动钉钉通知测试、生产环境管理人工工具自动管理

质量和效能提升:

1.流程升级前,测试环境和生产环境部署完全依赖开发人员;流程升级后,发布几乎不占用人力,每周至少节省1.5人/日;

2.正式发布限制解除,可以按照业务需求随时发布;

3.代码集成频率提升,集成问题随时发现;

4.等待测试时间缩短到5分钟,测试吞吐率提升数倍;

5.生产环境误操作问题基本消除。

目前幻熊科技服务端程序和WEB前端程序已建立近60条流水线,支持测试与生产两套环境的自动部署。由Jenkins管理的Android/iOS移动应用也正在逐步纳入流水线,全部实现自动构建和打包发布。

打出效率的组合拳

代码平台和流水线自诞生之日起,即致力于解决企业代码托管和软件集成发布问题。结合业界先进经验和阿里巴巴多年工程实践,将质量和效能融入工具,实现开箱即用的代码管理与自动化流水线。在幻熊科技的方案中,使用代码平台托管代码,使用流水线管理生产和测试的发布,通过自动触发流水线实现自动化部署,成倍提高了集成、测试、发布效率。
用代码平台增强代码管理

代码平台是一款企业级代码管理应用,提供代码托管、代码评审、代码扫描、质量检测等功能,有效保护企业代码资产,助力企业实现安全、稳定、高效的研发生产。
研发模式
通过对业务场景和研发模式梳理,采用基于主干的开发模式即可满足日常开发需求,如图所示:

代码评审

利用代码平台提供的代码评审能力,设置代码合入主分支前必须评审通过,如图:运营管理后台合并记录;


发起代码合并评审:

强制代码评审有利于提高代码质量,帮助开发人员尽早发现问题,提高问题修复的效率。更进一步,企业还可以结合自身实际情况,启用代码静态扫描和代码规范检查。

用流水线赋能集成与交付

流水线是一款企业级、自动化的研发交付流水线,提供灵活易用的持续集成、持续验证、持续发布功能,帮助企业高质量、高效率的交付业务。

流水线是持续交付的载体,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线过程的持续交付。通过持续向团队提供及时反馈,让交付过程高效顺畅。幻熊科技服务端程序和WEB前端程序总共有近60条流水线;

流水线整体方案

完整的研发流程说明如下:


  • 开发人员基于dev集成分支开发,流水线输入源设置为dev集成分支;

  • 开发自测通过后,代码提交远端分支并触发集成分支流水线运行,构建完成后自动部署测试环境;

  • 测试人员收到通知执行测试验证;

  • 测试环境验证通过后,dev分支发起合并请求,开展代码评审工作;

  • 代码评审通过后合并到master发布分支;

  • 开始触发正式环境流水线运行,构建完成后部署正式环境;

  • 测试人员开展正式环境验收工作;

模版化快速创建流水线

产品提供多种流水线模版,便于企业快速上手创建一条适配的流水线场景;