上图是一个项目协作完整的周期,那么如何 通过 整合各工具 实现自动化 ,如何高效协作各职责的人 完成项目的快速交付呢?
在项目研发协作领域 有很多优秀的 工具,当我们进行一个新项目的时候,会面临一个工具选型问题;
1、是自己搭建还是拥抱服务?
2、优秀的工具那么多,到底用哪一个?还是那一套?
3、是自己整合 各个工具,还是统一使用一套?
4、怎么解决从研发到部署 整个流水线的通畅问题?
5、如何支持容器化,以及后面更多新技术扩展的问题?
在处理以上问题之前,我们需要有一些知识储备。
需要对已有工具进行罗列、比对分析、最后是在项目中实际使用过的,而不是理论和看文章。
比较成熟的方案大致有一下几类:
一体化产品方案:
1、阿里云 云效方案
2、腾讯云 coding平台
3、TAPD-腾讯敏捷产品研发平台
4、码云企业版
5、github
自建方案:
1、禅道、Gitlab、Jenkins、maven nexus、Harbor、Sonar
2、JIRA、Confluence、Gitlab、Jenkins、maven nexus、Harbor、Sonar
还有其他各种方案。
对于中型项目来说 需要一下工具清单:
代码仓库、比如:gitlab
任务看板、比如:禅道 、TAPD、JIRA、Teambition
迭代管理、比如:禅道 、JIRA
BUG管理、比如:禅道 、JIRA
持续集成、比如:gitlab devops、Jenkins
持续部署(可选)、比如:Kubernetes
在线wiki、比如:Confluence
网盘资料共享、比如:百度网盘、有道网盘、Teambition
maven私服、比如: nexus
容器镜像仓库 比如:Docker hub、Harbor
代码质量扫描工具: Sonar
测试用例管理(可选):TestLink、禅道、Zephyr+Jira
看完以上清单,或许 有一些感慨,随着微服务 devops的推广 对项目管理工具的周边 影响深远。
比起往日,现在开发一个项目 需要的工具太多,然而这都是 标配。
那么 需要这么多工具,是否有成套的 成熟的集成方案?
面对以上工具清单,如果手动去搭建 面临的问题是:
费时费力,需要申请很多机器,需要处理工具之间的集成问题,如果不能集成 用户体系就会有多套,日常操作多工具切换是个问题。
粗略估算 自建需要的机器资源是:至少需要4台 2c 8G 100G存储的云服务器,一年的费用大于1w。还需要考虑 运维的人力成本。
我们目的是 通过工具提升效率、所以根据清单,比较适合的是 阿里云 和 腾讯云 。
整理一个比对表格如下:
类别 | 功能 | 描述 | 腾讯云 Coding | 阿里云 云效 | 对应开源产品 |
基础功能 | 代码仓库 | 提供 Git/SVN 版本控制代码管理服务 | 支持 | 支持 |