我一直在对Microsoft最近发布的Azure DevOps解决方案进行一些研究。

某些背景下,我已经使用Jenkins多年了,最近开始探索容器化兔子洞(Docker,Kubernetes,等),

我不确定Azure DevOps Pipelines的某些方面,并且获得一些反馈和清晰信息真是太棒了。

TL; DR


Azure DevOps现在是否与Jenkins竞争,他们以前通过Jenkins的开源插件支持Jenkins社区吗?
我是否可以完全在内部托管Azure DevOps Pipelines,而不仅仅是代理?
是否可以在Azure DevOps Pipelines中使用自托管的git解决方案(如内部GitLab)?

较长的版本


Microsoft为Jenkins开发了各种开源插件,例如Azure App Service Jenkins插件。有很多例子。在我看来,Azure DevOps(特别是管道)解决方案现在正在直接与Jenkins竞争,或者我缺少什么?
对我来说,似乎没有办法在内部或内部托管Azure Pipelines解决方案我选择的云提供商。是的,我可以在执行大量工作的地方托管我自己的代理,但是管道逻辑的实际执行发生在Microsoft的服务器上。然后我必须支付并行工作的费用。我正在将其与本地(或首选的云提供商)托管的Jenkins实例进行比较,该实例不需要付款,并且也没有第三方知道我们的管道正在运行。我想念什么吗?
据我所知,Azure Pipelines不支持自托管存储库,我将代码放在GitHub或Azure仓库上,仅此而已。因此,如果我有一个私人托管的GitLab实例,我什至不能使用此Pipelines解决方案?

感谢您的任何输入。

评论

我可以建议将这个问题分成几个单独的问题吗?目前的问题似乎更像是讨论观点的邀请。如果您可以将它们分为单个问题,则可以更好地回答。

嗨,您对这些问题有任何答案吗?

Azure Devops不能在内部托管,但是TFS可以做到这一点,但更新速度稍慢。我们在Prem及其出色的上使用TFS 2018

这是一个真实的问题吗?对我来说,它看起来像是没有实际研究的FUD。

好问题!您是否对问题有任何答案?如果是这样,请写下来,以便社区也可以从中受益。

#1 楼

我也想从比我自己更权威的来源那里获得一些澄清(我肯定也对FUD感到内)。

我一直在寻求使用Kubernetes部署到Azure。我同样感到困惑,但我认为这是因为没有一条明确的道路。我不能代表微软,但他们对云的态度似乎是他们乐于成为“所有人的万物”。如果您使用的是Azure,Microsoft似乎对您如何到达那里没有强烈的意见。

微软正在积极尝试发展;例如
Linux现在在Azure中占据主导地位



显然,Azure DevOps部署管道完全可以实现Jenkins的功能-因此,它是竞争对手。并行流水线的Azure运维前期定价也有些令人反感。一方面,Azure DevOps似乎是Visual Studio Team Services的重新命名。因此,对于已经在传统Microsoft开发生态系统中的人们来说将是熟悉的。同时,Microsoft正在努力地采用传统上不是Microsoft的技术(Go,Java,Node.js,Python,Ruby,PHP等)。

现在还很早,但是现在毫不奇怪,Azure DevOps管道应首选Azure Repos和GitHub的Microsoft Git属性。与BitBucket管道更喜欢BitBucket和GitLab管道更喜欢GitLab的方式相同。


同时;

Azure Marketplace提供了Azure部署插件随附的Jenkins部署

Azure DevOps团队已经开发了许多Jenkins插件。此外,


; Microsoft已拥有支持Kubernetes相关项目Helm和Draft。 Helm是Kubernetes的软件包经理。您甚至可以使用Helm将Jenkins安装部署到Kubernetes中。

-

看到有人权衡使用Azure DevOps管道在Azure诗句中运行自己的Jenkins的收益,成本和工作量,这会很有趣。

...然后是Jenkins-X。

所以看来我们有很多选择和决定要做。

#2 楼

在回答第2部分(也许)时,似乎有很多人建议将其作为Jenkins的替代品,尽管有大量文档表明它们可以一起使用(和在此使用)。但是,当与Jenkins一起使用时,它似乎更侧重于部署桥。我希望我可以像Jenkins和AWS CodeBuild一样,将它用作Jenkins的编排代理。
我还没有任何迹象表明我可以这样做,但是也许。 。
尽管如此,多云部署还是非常有趣的...

#3 楼


是的,因为Azure Pipelines可以完成Jenkins的工作。但是,您不必将婴儿与洗澡水一起扔出去。 Microsoft继续定位其平台,以便可以与几乎所有现有安装进行集成。许多组织在难以更改的工具上进行了大量投资。微软没有采取全有或全无的立场,而是拥护标准和拥有自己的心态,为您提供了实现工具的最终选择。
从技术上讲,代理是您的管道。任务在管道中针对目标的代理上执行。您在门户网站中配置的就是管道将执行的步骤。代理下载执行任务所需的工具/扩展。此外,使用新的YAML管道,这些管道是在代码存储库中定义的。就托管而言,您可以完全在内部,在任何云提供程序中托管Azure DevOps Server,也可以在Azure VM和Azure SQL的组合中托管Azure DevOps Server。
Azure DevOps Services支持使用常规编辑器或通用Git存储库。如果当前使用Azure DevOps Server(本地),则同时使用YAML和经典编辑器。您可以通过安装扩展来添加GitLab存储库集成。