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

问题描述 投票:0回答:1

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

azure azure-devops azure-pipelines
1个回答
1
投票

Microsoft托管的代理:

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

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

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

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

关于功能限制和有关托管代理的其他详细信息,请参考此document

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

自托管代理:

自托管代理为您提供了更多控制权,以安装构建和部署所需的从属软件。此外,机器级别的缓存和配置会在运行之间持续存在,这可以boost speed

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

私人代理的绩效优势:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.