课程 AZ-400T00-A: Designing and Implementing Microsoft DevOps solutions

本课程提供设计和实施 DevOps 流程和最佳做法的知识和技能。学生将学习如何规划 DevOps、使用源控件、为企业扩充 Git、合并工件、设计相依性管理策略、管理密码、实施持续整合、实施容器组建策略、设计发行策略、设定发行管理工作流程、实施部署模式并优化回馈机制。

受众概况

本课程的学生对实施 DevOps 流程或通过 Microsoft Azure DevOps Solutions 认证考试感兴趣。

工作角色: DevOps 工程师

获得的技能

  • 规划共享目标和时间表的转换计划
  • 选择一个项目并识别项目指标和 KPI
  • 建立团队和敏捷的组织结构

先决条件

关于 Azure、版本控制、敏捷软件开发和核心软件开发原则的基础知识。拥有软件提供组织的工作经验会很有帮助。

课程大纲

模块 1: 规划 DevOps

课程

  • 转换规划
  • 专案选择
  • 团队结构
  • 迁移到 Azure DevOps

实验: 使用 Azure Boards 进行敏捷规划和组织者

学完本模块后,学生将能够:

  • 规划共享目标和时间表的转换计划
  • 选择一个项目并识别项目指标和 KPI
  • 建立团队和敏捷的组织结构
  • 设计工具集成策略
  • 设计许可证管理策略(例如 VSTS 用户)
  • 设计从工作项到工作软件的端到端可追溯性策略
  • 设计身份验证和访问策略
  • 设计集成内部和 Cloud 资源的策略

模块 2: 源控件入门

课程

  • 什么是源控件
  • 源控件的好处
  • 源文件控制系统的类型
  • Azure Repos 简介
  • GitHub 简介
  • 从 Team Foundation 版本控制(TFVC)迁移到 Azure Repos 中的 Git
  • 在 Azure Repos 中向 Git 进行验证

实验: 用 Git 进行版本控制

学完本模块后,学生将能够:

  • 描述使用源控件的好处。
  • 描述 Azure Repos 和 GitHub
  • 从 TFVC 迁移到 Git

模块 3: 扩充企业 DevOps 的 Git

课程

  • 如何构建您的 Git 储存机制
  • Git 分支工作流程
  • 与 Azure Repos 中的提取要求进行共同作业
  • 为什么要关心 GitHooks
  • 促进内部来源

实验: 提取要求的程序代码检阅

学完本模块后,学生将能够:

  • 说明如何构建 Git 储存机制
  • 说明 Git 分支工作流程
  • 利用提取要求进行共同作业和程序代码检阅
  • 利用自动化的 Git 挂勾
  • 使用 git 促进整个组织的内部来源

模块 4: 合并成品并设计相依性管理策略

课程

  • 封装相依性
  • 封装管理
  • 迁移和合并工件

实验: 更新套件

学完本模块后,学生将能够:

  • 推荐工件管理工具和实践方法
  • 提取通用包,以实现共享和重用
  • 迁移和合并工件
  • 迁移和整合源控件措施

模块 5: 使用 Azure Pipelines 实施持续整合

课程

  • DevOps 中的管线概念
  • Azure Pipelines
  • 评估托管与私人代理程序的使用
  • 代理程序集区
  • 管线与并行
  • Azure DevOps 和开源项目(公用项目)
  • Azure Pipelines YAML vs Visual Designer
  • 持续整合概述
  • 实施组建策略
  • 与 Azure Pipelines 整合
  • 将外部源控件与 Azure Pipelines 整合
  • 设定私人的代理程序
  • 分析和整合 Docker 多阶段组建

实验: 启用与 Azure Pipelines 的持续整合

实验: 将外部源控件与 Azure Pipelines 整合

学完本模块后,学生将能够:

  • 实施和管理构建基础架构
  • 解释为什么持续整合很重要
  • 使用 Azure DevOps 实施持续整合

模块 6: 管理应用程序设定和密码

课程

  • 安全性简介
  • 实施安全且合规的开发流程
  • 重新考虑应用程序配置数据
  • 管理机密、令牌和证书
  • 实施用于管理管线中的安全性和合规性的工具

实验: 将 Azure Key Vault 与 Azure DevOps 整合

学完本模块后,学生将能够:

  • 管理应用程序设定和密码
  • 实施用于管理管线中的安全性和合规性的工具

模块 7: 管理程序代码质量和安全策略

课程

  • 管理程序代码质量
  • 管理安全策略

实验: 使用 Azure DevOps 和 SonarCloud 管理技术债务

学完本模块后,学生将能够:

  • 管理程序代码质量,包括: 技术债务 SonarCloud 和其他工具解决方案
  • 使用开放源和 OWASP 管理安全策略

模块 8: 实施容器组建策略

课程

  • 实施容器组建策略

实验: 使用 Azure 对现有的 ASP.NET 应用程序进行现代化

学完本模块后,学生将能够:

  • 实施容器策略,包括容器与虚拟机的区别以及微服务如何使用容器
  • 使用 Docker 实施容器

模块 9: 管理成品版本设定、安全性和合规性

课程

  • 封装安全性
  • 开放源软件
  • 整合授权和弱点扫描
  • 实施版本控制策略

实验: 使用 WhiteSource 管理开源安全性和授权

学完本模块后,学生将能够:

  • 检查开源软件包的安全性和授权合规性,以符合公司标准
  • 配置编译管线以访问包安全性和授权分级
  • 配置对包源的安全访问
  • 检查代码库以识别可以转换为包的代码依赖性
  • 确定并推荐整个解决方案中的标准化软件包类型和版本
  • 重构现有构建管道以实现发布包的版本策略
  • 管理安全性和合规性

模块 10: 设计发行策略

课程

  • 持续传递简介
  • 发布策略建议
  • 建立高质量的发布管道
  • 选择部署模式
  • 选择正确的发布管理工具

学完本模块后,学生将能够:

  • 区分发布和部署
  • 定义发布管线的组件
  • 解释设计发行策略时要考虑的事项
  • 将发行与发行流程进行分类,并概述如何控制两者的质量
  • 描述发行网关的准则以及如何处理版本说明与文档
  • 解释传统意义上和现代意义上的部署模式
  • 选择版本管理工具

模块 11: 设定发行管理工作流程

课程

  • 建立发布管道
  • 布建和设定环境
  • 管理和模块化工作和模板
  • 将密码与发布管道整合
  • 配置自动化整合和功能测试自动化
  • 自动化检查健康情况

实验:使用 YAML 将管道配置为代码

实验:使用 Azure 密钥保存库在管线中设定密码

实验:设定和执行功能测试

实验:使用 Azure Monitor 作为释放网关

实验:建立发布控制面板

学完本模块后,学生将能够:

  • 解释 Azure DevOps 和其他版本管理工具中使用的术语
  • 描述什么是构建与发布任务,它可以做什么以及一些可用的部署工作
  • 对代理,代理队列和代理池进行分类
  • 说明为什么有时您需要在一个发布管道中进行多个发布作业
  • 区分多个代理和多个配置发布作业
  • 在您的发布管道中使用发布变量和阶段变量
  • 使用服务联机安全部署到环境
  • 将测试内嵌在管道中
  • 使用警报、服务钩子和报告,列出检查管线健康情况和发行的不同方法
  • 建立发布网关

模块 12: 实施适当的部署模式

课程

  • 部署模式简介
  • 实施蓝绿部署
  • 功能切换
  • Canary 发行
  • Dark Launching
  • AB 测试
  • 渐进式曝光部署

实验:使用 LaunchDarkly 和 Azure DevOps 进行功能标帜管理

学完本模块后,学生将能够:

  • 描述部署模式
  • 实施蓝绿部署
  • 实施 Canary Release
  • 实施渐进式曝光部署

模块 13: 实施将系统回馈路由到开发团队的流程

课程

  • 实施工具来跟踪系统使用情况、功能使用情况和流量
  • 实施移动应用程序毁损报告数据的路由
  • 开发监视和状态控制面板
  • 整合和配置票证系统

实验:监控应用程序效能

学完本模块后,学生将能够:

  • 配置用于客户端应用程序的崩溃报告集成
  • 开发监视和状态控制面板
  • 实现客户端应用程序崩溃报告数据的路由
  • 实施工具来跟踪系统使用情况、功能使用情况和流量
  • 通过开发团队工作管理整合和配置票证系统

模块 14: 基础结构和配置 Azure 工具

课程

  • 基础结构即代码和配置管理
  • 使用 ARM 模板建立 Azure 资源
  • 使用 Azure CLI 模板建立 Azure 资源
  • 使用 Azure PowerShell 建立 Azure 资源
  • 预期状态配置(DSC)
  • 具有 DevOps 的 Azure 自动化
  • 其他自动化工具

实验:使用资源管理员模板的 Azure 部署

学完本模块后,学生将能够:

  • 将基础结构和配置套用为代码准则。
  • 使用 Microsoft 自动化技术(例如 ARM 模板、PowerShell 和 Azure CLI)部署和管理基础结构

模块 15: Azure 部署模型和服务

课程

  • 部署模块和选项
  • Azure 基础结构即服务(IaaS)服务
  • Azure 平台即服务(PaaS)服务
  • 无服务器和 HPC 计算机服务
  • Azure Service Fabric

实验:将Dockerized Java应用程序部署到Azure Web App for Containers

学完本模块后,学生将能够:

  • 描述 Azure 可用的部署模型和服务

模块 16: 建立和管理 Kubernetes 服务基础结构

课程

  • Azure Kubernetes服务

实验:将多容器应用程序部署到 Azure Kubernetes 服务

学完本模块后,学生将能够:

  • 部署和配置受管理 Kubernetes 集群

模块 17: Azure 提供第三方基础结构即代码工具

课程

  • Chef
  • Puppet
  • Ansible
  • Terraform

实验:基础结构即代码

实验:使用 Terraform 和 Azure Pipelines 自动化云中的基础结构部署

学完本模块后,学生将能够:

  • 使用 Azure 的第三方工具和服务来部署和配置基础结构,例如 Chef、Puppet、Ansible 和 Terraform

模块 18: 在您的基础结构中实施合规性和安全性

课程

  • DevOps 的安全性和合规性准则
  • 描述 Azure 安全中心

实验:在 Azure DevOps 管线中实施安全性和合规性

学完本模块后,学生将能够:

  • 为发行管线和应用程序基础结构定义基础结构和配置策略以及适当的工具组
  • 在您的应用程序基础结构中实施合规性和安全性

模块 19: 推荐和设计系统回馈机制

课程

  • 内部循环
  • 持续实验的心态
  • 设计最佳做法以衡量终端用户满意度
  • 设计流程以收集和分析用户反馈
  • 设计流程以自动执行应用程序分析

实验:Azure DevOps 与 Teams 之间的整合

学完本模块后,学生将能够:

  • 设计最佳做法以衡量终端用户满意度
  • 设计流程以收集和分析来自外部来源的用户反馈
  • 为客户端应用程序崩溃报告数据设计路由
  • 推荐监控工具和技术
  • 推荐系统和功能使用情况跟踪工具

模块 20: 优化回馈机制

课程

  • 网站可靠性设计
  • 分析遥测以建立基线
  • 执行持续进行的调整以减少无意义或不可操作的警报
  • 分析警报以建立基线
  • 无过失的追溯和合理的文化

学完本模块后,学生将能够:

  • 分析警报以建立基线
  • 分析遥测以建立基线
  • 执行实时站点审核并捕获系统中断的反馈
  • 执行持续进行的调整以减少无意义或不可操作的警报