question

01F0 avatar image
01F0 asked

Looking for tips on how to speed up the build/deployment process

Hi!

First of all, I'm really impressed with PlayFab, it has a friendly community, great support and a fun system to work with. (。・∀・)ノThank you!

I'm working on a Azure DevOps pipeline where each code change should result in a new multiplayer server, up and running.

The reason behind this is that I want to be able to able to iterate quickly and test new builds with my team. My goal is to create a small multiplayer game for the Ludum Dare this weekend. :)

The server pipeline looks like this right now:

So the "Push to Playfab" script takes a lot of time, mostly spent on waiting for the build deployment.

What's causing the 10 - 20 minute deploy time?

Any suggestions on how I can get my builds up and running faster?

Maybe I should update the builds in a different way?

How would you set it up?

multiplayer
pnvcw.png (10.7 KiB)
10 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Seth Du avatar image Seth Du ♦ commented ·

May I ask what does the 'Push to PlayFab' script do? I am not very familiar with Azure Pipeline, but we may be able to provide suggestions if there is more information.

0 Likes 0 ·
01F0 avatar image 01F0 Seth Du ♦ commented ·

Hmm test test, I can't seem to post my message

1 Like 1 ·
01F0 avatar image 01F0 Seth Du ♦ commented ·

That's a custom Powershell script.

Maybe it's easier if I show the printout of what it does:

09/30/2020 20:12:55: Setting title..
09/30/2020 20:12:56: Checking if we have a previous build..
09/30/2020 20:12:56: Found existing build.. deleting.
09/30/2020 20:12:57: Waiting for the build to be removed..
09/30/2020 20:19:07: Done!
09/30/2020 20:19:07: Deleting old asset..
09/30/2020 20:19:09: Adding new Asset..
09/30/2020 20:20:05: Creating new build..
09/30/2020 20:20:06: Build command executed, now we wait..
09/30/2020 20:40:13: Deployed successfully!
0 Likes 0 ·
01F0 avatar image 01F0 01F0 commented ·

The build part that takes 20 minutes consists of the following snippet:

Write-Host "$(Get-Date): Creating new build.."

$NewBuild = New-PFMultiplayerBuild -BuildName 'PSTest_build'  -StartMultiplayerServerCommand 'C:\Assets\ProjectPumpkin\Binaries\Win64\ProjectPumpkinServer.exe -log -port=7777' -Ports $Ports -VMSize $VMSelection -AssetReferences $Asset -MultiplayerServerCountPerVm 1 -RegionConfiguration $Regions

Write-Host "$(Get-Date): Build command executed, now we wait.."
0 Likes 0 ·
Show more comments
01F0 avatar image 01F0 Seth Du ♦ commented ·

OK! I see..

Is it possible to warm up the VM before deploying the build? I mean so that I could start the VM, start building my server code, then deploy it when the VM is up.


I really like the immutable infrastructure here but is it possible to reuse a VM? Like, just deploy the docker container instead of the whole VM.

0 Likes 0 ·
Seth Du avatar image Seth Du ♦ 01F0 commented ·

Currently it is not supported, even modifying the region configuration will shut down all instances and reboot.

Please feel free to send a thread on Feature Request forum.

0 Likes 0 ·
Show more comments

0 Answers

·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.