网站搜索

Azure DevOps 与 GitHub


在现代软件开发中,协作是游戏的名称;为此,开发团队现在有大量的工具可供他们使用。GitHub 拥有数以千万计的用户群,是共享、协作和重新配置代码的常年最爱,但 Azure DevOps(最初是 Visual Studio Online)——然后更名,称为 Microsoft Visual Studio Team Services (VSTS)——一直在抢走一些风头,尤其是当涉及到严重依赖 Microsoft 技术(如 .NET 和 C#)的软件团队时。

这两个平台之间最明显、最经典的区别是 Azure DevOps 面向闭源项目,而 GitHub 则专注于开源。也就是说,GitHub 始终使开发人员可以轻松地在公共/私人开发模式之间来回切换。Microsoft 在赢得开源社区的青睐方面也取得了长足的进步,也许它讨好社区的最重要举措是它在 2018 年收购了 GitHub。

甚至在完成对 GitHub 的收购之前,Microsoft 就已经在朝着变得更加开源友好的方向上取得了长足的进步。在首席执行官 Satya Nadella 的掌舵下,这家软件巨头对开源软件进行了大量投资,包括收购、在某些产品中扩展对 Linux 的支持,以及开源其内部技术,如 .NET 框架。

Azure DevOps 对开源友好,但远不及 GitHub。该服务与 GitHub 有很大的重叠,但它的目标是成为一个管理 DevOps 的综合平台。这包括发布管理和软件开发生命周期的所有其他阶段,适用于大型和小型团队。多年来,GitHub 还扩展了其功能,成为开发和发布代码的引人注目的平台。

因此,为了进行比较,这实际上归结为客户在特定功能、可用性和定价模型方面的契合度。让我们深入研究其中的一些类别,看看它们是如何叠加的。

Microsoft Visual Studio Team Services (VSTS)

Azure DevOps 以前称为 Visual Studio Team Services(在此之前称为 Visual Studio Online),本质上是 Azure DevOps Server(以前称为 Team Foundation Server 或 TFS)的 Azure 云托管版本,Azure DevOps服务器是 Microsoft 的源代码和应用程序生命周期管理平台。

随着时间的推移,该产品所经历的变化,包括 2018 年的根本性品牌重塑和 2020 年的发布,不仅仅是一次品牌重塑活动。根本性变化的一个关键部分是 Microsoft 将各个 Azure DevOps 服务分开,以便 DevOps 团队更容易采用它们。这意味着,如果团队只需要 Azure Pipelines,他们可以只获得该 Azure 服务,而不会因不使用的服务而产生成本。Azure DevOps 中提供的产品包括:

  • Azure 板
  • Azure 管道
  • Azure 存储库
  • Azure Artifacts
  • 以及更多

Azure DevOps 为支持软件团队协作和持续交付/集成 (CI/CD) 提供了扩展功能,例如基于 Git 的源代码控制存储库(Bitbucket 等)、项目跟踪工具、遥测服务、Kubernetes 集成、Jenkins 服务器支持、简化的开发 IDE 等。

The Microsoft VSTS UI.资料来源:blogs.technet.microsoft.com。

其他功能包括 Microsoft Office 组件支持(例如 Excel 和 Project)以及特定于云的开发服务,例如云构建、云负载测试和 Application Insights:一种基于机器学习的工具,用于检测、诊断和修复 Web 应用程序/服务问题和性能问题。

GitHub的

GitHub 于 2008 年推出,是 Web 上首屈一指的 Git 存储库托管服务,它结合了 Git 的最佳源代码控制管理功能,并结合了基于云的代码共享、社交网络和广泛的在线协作者/开发人员社区。

GitHub 界面。资料来源:guides.github.com。


GitHub 被描述为社交编码平台,这是一个恰当的描述,因为该产品具有无数的社交功能,使其成为 Web 上最受欢迎的代码托管平台。事实上,它的大部分强大功能都围绕着它的协作和共享功能:就其本身而言,Git 是一个广受欢迎且功能强大的分布式版本控制系统,但 GitHub 将其提升到一个新的水平,允许用户公开合作项目,分叉项目进行实验和专业化,以及传播/分享想法, 以及其他功能。

该平台的其他值得一提的社交方面包括了解其他用户正在开发的内容、为开发人员编写各种“简历”以突出以前的工作,以及与其他开发人员联系的能力。

GitHub 为管理各种规模的软件项目提供了出色的支持,并提供了强大的功能集,主要围绕:

  • 代码管理:公共和私有存储库
  • 代码工作流程:GitHub Actions、GitHub Packages、代码审查、拉取请求、受保护的分支
  • 协作:管理协作者、问题、积压工作、项目板、里程碑、页面和 Wiki、GitHub 存储库见解、团队讨论、组织和团队管理
  • 安全性和合规性:安全警报、自动代码扫描、审核日志、GitHub Connect、LDAP
  • Marketplace 和集成:包括构建工具、Jira 等问题跟踪器、Docker 等容器平台

并行评分:Azure DevOps 与 GitHub

1. 能力集

这两款产品都是功能全面的平台,用于共享/跟踪代码和构建 CI/CD 软件,并且高度关注 Git,强调协作软件开发的不同方面。

Azure DevOps 拥有用于促进软件项目创建、开发、测试和管理的各种工具和服务,是适用于各种规模的开发团队的强大解决方案。

同样,GitHub 用于基于团队的软件开发的高级功能,例如项目问题跟踪、代码审查和各种社交功能,使其成为无数组织/项目的首选平台。

Azure DevOps 的服务与各种开发工具兼容,无论您使用何种框架或云。Azure Pipelines 提供适用于任何编程语言或云的持续集成和持续交付。您甚至可以将其连接到 GitHub 或任何其他 Git 存储库。使用 YAML 文件中定义的 Azure Pipeline,您可以在 Amazon AWS 和 Google Cloud Platform 上部署代码。其他服务(如 Azure Boards 和 Azure Repos)通过用于管理项目和 Scrum 工作项、专用存储库托管等的看板对此进行补充。DevOps 的这种扩展功能集在许多方面让人想起另一项 Git 源代码管理服务 Gitlab 近年来转向提供完整生命周期 DevOps 服务的方式。

GitHub 的功能集包括云版本的类似功能,其中 CI/CD 由 GitHub Actions 提供。如果需要本地托管,类似于 Azure DevOps Server,GitHub Enterprise 以自托管版本提供所有 GitHub 功能。要获得更多功能,包括通过自定义 GitHub Learning Lab 课程为您的团队提供持续学习,您可以升级到 GitHub One。

Azure 开发运营GitHub的
功能集5/55/5

2. 易用性

这两种产品都呈现出适中的学习曲线,尽管这对于普通团队来说可能不是什么问题(取决于所讨论的开发类型)。例如,GitHub 诞生于云端的血统和熟悉的协作/社交功能,让那些基本掌握 Git 并喜欢使用社交媒体工具的人来说变得轻而易举。以 Microsoft 为中心的开发人员、以前的 Visual Studio Online 用户和 Azure 云爱好者将立即对 Azure DevOps 的仪表板和各种开发/管理控制台感到宾至如归。

得益于与 Visual Studio、Eclipse、IntelliJ 和 Android Studio 等 IDE 的出色集成,Azure DevOps 使开发人员能够轻松地管理服务及其代码。另一方面,GitHub 的界面始终易于使用,并为用户提供优雅的体验。GitHub Desktop 使从桌面开发环境进行协作变得更加容易,并正式可用于 macOS 和 Windows。

Azure 开发运营GitHub的
易用性4/54/5

3. 社区支持

GitHub 在设计上占据了这一类别的蛋糕。如前所述,该产品是从头开始设计的,具有高度的社交性和社区性;因此,该产品的社区支持是无与伦比的。Azure DevOps 在以 Microsoft 为中心的开发人员和开源支持者中也拥有大量追随者,但在社区支持方面与 GitHub 相去甚远。

Azure DevOps 用户可以在 Stack Overflow 上找到来自社区的大量问题和答案,其中有许多针对 Azure DevOps 标记的问题。Microsoft 的 Azure DevOps 虚拟助手也提供支持。如果你有 Azure 支持计划,则可以获得更全面的技术支持。

>

GitHub 的情况略有不同,除了所有社区支持和在线文档外,所有产品都通过电子邮件提供支持。此外,GitHub Enterprise Cloud 客户可以通过注册 GitHub Premium Support 来获得增强的支持。

Azure 开发运营GitHub的
社区支持4/55/5

4. 释放速率

多年来,Azure DevOps Server 定期发布,作为此产品/服务的产物,Azure DevOps 是其许多功能添加的受益者。也就是说,Azure DevOps 是一个相对较新的产品,而 GitHub Enterprise 自 2011 年成立以来每月都会发布多个版本。

这些产品在发布 bug 修复和产品更新方面都发展得相当迅速。在过去几年中,Azure DevOps 的发布频率约为每月两次。功能通常会在进入云版本后不久进入 Azure DevOps Server(产品的本地版本)。

GitHub 通常每月也有多个版本,并且比 Azure DevOps 更频繁。这些涵盖了所有基本要素,包括安全更新和新功能更新。

Azure 开发运营GitHub的
释放速率4/55/5

5. 定价和支持

GitHub 和 Azure DevOps 在定价方面存在显著差异。Microsoft 的产品/服务对最多 5 个用户免费,并且可启动的私有存储库数量不受限制。Azure DevOps Server 提供免费试用版,允许你下载该产品并在本地试用。

在 GitHub 使用方面,所有公共开源项目都可以免费托管,只有私有存储库会产生费用。付费计划起价为每月 7 美元,供个人使用,具有无限的私有存储库,企业级最高起价为每位用户每月 21 美元(以 10 个用户的包装出售,按年计费)。企业计划允许您私下托管团队的代码 - 无论是在您自己的基础设施中还是在私有云中。

使用 Azure DevOps,您可以购买每用户许可证来获取服务捆绑包或单个服务的使用单位。例如,基本计划附带用户许可证,每位用户每月收费 6 美元,并允许您访问:

  • Azure 管道
  • Azure 板
  • Azure 存储库
  • Azure Artifacts

Azure DevOps Basic + Test Plans的用户许可证(包括对Test Plans服务的访问权限)的费用为每位用户每月 52 美元。

Azure 开发运营GitHub的
定价和支持4/54/5

6. API 和可扩展性

GitHub 提供了丰富、文档齐全的 REST API,用于与各种平台资源交互和作。所有 API 访问都通过 HTTPS 进行,数据以 JSON 格式发送/接收。同样,Azure DevOps 的 REST API 基于 OAuth、JSON 和服务挂钩,支持远程用户/帐户访问、构建功能、Git 存储库作、仪表板和小组件作等。

能够通过 API 与 DevOps 平台交互对于自动化工作流程以及围绕管理工作流程开发应用程序的独特用例非常重要,无论是为自己还是作为他人的产品。Azure DevOps 具有以以下编程语言提供的 API 的客户端库:

  • C# 和 .NET
  • Node.js (JavaScript)
  • 蟒
  • 去
  • 招摇 2.0
  • Web 扩展 SDK

GitHub 还提供了一个强大的 API,允许用户与他们 GitHub 产品交互以及创建 GitHub 应用程序。此外,从 GitHub API v4 开始,GitHub 采用了 GraphQL 来使请求更加灵活、高效,并且仅返回开发人员在其 API 调用中需要的数据,而不会产生传统 REST API 的开销。

Azure 开发运营GitHub的
API 和可扩展性5/55/5

7. 第三方集成

GitHub 具有无数集成,允许开发人员在平台上使用他们最喜欢的第三方工具和服务,从 Slack 和 HipChat 等流行的聊天解决方案到 Travis CI 和 Semaphore 等 CI/CD 产品。Azure DevOps 还具有许多扩展(例如 Slack、Octopus Deploy 甚至 GitHub),用于将产品/服务扩展到其核心功能之外。

与 Azure DevOps 通信的可用工具范围不仅包括市场扩展,还包括:

  • 桌面客户端开发人员工具
  • Office 集成工具(例如 Excel,对具有批处理作业的用户很有用)
  • 基于 Web 的工具
  • 命令行工具
  • REST API 接口

与 Azure DevOps 一样,在市场集成中,您可以找到 GitHub 的各种集成,GitHub Apps and Actions 可用于从持续集成到 IDE 支持和代码审查的所有内容。

Azure 开发运营GitHub的
第三方集成5/55/5

8. 使用它的公司

GitHub 被全球的政府实体和当今大多数领先的商业科技企业使用:Google、Adobe、Twitter、PayPal、Facebook、LinkedIn、Yahoo 等。Azure DevOps 的客户名单虽然值得尊敬,但并不像 GitHub 那样杰出:Shell、Alaska Airlines、Hawaiian Airlines、Ordina 和 OSIsoft 等。

注意使用这两个竞争产品的公司和开发人员对它们的评价可能有助于您做出自己的选择。在评论中,用户注意到 Azure DevOps 是或拥有:

  • 功能齐全且功能强大
  • 拥有庞大的扩展生态系统
  • 构建服务器、项目管理、CI/CD 的一站式商店
  • 出色的 Azure 集成

对于 GitHub,评论中引用的主要优势往往是:

  • 易用性
  • 世界各地的开发人员都在使用
  • UI 最小,允许您专注于重要的事情
  • 现成的集成和工具
  • 易于整合到您可能拥有的任何工作流程中
  • 可靠
Azure 开发运营GitHub的
使用它的公司4/55/5

9. 学习曲线

当谈到 GitHub 时,那些有 Git 经验的人会发现该产品很容易上手。尽管其界面相对直观且设计精良,但大量的小部件和工具可能会使 Azure DevOps 难以掌握。此外,它的存储库管理功能不如 Github 直观。

为了帮助您学习这些工具,您可以使用 Microsoft 和 GitHub 上提供的官方文档和培训材料。例如,Microsoft 提供了适用于 Azure DevOps 的教程和视频。Microsoft Docs 也有出色的实践学习教程,但是,专门用于 Azure DevOps 的教程相对较少。

GitHub 在其 Learning Lab 中提供了多门用户友好且有趣的课程,使产品的学习曲线更易于浏览。这些动手教程将教您从基础知识到高级高级用户任务的所有内容,您可以使用该平台的各种功能完成。

Azure 开发运营GitHub的
学习曲线3/54/5

10. 安全评级

Azure DevOps 网站存在许多缺点,使其网站边界安全性不太理想:缺乏 HTTP 严格的传输安全性、安全 cookie 和不安全的 SSL/TLS 版本。另一方面,GitHub 因其增强的网站边界安全性而获得了 808 分(满分 950 分)的出色安全评分。

Azure DevOps 站点稍显落后,安全评分为 751 分(满分 950 分)。该分数在我们的综合网络安全评级中获得 B 级。

安全评级是 UpGuard 维护的标准化系统,目的是在具有在线足迹的组织中标准化网络安全评级。该分数反映了组织在网络安全合规性、完整性和安全性方面的能力。满分是 950,0 是最低的。分数越高,组织在网络安全状况方面的表现就越好。

在此处阅读有关安全评级的更多信息。

Azure 开发运营GitHub的
安全评级751808

记分板和摘要

Azure 开发运营GitHub的
功能集5/55/5
易用性4/54/5
社区支持4/55/5
释放 速率4/55/5
定价和支持4/54/5
API 和可扩展性5/55/5
第三方集成5/55/5
使用它的公司4/55/5
学习曲线3/54/5
安全评级4/55/5
总4.2/54.7/5

简而言之,如果目的是与整个开发人员社区一起构建开源项目并进行协作,那么 GitHub 是理想的平台。只要知道,如果您决定将代码存储库私有化,您将需要付费。显然,如果你是一个企业团队,开发人员已经习惯了在平台上工作,那么 GitHub 也是一个近乎理想的选择。Microsoft 的 Azure DevOps 是一项极具竞争力的产品/服务,具有强大的应用程序生命周期管理工具,非常适合以 Microsoft 为中心的商店和 Azure 托管的应用程序。最后但并非最不重要的一点是,两者都价格合理,并附带了大量集成,可与任意数量的工具链组合相吻合。

相关文章