云效是一个解决需求-开发-测试-发布-运维整个过程的一站式平台.
云效的目的是打造一个完整的devOps解决方案,让一个项目从需求到最终开发完成部署上线都有一整套完善的流程,并提供相应的生产力工具,提供效率.
我们从一个项目的流程来说,不外乎上面说到的需求-开发-测试-发布-运维的过程,而持续集成持续发布也是基于这个流程,不过将这个过程形成一个闭环,且能够高度自动化.实现自动化必然要借助于工具,而云效就是这样一款落地的产品.
下面我们在介绍一下云效的使用流程,这仅限于我作为一个开发人员体验的:
项目协作
项目协作主要对项目进行管理,包括需求/任务/缺陷/迭代/测试/度量等管理
其中,需求/任务/缺陷都比较容易理解,就是将对应的需求/任务/缺陷录入到系统中,通过系统统一管理,测试就是新建测试计划,测试计划里就可以包含各种测试用例,对系统进行测试
迭代: 相当于一个周期,可以将整个项目规划为N个开发周期,每个周期(迭代)中要做的那些事情,从这个角度看,需求/任务/缺陷/测试都应该属于某一个迭代下.而且迭代中是可以有图表统计的.
度量:通过上面需求/任务/缺陷的完成时间来分析出整个项目的研发状态,以便于管理人员调整人员,把控进度.
项目协作其实主要用于产品/需求/管理人员,特别是度量功能,可以对整个项目的进度进行把控,但是反过来说,度量功能又依赖于需求/任务/缺陷的数据.
代码管理
阿里云上提供的代码仓库功能,可以类比GitHub,Gitlab等代码仓库,基本上GitHub有的功能,这里都有,比如代码托管,代码评审等功能.
单说代码管理,其实云效并不突出,但是他的优点在于它能够和项目协作打通,将需求与代码分支结合,一个需求对应一个开发分支,这样就简化了交互成本.
对于企业开发来说,这就省去了跨平台协作的成本.因为小型企业如果代码管理和需求管理不是很完善的情况下,很可能代码管理在一个平台(Github),需求管理在另外一个平台(禅道),这样对于开发来说,开发完一个功能后,还要花费时间切换平台搞各种操作,浪费时间.
流水线
云效流水线应该是我用的最多的功能,也是比较易于使用的
图形化界面容易操作,并且提供了大量的流水线模板简化流水线操作过程.
不太确定云效的流水线是基于什么技术开发的,以现在使用较多的jenkins来说,配置文件较为复杂,学习使用成本都比较高,而这种图形化界面就比较方便.
而且云效的流水线适用于多种git分支模型,比如阿里的AoneFlow模型,并且在流水线里提供了对于的插件,简化分支模型的操作.
流水线的具体操作不再赘述,图形化界面基本都是点点点就完事了,流水线的好处就是一次配置N次使用,以达到CI/CD.
应用交付
云效通过应用交付整合k8s,达到应用编排的作用
其实这个没啥说的,主要还是配置k8s环境,支持阿里云ACK和通用k8s.然后可以通过编排配置k8s资源.
应用交付也可以通过流水线来操作,简化人工操作.
这个其实没太感觉到意义,交付的配置其实可以通过流水线操作,然后类似于编排/变量/回滚/监控等功能其实都可以在k8s管理平台里做,可能这个功能理解的不到位.
测试管理
测试管理主要就是对测试用例和测试计划进行管理.这个属于测试的范畴.
其他
云效产品模块还包括知识库,云端IDE,Maven/Npm等私服等,这些其实都是附加产品,实际使用的可能很少(比如我就没用过云端IDE.本地的不香吗),但是未来谁说得准呢?
总结
其实看下来,云效比较适合个人开发或者小型企业,没有时间和成本搭建自身的平台,那么借助于云效就可以简单快速的完成项目的一站式开发,节省成本(这个也不一定,毕竟不太知道云效报价)
当然作为个人开发来说,云效绝对是值得一用的,单单免费流水线的功能也挺吸引人的.