公司动态

AZ-400管道风格对比:YAML管道vs经典管道、托管代理vs自托管代理,到底怎么选?

📅 2026/8/19 20:33:28
AZ-400管道风格对比:YAML管道vs经典管道、托管代理vs自托管代理,到底怎么选?
AZ-400管道风格对比YAML管道vs经典管道、托管代理vs自托管代理到底怎么选【免费下载链接】AZ400-DesigningandImplementingMicrosoftDevOpsSolutionsAZ-400 Course Repository for Labs and Demos.项目地址: https://gitcode.com/gh_mirrors/az/AZ400-DesigningandImplementingMicrosoftDevOpsSolutions备考AZ-400Designing and Implementing Microsoft DevOps Solutions或刚接手Azure DevOps项目时几乎每个人都会遇到同一个灵魂拷问管道Pipeline到底用YAML管道还是经典管道代理Agent到底用托管代理还是自托管代理这两个选择看似简单却直接决定了你的CI/CD架构、维护成本和团队协作方式。本篇文章基于AZ-400官方实验仓库用最直观的对比表格和实战步骤帮你彻底搞懂四种组合的适用场景一次选对不返工。为什么管道风格和代理选择如此重要Azure DevOps的CI/CD体系由两大部分组成管道定义Pipeline Definition描述构建和发布流程和代理池Agent Pool提供实际执行任务的计算资源。AZ-400考试大纲中这两块内容分别对应配置代理池和理解管道风格与以YAML配置管道即代码两个核心实验。选错任何一项轻则维护成本翻倍重则让整个发布流程陷入黑盒困境。一、YAML管道 vs 经典管道两种管道风格全面对比YAML管道Pipeline as Code凭什么成为主流YAML管道把CI/CD流程写成仓库里的.yml文件与源代码放在一起管理。它的核心优势非常明显版本可控管道定义和代码同仓库、同分支、同Pull Request评审每一次改动都有历史记录。复用性强支持模板Templates、变量组和条件表达式多项目间可以共享管道片段。多阶段编排一个YAML文件即可串联构建Build、部署Deploy多个Stage还支持环境审批Approvals等检查机制。在配置管道即代码实验中你只需要把eshoponweb-ci.yml提交到仓库的.ado目录然后在 Pipelines 界面选择Existing Azure Pipelines YAML File即可完成管道创建全程零界面拖拽。经典管道Classic Release Pipeline还有用武之地吗经典管道采用可视化设计器Visual Designer拖拽任务构建和发布分离管理。虽然看起来过时但在以下场景依然有优势团队完全没有代码化习惯业务人员也能上手维护。依赖成熟的发布门禁Quality Gates、手动审批流等高级功能。历史遗留项目迁移成本过高。值得注意的是在使用发布门禁控制部署实验中提到Azure DevOps可以在项目设置中关闭经典发布管道创建开关微软推动YAML化的意图非常明显。新项目无脑选YAML管道老项目视维护成本决定迁移时机。YAML管道 vs 经典管道快速对比表对比维度YAML管道经典管道定义方式仓库内.yml文件可视化设计器版本管理随代码走天然支持分支策略独立于代码需手动管理多阶段编排支持Stage/Job/Step三级结构构建与发布分离模板复用支持模板与变量组支持任务组学习门槛需掌握YAML语法界面友好但配置分散适用场景新项目、DevOps成熟团队遗留项目、非技术维护者二、托管代理 vs 自托管代理代理池选择指南无论选哪种管道风格最终都需要代理Agent来跑任务。代理可以运行在宿主机的操作系统上也可以运行在容器里而代理的来源只有两种微软帮你管好的托管代理和你自己搭的自托管代理。托管代理Microsoft-hosted Agent的最大优点在YAML管道中一行vmImage就能指定托管代理例如pool: vmImage: ubuntu-latest托管代理的优势在于零运维微软维护操作系统镜像、预装常用SDK和工具用完即走、按分钟计费。对于标准化的构建任务如.NET还原、编译、测试、发布托管代理是最省心的选择。AZ-400实验中的CI管道默认就使用ubuntu-latest镜像。自托管代理Self-hosted Agent适合什么场景当你遇到以下情况就该考虑自托管代理了需要特定软件或证书比如内网私有源、专用编译工具链、商业许可证校验。数据合规要求代码和构建产物不允许离开公司网络。构建任务耗时且频繁长期跑满托管代理配额自托管代理的固定成本更划算。需要访问内网资源数据库、测试环境、Kubernetes集群等内网服务。如何创建自托管代理池保姆级步骤准备一台机器可以是Azure VM参考创建虚拟机也可以是本地服务器。在Azure DevOps中创建代理池进入项目设置 → Pipelines → Agent Pools → Add pool选择Self-hosted类型命名如eShopOnWebSelfPool。下载代理并配置在代理池的 Agents 标签页点击 New agent 下载对应平台安装包解压后运行config.cmdWindows或config.shLinux依次填入组织URL、PAT令牌和代理池名称。验证代理状态回到 Agents 标签页看到绿色圆点且状态为 Idle空闲说明自托管代理已就绪。在YAML管道中指定自托管代理池把vmImage替换为代理池名称即可甚至可以加上demands精确匹配特定代理pool: name: eShopOnWebSelfPool demands: Agent.Name -equals eShopOnWebSelfAgent三、AZ-400实战结合eShopOnWeb项目一次练会四种选择纸上谈兵不如动手验证。你可以直接克隆AZ-400实验仓库https://gitcode.com/gh_mirrors/az/AZ400-DesigningandImplementingMicrosoftDevOpsSolutions按以下顺序完成练习先体验托管代理完成启用Azure Pipelines持续集成实验用ubuntu-latest跑通CI理解YAML管道的基础语法和PR验证。再挑战自托管代理完成配置代理池和理解管道风格实验亲手搭建VM、创建代理池、把管道切换到自托管代理并观察运行差异。最后打通多阶段部署在配置管道即代码实验中给YAML管道添加Deploy Stage和环境审批体验完整的CI/CD闭环。总结四种组合到底怎么选场景推荐组合理由标准开源项目、通用技术栈YAML管道 托管代理零运维、可复现、开箱即用企业内网、强合规要求YAML管道 自托管代理数据不出网管道仍代码化遗留系统、非技术维护者经典管道 托管代理界面直观迁移成本最低高性能专用构建经典/YAML管道 自托管代理硬件可控满足特殊依赖最后给一个AZ-400备考小贴士考试中关于管道风格和代理类型的题目本质都在考察可维护性与成本的权衡。牢记新项目选YAML、标准构建选托管、特殊依赖选自托管这个口诀选择题基本不会丢分。现在就去克隆实验仓库动手跑一遍吧实践一次比背十遍文档都管用【免费下载链接】AZ400-DesigningandImplementingMicrosoftDevOpsSolutionsAZ-400 Course Repository for Labs and Demos.项目地址: https://gitcode.com/gh_mirrors/az/AZ400-DesigningandImplementingMicrosoftDevOpsSolutions创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考