课程说明
本高级课程演示了如何将测试和安全功能集成到持续集成(CI)、持续交付(CD)和持续部署(CD)管道中。您将学习如何在应用程序生命周期的不同阶段实施高级测试实践,从而以更安全、更可靠的方式交付应用程序更新。您将学习如何使用 AWS CodeCommit、AWS CodeBuild、AWS CodeDeploy 和 AWS CodePipeline 等 AWS DevOps 工具,以便实施高级测试实践。
您还将学习如何设置审查机制和执行静态代码分析,从而在开发的早期便能发现问题。您将使用 AWS Lambda 和 Amazon CloudWatch 探索各种类型的测试,例如安全测试、合成测试和负载测试。
- 课程级别:高级
- 时长:2.5 小时
活动
本课程包括视频介绍、演示、资源链接和知识检查。
课程目标
在本课程中,您将学习以下内容:
- 说明在 CI/CD 管道中自动执行测试的益处
- 描述将应用程序更改提升到代码存储库的方法,并说明拉取请求的过程
- 创建用于 CI 测试的 buildspec.yaml,例如单元测试、安全测试和代码检查
- 使用静态代码分析来确定安全或代码问题
- 说明如何在持续交付期间执行不同类型的测试,包括集成测试、负载测试和性能测试
- 使用 AWS Lambda 和 Amazon CloudWatch 警报,应用合成测试来测试持续的服务可用性
- 在持续部署期间,应用 Canary 测试来确定部署运行状况
- 演示确定应用程序状态的管道批准触发的测试
- 在持续部署期间发生服务错误时管理管道流
目标受众
本课程面向:
- DevOps 工程师
- DevOps 开发人员
前提条件
我们建议符合以下条件的人员学习本课程:
- 已完成 System Operations on AWS 或 DevOps Engineering on AWS 课程
- 具备使用一种或多种高级编程语言(如 C#、Java、PHP、Ruby 或 Python 等)的工作经验
- 具备使用命令行管理 Linux 或 Windows 系统的中级知识
- 具备使用 AWS 管理控制台和 AWS Command Line Interface(AWS CLI)的 AWS 使用经验
- 熟练掌握 DevOps 方法和实践
课程大纲
模块 1:测试概览
- 确定开发中测试策略的益处
- 使用测试金字塔描述测试的不同阶段
- 使用测试覆盖范围设计有效的测试计划
- 认识到在开发生命周期中自动执行测试的益处
模块 2:DevOps 审查
- 确定能够更快修订应用程序的 DevOps 实践
- 应用 AWS CodeCommit、AWS CodeDeploy、AWS CodeBuild 和 AWS CodePipeline 等 AWS 工具的知识,构建 CI/CD 管道并实现自动化
- 在 CI/CD 管道的每个阶段使用 AWS 无服务器选项和第三方工具
模块 3:持续集成
- 建立代码标准作为对开发实践的要求
- 在 CI 阶段实施各种测试方法
- 应用单元测试和静态代码分析的益处
- 应用测试驱动开发(TDD)和行为驱动开发(BDD)来创建有效的测试策略
- 使用 Amazon CodeGuru 审查和提高代码质量
- 演示:静态代码分析
- 演示:执行拉取请求
模块 4:持续交付
- 在持续交付阶段,根据需要应用测试方法
- 认识功能测试、回归测试和性能测试的益处
- 使用第三方工具或无服务器选项实施测试方法
- 执行合成测试以确保服务的连续性
- 自动执行安全测试以实施安全审计规则
- 演示:合成测试
模块 5:持续部署
- 在持续部署阶段,根据需要应用测试方法
- 使用运行状况检查作为策略来避免部署故障
- 执行批准触发测试以自动执行持续部署
- 使用 AWS Lambda 来自动批准
- 应用 AWS CodeDeploy 提供的部署选项
- 实施部署类型,包括分段和 Canary 版本部署
- 通过在阶段之间禁用和重新启用转换来控制管道流
- 演示:Amazon CloudWatch Synthetics
- 演示:停止部署
模块 6:课程总结
- 回顾并确定课程主题中的各种资源
- (可选)使用自己的 AWS 账户中的示例代码创建沙盒环境,用于测试知识掌握情况