在敏捷转型推进的过程中,工具链的建设有利于将敏捷转型成果流程化和可视化。通常,需要结合项目团队的需要,从公司或研发部门层面搭建自动化工具平台,逐步构建持续交付流水线,实现端到端无缝集成,实现源代码的自动拉取构建、代码自动扫描检查、测试环境的自动部署、API测试自动化等。
下图是持续交付流水线相关工具的一个示例:
通常,我们在工具链的建设过程中,需要考虑项目管理/协作/需求管理工具、代码托管/编译构建/打包工具、测试工具、发布/运维工具等几类工具。
在项目管理/协作/需求管理工具方面,不少团队都会引入JIRA,也有不少大型团队会考虑自研,除此之外,一些开源或商用的软件工具也可以结合团队实际需要纳入考虑。
在代码托管/编译构建/打包工具方面,SVN、GitLab、Jenkins、SonarQube、NPM、Maven等都是当前主流选择。
在测试工具方面,JUnit、Jmeter、Selenium等工具是主流选择,当然也有不少团队会结合自身需要进行自动化测试工具的自研。
在发布/运维工具方面,Docker、Kubernetes、Ansible等都是主流选择。
在我们的其中一个项目团队中,主要涉及的工具链如下图所示:
刚开始使用了JIRA作为项目管理/协作及缺陷管理工具,后期随着团队的发展及实际项目需要,开始考虑基于开源工具进行部分自研,这当中有考虑Choerodon开源多云应用敏捷全链路技术平台。
在接口自动化测试方面,刚开始也是使用了JMeter作为工具的选择之一,在实际项目执行过程中也发现存在不少无法完全满足实际需要的需求,由此团队进行了重新考虑和自研,并取得了一定的成果。
工具链的建设是一个持续建设的过程,不能一蹴而就,然在选择工具链的过程中一定要结合当前及未来一段时期的需要进行多重综合考虑,从而避免后续因工具选择不当而带来的不必要影响。
附上一些常用工具链图(来源于互联网):