全部产品

小微企业两步快走实现持续交付

1 背景

小型企业一般是指研发人数少于30人的企业,这些企业有的处于生存期,有的处于发展期,要求产品迭代速度要赶上市场更新速度。对于研发流程,一般没有专职的管理人员,希望引进成熟的方案把游击队改造成正规军,用小而精的技术团队驱动大业务、大市场,进而实现企业和团队的大发展。

你有问题,我有方案。云效助力中小企业发展,适合你的解决方案才是最好的方案。任何软件研发过程都必须解决两个问题:代码怎么管、产品怎么发?不希望引入复杂的流程、不希望增加额外的人员消耗,又可以解决实际问题并获得效能提升。借助云效,只需要十分钟,两步走”您就可以拥有成熟的持续交付能力:

第一步,用代码平台进行代码托管和评审;

第二步,用流水线进行持续集成和交付。

2 当前小型企业持续交付中遇到的挑战

如果没有引入成熟的工具和方法,研发过程一般面临这些挑战:

•团队没有统一的研发管理流程,工具无约束,遵守流程规范基本靠自觉;

•日常发布流程中人工干预过多,缺乏自动化部署能力;

满足团队日常开发的需求,能够顺畅地部置到生产环境,需要:

•统一的代码托管和评审;

•一致的构建和运行环境;

•规范的自动化发布流程。

3 基于云效解决方案

3.1 云效持续交付能力

云效,企业级一站式DevOps解决方案,源于阿里巴巴先进的管理理念和工程实践,致力于成为数字企业的研发效能引擎!云效提供从“需求->开发->测试->发布->运维->运营”端到端的协同服务和研发工具,支持公共云、专有云和混合云多种部署形态,通过人工智能、自动化技术的应用助力开发者提升研发效能,持续快速交付有效值。

产品图

3.2 我们的优势

3.2.1 代码管理

自动化代码检测,提供安全扫描快速暴露代码安全问题,同时提供代码规约检查保障代码质量。

阿里巴巴自研,适合企业级代码库,提供企业间数据隔离及企业-代码库-成员三级权限管控能力。

安全稳定的代码库,完善的日志审计、IP白名单等实现访问控制,让你的代码安全无忧。

多样化代码评审,完善的配置能力支持丰富的代码评审场景,自动化代码扫描提高评审效率。

3.2.2 流水线

钉钉消息通知,流水线运行结果,即时准确地反馈到钉钉群。降低沟通成本,提升团队工程协同。

快速生成流水线,适用多种场景,通过模版来快速创建流水线,提供可视化编排和结果展现,所见即所得;

自动化质量保障手段,支持代码扫描、安全扫描,人工测试卡点等多种质量红线,确保业务交付质量。

支持多语言,Java、Node.js、Python、PHP、Golang等语言脚手架生成代码框架,可以对接主流代码仓库;

软件发布支持,保障业务稳定交付,通过灰度发布、分批发布的策略,保障业务交付的稳定。

3.3 解决方案架构图

结合代码管理平台和持续交付流水线,为小微企业实现随时集成,每日交付提供了很好的基础保障,真正实现持续快速交付有效价值。

架构图•过程中任何问题通过钉钉,自动化地及时反馈到指定负责人,做到准确反馈、即时响应,快速恢复。

•开发者根据任务安排,创建特性分支,通过线下编译和自测通过提交代码;

•代码提交自动触发代码扫描,通过后发起合并请求,根据代码库设置发送给指定的代码评审员进行评审;

•完成代码评审后合并集成分支,自动触发集成分支流水线,完成构建、部署和测试环境验证工作,验证通过合并到发布分支;

•根据发布时间人工触发发布分支流水线,完成构建、预发部署验证、发布审核等流程,审批通过部署生产环境;

3.4 两步开启持续交付

第一步,先把代码托管起来

1. 快速创建代码仓库

通过代码库右上角,点击【添加代码库】,可以选择新建代码库和导入代码库,代码库克隆支持HTTPS和SSH两种协议;

代码

2. 开启代码扫描

在提交和合并请求中,可以自动触发代码扫描任务。目前提供了两种扫描能力:敏感信息扫描及Java规约扫描。管理员可以在【设置】-【集成与服务】中开启设置代码扫描的时机,或者开启和关闭扫描;

代码扫描

3. 引入代码评审

通过【分支设置】完成代码评审场景定制,例如设置集成分支为保护分支,需要通过新建合并请求-通过合并请求-合并分支流程完成;

代码评审

第二步,用流水线实现自动交付

1. 一键创建流水线

点击流水线列表右上角的【新建流水线】按钮,开始创建流水线,选择研发语言和流水线模版;

创建流水线

2. 编辑流水线场景

通过流水线编辑功能,结合企业场景快速配置以下2条流水线:

•集成环境流水线

集成环境流水线

【步骤说明】

*触发方式选择:代码提交触发;

*集成分支开始构建编译;

*编译通过部署测试环境;

*测试同学测试验证;

*验证通过代码合并发布分支;

•发布环境流水线

发布流水线

【步骤说明】

*发布分支开始构建编译;

*编译通过部署预发环境;

*预发环境验收测试;

*验证通过开始发布单审核;

3.5 用户旅程

通过以下内容详细介绍如何快速实现从代码提交到交付的过程。【场景为:Java单应用主机部署】;

  • 新建特性分支,开始编码

开发人员可以通过代码平台在线方式或者本地新建分支开始编码,代码完成后提交远端分支;工具开始自动执行java开发规约和敏感信息扫描,可以直观看到检查结果,便于进一步改进;

1
  • 新建合并请求发起代码评审

分支规约扫描通过后开始新建合并请求发起代码评审,强制代码评审有利于提高代码质量,帮助开发人员尽早发现问题,提高问题修复的效率;

代码评审

分支通过代码评审后,点击“合并”按钮,代码自动合并到集成分支,随即触发集成分支流水线,开始构建和测试环境部署。

2
  • 启动集成测试和验证

集成分支构建部署到测试环境后,测试同学开始进行测试验证,根据测试结果选择“验证通过”或者“验证不通过”,测试通过后代码合入发布分支;

3
  • 启动生产环境发布和审核

发布分支构建部署预发环境并且测试验证通过后,提交生产环境发布单审批,指定的同学“通过”后开始生产环境部署;

4
  • 查看流水线运行结果

所见即所得,流水线运行过程直观展示,企业可完整看到当前流水线运行所处阶段和场景;

•集成环境流水线

6

•发布环境流水线

7
  • 获得反馈信息

流水线中配置钉钉群通知插件,可以将流水线运行过程中的信息反馈相应同学,便于快速定位和排查问题,钉钉群流水线运行结果:

8

4 更多场景

随着研发团队规模不断壮大,产品线逐渐丰富,加强测试和质量保障是绕不开的步骤,基于流水线自动化测试和红线卡点可以有效保障产品交付质量,根据需求选择合适的流水线任务加入到现有流程中,企业可以灵活定义适合自身场景的玩法。

5

本文通过“两步走”介绍了如何在10分钟内建立企业专属的流水线场景,快速规范代码托管和应用发布,获得研发效能成倍提升。