Microsoft托管代理和自托管代理之间的区别及其适用性

时间:2020-05-28 07:32:14

标签: azure azure-devops azure-pipelines

我是Azure管道的新手,很想知道Microsoft托管代理和自托管代理之间的确切区别。还需要知道在什么情况下我们应该使用任何一个代理。这些代理与本地部署和云部署有关系吗?

1 个答案:

答案 0 :(得分:2)

Microsoft托管的代理:

使用Microsoft托管的代理,可以为您进行维护和升级。 每次运行管道,您将获得一个新鲜虚拟机。使用一次后,虚拟机将被丢弃。 Microsoft托管的代理可以直接在VM或容器中运行作业。

预定义的Azure Pipelines代理程序池提供了多个虚拟机映像供您选择,每个映像都包含各种工具和软件。通过选择table中的Included Software链接,可以查看每个托管代理的已安装软件。

Microsoft托管的代理在安全的Azure平台上运行。但是,您必须注意以下安全注意事项。

  • 尽管Microsoft托管的代理在Azure公共网络上运行,但它们 未分配公共IP地址。因此,外部实体无法 定位到Microsoft托管的代理。
  • Microsoft托管的代理在单独的VM中运行,这些VM是 每次运行后重新成像。每个代理商专用于一个 组织,每个VM仅托管一个代理。
  • 在管道上运行管道有很多好处 从安全角度来看,由Microsoft托管的代理。如果你跑 管道中不受信任的代码,例如来自fork的贡献, 在Microsoft托管的代理上运行管道比在管道上运行管道更安全 位于企业网络中的自托管代理。
  • 当管道需要访问您背后的公司资源时 防火墙,您必须白名单 Azure的IP地址范围 地理。 IP范围可能会增加您的曝光率 地址相当大,并且由于该范围内的机器可以属于 以及其他客户。防止这种情况的最好方法是避免 需要访问内部资源。
  • 托管的图像不符合CIS hardening benchmarks。使用 CIS加固的映像,您必须创建自托管代理或 标度设定代理。

有关功能限制以及有关托管代理的其他详细信息,请参阅此document

对于许多团队来说,这是运行工作的最简单方法。您可以先尝试一下,看看它是否适用于您的构建或部署。如果没有,则可以使用自托管代理。

自托管代理:

自托管代理使您可以更好地控制构建和部署所需的从属软件。此外,机器级别的缓存和配置会在每次运行时保持不变,这可以提高速度

您可以在Linux,macOS,Windows计算机或Docker容器上安装代理。

私人代理的绩效优势:

  • 如果使用自托管代理,则可以运行增量构建。对于 例如,如果您定义了不清理仓库的管道,并且 没有执行干净的构建,您的构建通常会运行 快点。当您使用Microsoft托管的代理时,您不会得到这些 之所以受益,是因为在构建或发布之后销毁了代理 管道已完成。
  • Microsoft托管的代理可能需要更长的时间才能开始构建。而 通常只需几秒钟即可将您的工作分配给 Microsoft托管的代理,有时可能需要几分钟才能完成 根据我们系统上的负载分配代理程序。

摘要:托管代理和自托管代理之间有很多区别,您可以根据需要选择合适的代理。有关详细信息,请参阅documentation