Azure DevOps Server(TFS) 客户端分析
Azure DevOps Server(TFS) 是微软公司的软件协作开发管理平台产品,为软件研发、测试、实施提供全流程的服务。作为一款应用服务器产品,他的客户端是什么,在哪里下载客户端?我们在项目实施过程,经常碰到这样的问题。本文的目的就是为了解答这个问题。
作为一款企业级的软件研发管理平台,Azure DevOps Server 集成了需求管理、项目计划、人员管理、代码管理、持续集成、自动发布等全流程的功能,他涉及到各种不同角色的IT技术人员,例如业务人员、需求分析师、设计师、程序员、质量控制人员和运维人员等。不同角色的人员使用不同的工具,在软件研发的不同阶段,同一个角色也会使用不同的通具。下面我们就来详细说一说,Azure DevOps Server (TFS)到底有哪些客户端?它如何满足不同角色成的个性需求?
1. 开发工具
首先我们要来说开发工具,因为在一个信息技术部门,软件研发团队是绝对的主力人员。他们手头使用的工具的集成功能,是Azure DevOps Server首先需要解决的问题。
Visual Studio
Azure DevOps Server的原名就是Visual Studio Team Foundation Server (简称TFS,曾经还叫VSTS),做为Visual Studio产品家族的成员,Visual Studio当然是DevOps Server的首推客户端,特别是对于基于微软技术框架做开发的技术人员,使用Visual Studio中集成的团队资源管理器(Team Explorer)功能,可以非常便捷地完成代码版本管理、工作项查询、持续集成等工作。几乎可以说,DevOps的大部分客户端工作都可以在Visual Studio中完成。Visual Studio Team Explorer(VS团队资源管理器)
对于使用Visual Studio的建议,Java程序员马上就会泼冷水:“完整的VS安装包30GB,对我有什么用?” 为了满足非微软技术框架的开发人员,微软公司也是操碎了心,专门精简改造Visual Studio,将30GB的安装包,精简到300MB,其中只包含了Azure DevOps Server的全部客户端功能,例如TFVC版本管理、Git版本管理、工作项等。这个工具,无论是功能的完备性、稳定性、速度等多角度考虑,目前是非微软开发人员的最好的客户端工具,也是我们在推广DevOps Server过程中首推的客户端。Visual Studio Code
Visual Studio Code,作为微软跨平台开发工具,当然不会缺少DevOps Server的关联。使用Visual Studio Code的原生Git功能呢,可以与DevOps无缝衔接,实现版本管理;借助与TFVC插件,也可以实现集中式源代码的版本管理。
图:在Visual Studio Code中实现代码版本管理Eclipse、MyEclipse、Idea、Android Studio、XCode
好了,现在我们来和Java开发人员聊一聊。在Java开发开发人员的心目中,应该只有Windows和Office与自己有关,可能从未想到过在开发过程中还需要微软的开发工具。那么先来看一下微软公司为Java开发人员准备的大礼包:https://azure.microsoft.com/en-us/services/devops/java/ 在这个连接中,你可以看到主流的Java IDE工具,可以与DevOps Server实现快速无缝集成。同时,在CI和CD过程中,微软还提供与Jenkins一样的功能,在发布流程管理方面,甚至远远超越了Jenkins。你熟悉的Maven、Ant、Gradle等,在DevOps Server中,一应俱全。下面我们来一个一个分析Java开发人员的开发神器:
- Eclise:
对于传统的TFVC这种集中式的源代码管理,在Eclipse(基于Eclipse的)开发工具中安装微软TFS插件(Team Explorer Everywhere,简称TEE),可以直接在Eclipse中连接TFS服务器。这个TEE插件的功能,与Visual Studio中的团队资源管理器比较,无论在功能还是用户界面上,二者几乎一模一样。当然,由于是作为第三方插件的方式集成在Ecipse中,在速度和稳定性方面和原生的VS是有差距的。
图:Eclipse连接Azure DevOps Server
- Idea
除开Eclipse,Idea应该是Java开发人员的最爱了。作为捷克共和国这个东欧国家开发的IDE工具,在Java软件开发、调试和兼容性方面,与Eclispe相比毫不逊色。更有惊喜的是,Idea原生支持TFS系统,可以在Idea中直接连接TFS实现版本管理,无需任何第三方插件。
图:Eclipse连接Azure DevOps Server (TFS)安卓、苹果移动开发
由于DevOps Server中集成的Git服务器的功能,类似Android Studio、XCode等原生就支持Git的开发工具,现在被微软的DevOps Server收为一统。移动开发人员,再也不用担心在MAC机器上如何上传代码的问题了。Sublime等非主流开发
前面说了主流的开发工具,实际上,对于非主流的开发工具、文本编辑器等,Azure DevOps Server提供了丰富的插件支持,你可以微软的扩展市场(https://marketplace.visualstudio.com/)中,找到几千种插件,但凡有一定数据量用户的开发工具,基本都可以通过插件的方式连接到DevOps Server。比较就曾经在一个项目中,为PL/SQL的用户(数据DBA)找到连接DevOps Server的工具,实现数据脚本的版本管理。详情可以查看我的博客https://www.cnblogs.com/danzhang/p/6936611.html。跨平台工具TEE(Team Explorer Everywhere)
开发人员不提跨平台,总让人看不起。微软公司在Team Explorer Everywhere中提供了一个基于命令行的跨平台工具,终于为我们长了脸,在培训过程中,对于Linux、Unix的用户,我可以信心满满的告诉他,你可以在所有支持Java的平台上连接Azure DevOps Server!
2. 浏览器
在上一节的说明中,应该已经可以覆盖绝大部分研发人员使用的工具了。但是,作为一个服务器系统,如果你不支持基于浏览器web服务,那是不可以思议的。DevOps Server在浏览器的兼容性、功能全面方面,比起作为客户端的主流开发工具来说,可以说做到了极致。目前官方公开声明支持所有主流浏览器,包括:Chrome、Firefox、IE、Safari等。
对于国产的浏览器,虽然微软没有给出官方说明,但是在项目实施过程中,我们的客户使用360、搜狗等,几乎没有任何障碍。
使用Web浏览器,可以完成Azure DevOps Server百分之九十的功能,甚至可以在Web浏览器中编写代码。
有个同学马上就问:“不能做的那百分之十是什么?”,我只好心虚的说“调试代码”。但是,我相信,如果人类发明了可以使用浏览器编写、调试代码的框架,微软很快就会把它集成在Azure DevOps Server中。
3. 微软Office 工具
通过前面的说明,开发人员应该有所宽心了。
下面我们和非开发人员(需求、测试、运维)来聊一下。作为不经常编写代码的技术人员,手头最常用的工具莫过于微软的Office。秉承的微软其他应用软件的系统,Azure DevOps在集成Office系列软件的过程中,它具备的功能远远超出了我们的现象。
- Office Excel
我认识的人中,除了50年代出生的父母外,都使用过Excel来管理电子表格数据,就连我那个正在读小学的孩子,都会熟练的使用Excel中记录家庭作业完成情况。对于如此广泛使用的电子表格工具,Azure DevOps 开发团队当然不会忽略它的存在。微软开发团队提供了一个Office插件(Azure DevOps Office Integration: https://docs.microsoft.com/en-us/azure/devops/boards/backlogs/office/track-work?WT.mc_id=DT-MVP-5001330 )。使用这个插件,可以在Excel中下载、批量修改、汇总报表。而这些操作过程中的数据来源,则可以直接与Azure DevOps相连,甚至可以获取实时的数据。测试人员录入Bug、需求人员跟踪进度、管理人员统计绩效等等,都可以使用自己熟悉的Excel,无需学习新的知识。
图:Excel连接Azure DevOps服务器 - Project Professional
一提起Project,你肯定就会问“甘特图呢?”。是的,Azure DevOps的Office插件让你在Project中,可以使用服务器中的数据,生成项目计划甘特图。使用Project,可以实现项目管理人员和开发团队之间,实现数据共享,互联互通。
图:Project连接Azure DevOps服务器 - Outlook
这个工具就不值得提了,因为电子邮件集成几乎是所有服务器软件必备的功能。
但是,如果你发现,在Outlook中,可以将用户反馈的一个电子邮件,直接转换为一个Bug或者一条需求信息,那就不是简单的邮件通知功能了。
4. 服务器集成
实际上,Azure DevOps Server与其他服务器之间的集成,也可以看成是客户端的扩展。例如,我们在SharePoint Server中可以获取Azure DevOps Server的工作项数据;可以将需求推送到Project Server;可以在SQL Server Reporing Server和PowerBI中,生成漂亮的统计报表;还可以与及时信息软件(例如Slack、Teams)集成,自动发送实时通知。
甚至,利用Azure DevOps完善的Rest API,可以与任何自主研发的第三方服务器集成,实现数据共享、流程互通。例如,在项目实施过程中,我们就为许多客户做过系统集成,从OA系统自动获取需求,从测试管理平台中自动获取缺陷,自动通知运维平台升级,等等。。。
作为企业级的软件研发管理平台,Azure DevOps Server在客户端的集成和兼容性上,几乎可以满足大部分研发角色成员的需求。在实际使用过程中,由于Azure DevOps Server涉及到软件研发的全生命周期管理(ALM),可能还有更多笔者未知的工具、技术和技巧,欢迎大家在讨论中补充。
------------------------------------------------------------
http://www.cnblogs.com/danzhang/ DevOps MVP 张洪君
------------------------------------------------------------