什么是Azure DevOps Server?
经常有朋友来咨询,是否有关于Azure DevOps Server 描述资料?首先我会把微软官方的文档(https://docs.microsoft.com/en-us/azure/devops)推荐给对方,因为官方文档库中几千页的文字描述是最权威且最完整的介绍了。但是还是有些朋友认为官方得文档比较倾向于操作说明,希望有一个比较概要性的说明文档。我把自己对Azure DevOps Server这个产品的一些认识分享到这里,希望对大家在采纳这个产品之前有所帮助。
1 产品概述
Azure DevOps Server(简称ADO Server,原名TFS)是微软公司Azure DevOps产品在企业内网部署运行的研发管理平台产品;作为研发运维一体化的实施方案和应用软件生命周期管理(ALM:Application Lifecycle Management)的基础平台,ADO Server为信息技术团队提供软件研发过程管理、文档和源代码管理、持续集成和自动部署、质量控制和测试等全过程的功能模块。
2 交互式、自定义和可扩展的软件研发过程管理
在开箱即用的服务器环境中,ADO Server支持多种软件过程管理模板,既包括迭代式交付的敏捷开发过程(Agile和Scrum),还支持瀑布式或里程碑式的传统过程管理(CMMI),同时还支持简易快捷的基础模板(Basic)。此外,在适应企业复杂的个性化过程管理方面,它具备了强大的扩展能力,企业可以根据自身的行业特色和业务流程,定制适应企业实际情况的内部管理流程。
根据企业选择的软件研发管理制度和过程模板,我们可以利用ADO Server中的多种过程管理工具,例如Bug或测试缺陷、需求、长篇故事、史诗、功能、生成问题、评审、燃尽图、看板、列表、日历视图等,实现对软件开发过程的透明化和高效管理;使用系统提供的查询、图表和仪表板等功能,自定义各种维度的数据报表,分析项目管理过程中的问题和发展趋势,为企业项目管理和决策团队提供实时的研发大数据。
图表 1 - 软件过程管理中的看板示例
根据企业当前软件研发管理的实际情况,结合ADO Server开发管理功能,可以协助企业在软件质量和开发效率上实现双提升,可以建立起规范统一的研发流程。通过建设基于ADO Server的软件研发管理平台,在企业软件研发部门建立起覆盖软件需求、软件架构、软件开发及管理、软件测试、软件集成和交付全生命周期管理的统一有效平台,实现软件研发部门内部的完整、有效、统一化管理。
ADO Server系统为研发团队打造高效率、持续改进的团队提供工具支撑。通过建设以ADO Server为核心的软件研发管理平台,为企业研发部门的信息化发展提供工具层面的技术支撑。达到可以适应业务部门快速交付,持续发布的目标,同时引入符合现代软件开发规律及业务模式的新技术、新方法,为企业软件开发提供活力、打下坚实的基础,建立起可以持续自我改进的机制和高效开发的团队。
3 企业集中统一的IT资产管理平台
在研发管理过中,ADO Server为研发部门资产提供集中管理IT资产的功能。源代码和文档管理是ADO Server核心功能之一,它提供一系列丰富的版本管理工具,为开发人员提供集中式(TFVC)和分布式(Git)的版本管理能力。利用ADO Server的版本控制系统,开发团队可以跟踪任意时间点的文档变更和代码提交,实现比对、回退、分支、合并、代码评审和灵活的权限管理。无论项目大小,无论技术框架复杂或简易,它为研发团队提供跨平台、跨语言的集中资产管理平台。
使用系统的Artifacts功能,开发人员可以共享和使用不同源和私服或公网中的包,实现不同团队之间共享依赖包;在企业内网实现NuGet、npm、Python、Maven 和 Universal Packages的依赖包和制品库管理功能。
图表 2 - Git分支管理
4 高效、标准和安全的持续集成和自动部署流水线
利用ADO Server提供的流水线功能,研发和运维团队可以实现自动编译、自动测试和自动部署功能,大幅提高软件发布过程的速度和质量,提高软件版本管理的规范;通过流水线建立起软件开发团队、质量管理团队和运维团队之间的流程管控,实现开发运维的闭环管理,降低软件包制作和部署过程中的安全隐患,并建立起针对整个软件发布过程的日志追朔能力,为测试缺陷和生产问题的重新、排查和修复提供便捷而完整的轨迹。
利用提前编排的发布流程,在软件版本发布过程中,系统自动克隆代码,并完成编译和打包工作,同时将程序包、文档等交付物自动上传到制品库,大幅减少发版本过程中开发团队的人力投入;
利用流水线的自动化功能,可以降低发布过程中对程序员、编译环境的依赖,轻松实现一键发版;无论程序员、QA、需求人员等,都可以基于流水线提交测试版本;可以自动检测开发团队提交的代码标记是否合规,大幅降低人力成本,同时提高软件团队的代码规范性;
自动发布版本,创建起了源代码和程序包之间的必然联系;即,提交测试或发布的程序包,必然来自源代码库;这种关联关系,在技术上杜绝了源代码库和程序包不一致的情况;它为精确追朔生产问题、重现验收缺陷等提供了技术保障,实现了程序包和源代码之间的安全闭环。
ADO Server支持主流的大多数应用程序类型,例如 Java、JavaScript、Node.js、Python、.net、C++、Go、PHP 和 XCode,实现跨平台的一键发布、一键测试和一键部署。
图表 3 - 流水线的流程示意图
5 基于探索测试、敏捷测试研发测试一体化平台
ADO Server的测试管理模块(Test Plans)为测试团队和质量管理团队提供了非常丰富和强大的手动测试功能,同时针对产品质量和缺陷为测试团队与开发团队的互动提供了完整互动流程,此外还为最终用户、项目干系人提供需求反馈和用户体验建议的途径,实现端到端的研发测试管理。
基于严谨的测试管理工作流程,ADO Server提供测试计划、测试用例、测试执行、测试结果分析、缺陷报送和回归验证等全流程的质量管理流程;在实现测试管理的工具中,支持Web浏览器、测试客户端工具,实现自动收集测试过程中的数据;同时还通过扩展,非常便捷的实现与第三方测试管理工具的集成和数据共享。
使用探索测试、敏捷测试和基于测试用例的测试,可以实现多种途径的质量管控,提高产品在市场竞争中的地位。
图表 4 - 测试过程跟踪图
6 跨团队和部门的研发协作机制
ADO Server为企业构建起跨团队的协作机制。通过建设以ADO Server为核心的软件研发管理平台,涵盖开发过程中的各个阶段的所有流程和数据管理,同时还实现开发过程中的人员和任务的管理与跟踪。实现以需求为纽带,贯穿开发过程的每个环节和阶段,并将包括项目管理人员、开发人员、测试人员和需求分析设计人员等各种角色纳入到这个平台的管理中,实现了事、人、物的综合管理。
通过建设ADO Server为核心的软件研发管理平台,实现研发部门资源的集中管理,建立起企业级的研发信息数据库。实现产品文档、源代码、需求信息、测试用例和综合文档等数据集中存储和查询。通过配置信息数据库的备份机制,加强企业数据安全性,建立起研发中心数据安全的应急方案。
ADO Server系统构建由研发大数据支撑的研发决策模型。通过的数据管理模块,深度发掘软件开发过程中的有用数据,全面整合各团队项目的基础数据,分析业务问题。在各团队项目研发数据的基础上创建多种报表,从企业组织级层面上分析项目(系统)研发过程中存在的问题和发展趋势,全面掌握和监控项目研发过程,为企业管理层和项目管理团队做出科学决策提供数据依据。
ADO Server在提升测试团队效率,提高产品质量上提供强大的工具支撑。通过ADO Server系统的项目审计、流程管理功能,可以培养测试人员正确的测试用例录入与维护的方法,搭建更高效准确地记录测试执行的过程和测试结果的追溯系统,提高软件测试质量和效率。同时提高软件发布过程的自动化水平,减少人为因素在软件发布过程中造成的影响。依托软件协作研发管理平台,实现软件项目的自动化构建、自动化测试和发布流程。
ADO Server系统建立起各个角色的高效的工作模式,使参与项目的各类角色统一规范项目的软件开发过程中,使项目经理,需求经理、架构师,开发人员,测试人员等项目参与人员通过熟悉的方式(Excel、Word、Xcode、Eclipse、Visual Studio)协同工作,全面把握项目进度,控制软件开发成本,高质量地完成软件系统开发目标,提升公司研发管理的标准化、自动化水平,推动公司信息技术的发展。
如果需要,你还可以从微软Azure DevOps Server 的在线文档,查询更多的权威资料,也欢迎通过下面的联系方式与我沟通,相互学习,相互提高!
https://www.cnblogs.com/danzhang
Azure DevOps MVP 张洪君