Game Production in the Cloud: CI/CD
Publication date: November 10, 2021 (Diagram history)
This architecture provides an engine-agnostic, high-level approach for offloading game builds from remote or on-premises game development environments to the AWS Cloud. This architecture helps developers migrate or build new build farms on AWS.
Game Production in the Cloud: CI/CD diagram
The following steps describe the architecture:
-
AWS Direct Connect provides a low-latency, private, dedicated connection to AWS for in-office developers. Remote developers use AWS Client VPN.
-
AWS Transit Gateway simplifies network management for connectivity between VPCs and from on-premises networks.
-
Perforce manages source and version control (CI) backed by Amazon Elastic Block Store storage for quickly accessed, persistent data. Perforce Helix Core (P4D) is available on AWS Marketplace.
-
Commits start a build (CD) in Jenkins when developers push changes to Perforce tied to a branch. The Jenkins controller calls engine headless CLI commands to run and parallelize the build process across ephemeral, Docker nodes such as Amazon EC2 Spot Instances (one hour or less build time), or Amazon EC2 On-Demand instances.
-
The Xcode portion of iOS builds is offloaded to Amazon EC2 Mac instances to sign, build, and export the .ipa file. This approach splits the process and reduces build times. AWS Secrets Manager holds provisioning profiles, private keys, and certificates.
-
Build artifacts delivered to Amazon Simple Storage Service trigger third-party notification flows of success or failures. AWS Device Farm provides automated testing.
Further reading
For additional information, see the following resources:
Diagram history
To be notified about updates to this reference architecture diagram, subscribe to the RSS feed.
| Change | Description | Date |
|---|---|---|
Initial publication | Reference architecture diagram first published. | November 10, 2021 |
Note
To subscribe to RSS updates, you must have an RSS plugin enabled for the browser you are using.