This Guidance helps game developers implement a codified, modular, and serverless analytics pipeline that ingests telemetry events from game clients and backend services. The Guidance addresses both near real-time analytics and batch analytics use cases. With AWS CloudFormation Kit (AWS CDK), you can continuously integrate and deploy the pipeline across multiple AWS accounts and Regions. Additionally, the serverless services in this Guidance offer a cost-efficient approach to game development. After deploying this Guidance template, you will be ready to collect and query player data, gather insights, and improve your game.
Please note: [Disclaimer]
This architecture diagram shows an overview for a modernized DataOps pipeline. For the DataOps continuous integration and continuous deployment (CI/CD) pipeline, open the other tab.
Send game telemetry events to the AWS Cloud from data producers.
Capture streaming event data in Amazon Managed Service for Apache Flink. Publish custom metrics in Amazon CloudWatch.
Create operational dashboards and alarms from custom metrics in CloudWatch.
Deliver critical alarm notifications to data consumers with Amazon Simple Notification Service (Amazon SNS).
Process batched telemetry data with Kinesis Data Firehose.
Deploy and operationalize the codified application using a continuous integration and continuous deployment (CI/CD) pipeline.
Provide LiveOps with BI, data visualizations, and machine learning (ML) capabilities from game telemetry data to generate key business insights.
This architecture diagram shows a DataOps CI/CD pipeline. For an overview of the modernized DataOps pipeline, open the other tab.
Initiate the CI/CD pipeline when infrastructure code changes are committed to the AWS CodeCommit repository.
Store compiled infrastructure assets, such as a Docker container and CloudFormation templates, in Amazon Elastic Container Registry (Amazon ECR) and Amazon S3.
Deploy the infrastructure for integration and system testing into the quality assurance (QA) AWS account using the CloudFormation Stack.
Run automated testing scripts to verify that the deployed infrastructure is functional inside an AWS CodeBuild project.
Deploy the tested infrastructure into the Production (PROD) AWS account using the CloudFormation Stack.
The AWS Well-Architected Framework helps you understand the pros and cons of the decisions you make when building systems in the cloud. The six pillars of the Framework allow you to learn architectural best practices for designing and operating reliable, secure, efficient, cost-effective, and sustainable systems. Using the AWS Well-Architected Tool, available at no charge in the AWS Management Console, you can review your workloads against these best practices by answering a set of questions for each pillar.
The architecture diagram above is an example of a Solution created with Well-Architected best practices in mind. To be fully Well-Architected, you should follow as many Well-Architected best practices as possible.
AWS developer tools, specifically CodeBuild, CodeCommit, and AWS CodePipeline, enable the CI/CD of the entire architecture as a codified application. This means that all operations can be performed through code changes. Additionally, the CI/CD pipeline performs automated system testing of these changes–within the QA stage–to help ensure that any potential failures can be pre-checked before being deployed into production. Operational logging from every architectural component is delivered to CloudWatch along with SNS notifications to alert administrators of any deployment and operational issues.
These tools have been selected to not only allow operators insight into the architecture, but also to provide granular control over the initial deployment of the Guidance in addition to subsequent changes. This means that operators can monitor changes, confirm that they are production-ready, and roll back any changes that impact production—without effecting their users.
Each telemetry provider (data producer) receives an authentication key (stored in DynamoDB) to access and send telemetry data to API Gateway, meaning that only authorized data producers are provided access keys. Providing a single source for storing authentication keys enables you to rely on the same authentication process for managing the API and AWS resources deployed by the Guidance. Backend applications can securely interact with the Guidance API using temporary AWS credentials.
Additionally, any telemetry events sent through API Gateway are encrypted in transit, and any telemetry event data that is eventually stored in Amazon S3 is encrypted at rest.
This Guidance provides two levels of resilience: at a regional and a global level. All regional components of the architecture use AWS serverless capabilities. Serverless capabilities help ensure that each service continues to provide the required functionality across multiple Availability Zones (AZs), provided there is no regional failure. Should a regional failure occur, you can redeploy the Guidance into another AWS Region or even another AWS account.
Serverless components, such as API Gateway, contribute to this Guidance being sufficiently elastic and scalable to meet the performance requirements of telemetry providers. Additionally, Amazon Kinesis provides near real-time performance for streaming analytics. Furthermore, implementing the Guidance as a codified application allows for user experimentation through the ability to automatically add DEV, TEST, and QA stages.
AWS Glue allows for the automated crawling of data schema, offsetting the time-consuming practice of structuring the correct schema for analysis. Furthermore, structuring the Guidance as a codified application allows you to match the correct modules to varied use cases, which helps streamline costs.
Both Amazon S3 and AWS Glue support a serverless, event-driven data ingestion pattern. AWS Glue Jobs offset the infrastructure management and optimization responsibility to AWS. Amazon S3 implements data lifecycle policies and efficient file formatting and compression, as all ingested data is stored in Parquet format. Since data is transformed and stored in a compressed Parquet format, data scans per query are reduced, which means you will need fewer compute resources for the Guidance workload.
The sample code; software libraries; command line tools; proofs of concept; templates; or other related technology (including any of the foregoing that are provided by our personnel) is provided to you as AWS Content under the AWS Customer Agreement, or the relevant written agreement between you and AWS (whichever applies). You should not use this AWS Content in your production accounts, or on production or other critical data. You are responsible for testing, securing, and optimizing the AWS Content, such as sample code, as appropriate for production grade use based on your specific quality control practices and standards. Deploying AWS Content may incur AWS charges for creating or using AWS chargeable resources, such as running Amazon EC2 instances or using Amazon S3 storage.
References to third-party services or organizations in this Guidance do not imply an endorsement, sponsorship, or affiliation between Amazon or AWS and the third party. Guidance from AWS is a technical starting point, and you can customize your integration with third-party services when you deploy the architecture.