本指南将帮助游戏开发人员实施编码化、模块化和无服务器分析管道,从游戏客户端和后端服务摄取遥测事件。该指南涉及近乎实时的分析和批量分析使用案例。借助 AWS Cloud Development Kit(AWS CDK),您可以跨多个 AWS 账户和区域持续集成和部署管道。此外,本指南中的无服务器服务提供了一种经济高效的游戏开发方法。部署此指导模板后,您就可以收集和查询玩家数据、收集见解并改进您的游戏。
请注意:[免责声明]
架构图
-
架构
-
DataOps CI/CD
-
架构
-
此架构图显示了现代化 DataOps 管道的概览。对于 DataOps 持续集成和持续部署(CI/CD)管道,请打开另一个选项卡。
第 1 步
将游戏遥测事件从数据创建者发送到 AWS Cloud。第 2 步
使用 Amazon Kinesis Data Streams 从游戏中捕获流数据,并使用 Amazon Kinesis Data Firehose 和适用于 Apache Flink 的亚马逊托管服务近乎实时地处理数据。第 3 步
通过 Amazon API Gateway 提供 REST API 端点以注册数据生产者。将游戏配置和 API 访问密钥存储在 Amazon DynamoDB 中。第 4 步
在适用于 Apache Flink 的亚马逊托管服务中捕获流式传输事件数据。在 Amazon CloudWatch 中发布自定义指标。第 5 步
根据 CloudWatch 中的自定义指标创建操作控制面板和警报。第 6 步
使用 Amazon Simple Notification Service(Amazon SNS)向数据使用者提供关键警报通知。第 7 步
使用 Kinesis Data Firehose 处理批量遥测数据。第 8 步
将原始遥测数据和处理后的遥测数据存储在 Amazon Simple Storage Service(Amazon S3)中。第 9 步
提取、转换、加载(ETL)存储的遥测数据以使用 AWS Glue 进行分析。第 10 步
使用 Amazon Athena 交互式查询和分析准备好的数据。第 11 步
使用 Amazon QuickSight 可视化商业智能(BI)数据。第 12 步
使用持续集成和持续部署(CI/CD)管道来部署和操作编码的应用程序。第 13 步
为 LiveOps 提供 BI、数据可视化和来自游戏遥测数据的机器学习(ML)功能,以生成关键业务见解。 -
DataOps CI/CD
-
此架构图显示了 DataOps CI/CD 管道。要查看现代化 DataOps 管道的概览,请打开另一个选项卡。
第 1 步
使用 AWS Cloud Development Kit(AWS CDK)构建并测试编码基础设施以合成 AWS CloudFormation 模板。第 2 步
在基础设施代码更改提交到 AWS CodeCommit 存储库时启动 CI/CD 管道。第 3 步
将已编译的基础设施资产(例如 Docker 容器和 CloudFormation 模板)存储在 Amazon Elastic Container Registry(Amazon ECR)和 Amazon S3 中。第 4 步
使用 CloudFormation 堆栈将用于集成和系统测试的基础设施部署到质量保证(QA)AWS 账户中。第 5 步
运行自动化测试脚本以验证部署的基础设施在 AWS CodeBuild 项目中是否正常运行。第 6 步
使用 CloudFormation 堆栈将经过测试的基础设施部署到生产(PROD)AWS 账户中。
开始使用
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
AWS 开发人员工具(特别是 CodeBuild、CodeCommit 和 AWS CodePipeline)可使整个架构作为编码化应用程序持续集成/持续交付。这意味着所有操作都可以通过更改代码来执行。此外,CI/CD 管道将在 QA 阶段对这些更改执行自动化系统测试,以帮助确保在部署到生产之前可以预先检查任何潜在的故障。每个架构组件的操作日志记录都会与 SNS 通知一起传送到 CloudWatch,以针对任何部署和操作问题向管理员发送提醒。
选择这些工具不仅可以让操作员深入了解架构,还可以对指南的初始部署以及后续更改进行精细控制。这意味着操作员可以监控更改,确认它们已做好生产准备,并回滚任何影响生产的更改,而不会影响用户。
-
安全性
每个遥测提供者(数据生产者)都会收到一个身份验证密钥(存储在 DynamoDB 中)以访问遥测数据并将其发送到 API Gateway,这意味着只有授权的数据生产者才会获得访问密钥。提供用于存储身份验证密钥的单一来源使您能够依靠相同的身份验证流程来管理指南部署的 API 和 AWS 资源。后端应用程序可以使用临时 AWS 凭证安全地与 Guidance API 交互。
此外,通过 API Gateway 发送的任何遥测事件都会在传输过程中进行加密,而最终存储在 Amazon S3 中的任何遥测事件数据都会进行静态加密。
-
可靠性
本指南提供了两个层面的韧性:区域层面和全球层面。该架构的所有区域组件都使用 AWS 无服务器功能。无服务器功能有助于确保每项服务在多个可用区(AZ)中持续提供所需的功能,前提是不存在区域故障。如果发生区域故障,您可以将指南重新部署到另一个 AWS 区域甚至另一个 AWS 账户。
-
性能效率
API Gateway 等无服务器组件使本指南具有足够的韧性和可扩展性,可满足遥测提供商的性能要求。此外,Amazon Kinesis 也提供了近乎实时的流分析性能。此外,将指南实施为编码应用程序允许用户通过自动添加 DEV、TEST 和 QA 阶段的能力进行实验。
-
成本优化
AWS Glue 允许自动爬取数据架构,从而避免构建正确的架构以进行分析的耗时做法。此外,将指南构建为编码应用程序让您可以将正确的模块与不同的使用案例相匹配,从而帮助简化成本。
-
可持续性
Amazon S3 和 AWS Glue 都支持无服务器、事件驱动的数据摄取模式。AWS Glue 作业可以抵消 AWS 的基础设施管理和优化责任。Amazon S3 实施数据生命周期策略以及高效的文件格式化和压缩,因为所有摄取的数据都以 Parquet 格式存储。由于数据以压缩的 Parquet 格式进行转换和存储,因此可以减少每次查询的数据扫描量,也就意味着 Guidance 工作负载所需的计算资源更少。
相关内容
Notorious Studios 在 AWS 上构建可扩展的游戏分析管道以进行玩家研究
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。