game-ci / documentation

📚 Documentation for GameCI open source projects
https://game.ci
MIT License
186 stars 119 forks source link

Remote builds documentation needs to be easily understandable at a glance from the top of the documentation page. #149

Closed frostebite closed 3 years ago

frostebite commented 3 years ago

To address this issue I want to share this draft for a revision to the overview of remote builder that should make the purpose much clearer and much more concise.

Concept

Cloud Runner is an open-source tool for Unity projects that makes it easy and reliable to run automated tasks. Instead of running them locally, Cloud Builder starts a Cloud server on-demand and streams the results back to you.

[insert graphic of pushing an object to remote machine]

Cloud Builder can cache large files and the Unity Library (imported assets) in Cloud Storage to make builds fast. Cloud Builder only needs to pull the files that change to run more than once.

The most common automated task Cloud Builder is used for is to Build, Test and Deploy a Unity project.

However, you can use Cloud Builder to run any automated work that requires the Unity Editor.

So there's another charge required to use Cloud Builder?

That's right, its core to the concept that you're sending work to a cloud platform.

The cloud platform will require a payment. The monthly bill will be calculated on demand based on your storage and server usage.

Cloud providers typically charge much less than typical public services though. This is because it is backend infrastructure and businesses wouldn't be profitable if the underlying infrastructure cost as much as their products. So you're unlikely to find a better deal. 🙂

Cloud Builder can typically store very large projects and run high numbers of builds without costing very much. Developing Cloud Builder and running a few thousand jobs each month rarely cost more than 10 USD per month.

Most cloud providers also offer a free tier which can easily support Cloud Builder running a decent number of jobs each month.

[Insert table for our estimates for AWS and GCP free tier and costs]

If you need help estimating your bill, talk to us discord.

Use Cases

Cloud build system with support for large projects

[insert size graphic] If you're building large projects, many Cloud CI/CD services will not offer the large disc space needed for game development. Cloud Builder offers support for massive projects and optimizes the cost well with caching. Even very large projects are not particularly expensive.

Flexible burst workloads

[insert burst graph graphic] Cloud Builder's powerful caching gives it the ability to accelerate scale-up to large numbers of tasks much faster than a dedicated server. With Cloud Builder, you can scale up to massive numbers of builds and back down to zero as needed on-demand.

This gives you the flexibility to forget about your build system and focus on what you're building.

Most automated workloads fluctuate dramatically over a project's lifespan, especially if one is successful and needs to evolve rapidly.

Forecasting the number of dedicated build machines that will be required, estimating their specs, managing caching for multiple servers, and scaling dedicated machines up and out can be a significant time investment, many projects realize this late in development.

Not being able to quickly deliver CI/CD capabilities to any project or tool in an organization can significantly drag your ability to be agile and deliver quickly.

Burst capabilities ensure you can always deliver builds reliably, repeatably and consistently. You can always add dedicated servers later to have a hybrid model, to optimize high usage costs.

Fast via powerful automatic caching

[insert speed/caching graphic] Cloud Builder caches git LFS/large files and your Unity Library folder into Cloud storage to make builds as fast as possible.

This reduces bandwidth costs of storing huge projects and speeds up startup times significantly.

The caching is completely automatic and you do not need to manually manage any aspect of it. You can view or export the cache easily. You can also restore an old backup of a cache if you need to wipe the system and start again for any reason.

When are dedicated servers cheaper?

In situations where you have high and consistent usage, a dedicated build server can be cheaper.

Organizations running enough builds to benefit from this must also consider the total cost of managing and maintaining that infrastructure and the loss of the capabilities mentioned above.

frostebite commented 3 years ago

Started in:

https://github.com/game-ci/documentation/tree/cloud-runner