빌드 별칭 관리 및 할당
빌드 별칭은 빌드 맨 위의 관리 계층으로, RequestMultiplayerServer
호출을 제어된 방식으로 여러 빌드에 분산하는 데 사용할 수 있습니다. 이렇게 하면 빌드 간 업그레이드 및 아래에 나열된 여러 기타 시나리오의 단순성과 안정성을 향상할 수 있습니다. 별칭에서는 이를 위해 빌드 ID 목록과 각 ID의 가중치를 함께 지정합니다. 가중치는 해당 빌드에 전달되어야 하는 할당 호출의 비율을 나타냅니다.
이전 버전과 호환되는 안전한 배포
이 시나리오는 빌드 간 업그레이드를 위한 아주 일반적인 시나리오로, 두 서버 모두와 호환되는 게임 서버 및 소매 클라이언트를 업데이트합니다.
클라이언트는 다음과 같은 구성을 가지는 별칭 1을 참조합니다.
- 빌드 1: 가중치 = 1
빌드 2가 만들어지면 별칭 1은 다음으로 변경됩니다.
- 빌드 1: 가중치 = 8
- 빌드 2: 가중치 = 2
빌드 2에서 새 서버 요청을 모두 처리할 때까지 가중치를 점진적으로 변경할 수 있습니다. 이제 빌드 1의 가중치는 0이며 별칭에서 제거할 수 있습니다.
별칭의 일반적인 사용 사례는 클라이언트 호환성 버전 및 게임 모드의 선호도를 지정하는 것입니다. 예를 들어 "DeathMatch 클라이언트 2.2 RETAIL." 별칭을 사용하면 이 환경을 강화하는 빌드를 지속적으로 업데이트하면서 이 상위 수준의 추상화를 관리할 수 있습니다. 또한 별칭을 사용하면 필요한 경우 빌드를 쉽게 롤백할 수 있습니다.
이전 버전과 호환되지 않는 배포
이 경우에는 게임 클라이언트를 업데이트할 때 게임 서버를 동시에 업데이트하려고 합니다. 현재 게임 클라이언트가 이전 서버 빌드와 호환되지 않기 때문입니다. 빌드 간 전환은 다음과 같이 수행합니다.
이전 클라이언트가 다음과 같은 별칭 1을 참조합니다.
- 빌드 1: 가중치 = 1
빌드 2가 만들어지면 새 클라이언트는 다음과 같은 별칭 2를 참조합니다.
- 빌드 2: 가중치 = 1
이 시나리오에서는 별칭이 빌드와 유사하게 사용되며 별칭의 멀티플렉싱 기능은 사용되지 않습니다.
이전 버전과 호환되는 블래스트 배포
이는 이전 버전과 호환되는 빌드 간 업그레이드 시나리오와 유사하지만 요청 동작이 더 급격하게 전환됩니다. 빌드 간 전환은 다음과 같이 수행합니다.
클라이언트가 다음과 같은 별칭 1을 참조합니다.
- 빌드 1: 가중치 = 1
빌드 2가 만들어지면 별칭 1은 다음으로 변경됩니다.
- 빌드 1: 가중치 = 0
- 빌드 2: 가중치 = 1
이전 버전과 호환되는 배포 테스트
게임 서버를 업데이트하려고 할 때 클라이언트 버전이 두 서버 모두와 호환되지만 모든 플레이어에 대규모로 배포하기 전에 두 번째 버전을 테스트하려고 합니다. 빌드 간 전환과 테스트는 다음과 같이 수행할 수 있습니다.
클라이언트가 다음과 같은 별칭 1을 참조합니다.
- 빌드 1: 가중치 = 1
빌드 2가 만들어지면 테스트 클라이언트는 다음과 같은 별칭 2를 참조합니다.
- 빌드 2: 가중치 = 1
빌드 2가 확인되면 별칭 1은 다음으로 변경됩니다.
- 빌드 1: 가중치 = 8
- 빌드 2: 가중치 = 2
점진적으로 빌드 2는 가중치가 높아지고 모든 트래픽을 흡수합니다.
다른 빌드 및 지역으로 대체
별칭을 사용하면 여러 빌드 간 대체를 허용하여 멀티 플레이어 서버 배포의 복원력을 높일 수 있습니다. 예를 들어 빌드 별칭을 대상으로 하는 할당 요청에서 미국 동부를 지역 #1, 미국 서부를 지역 #2로 순위 지정한다고 가정합니다. 이 빌드 별칭은 두 빌드인 빌드 1과 빌드 2에 비슷한 가중치를 지정합니다.
지정된 할당으로 빌드 1을 선택했다고 가정합니다.
- 미국 동부에서 빌드 1에 대한 할당이 시도됩니다.
- #1이 실패하면 미국 동부에서 빌드 2에 대한 할당이 시도됩니다.
- #2가 실패하면 미국 서부에서 빌드 1에 대한 할당이 시도됩니다.
- #3이 실패하면 미국 서부에서 빌드 2에 대한 할당이 시도됩니다.
특히 한 빌드에서 다른 빌드로 점진적으로 업그레이드할 때 이 대체 동작은 플레이어가 빌드 중 하나에 문제가 발생해도 대기 시간이 가장 짧은 서버를 얻을 수 있도록 최적화됩니다.
PlayFab REST API를 사용하여 빌드 별칭 관리
참고 항목
이제 게임 관리자에서 빌드 별칭을 관리할 수 있습니다. 시작하려면 빌드 개요 페이지를 참조하세요.
API를 사용하여 빌드 별칭을 만듭니다.
API:
POST https://titleId.playfabapi.com/MultiplayerServer/CreateBuildAlias
샘플 본문:
{ "AliasName":"TestingAlias", "BuildSelectionCriteria": [{ "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1"} }] }
샘플 응답:
{ "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6", "AliasName":"TestingAlias", "BuildSelectionCriteria": [{ "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1"} }] }
빌드 별칭 ID는 응답의 일부로 제공됩니다.
빌드 별칭의 매개 변수를 업데이트합니다.
API:
POST https://titleId.playfabapi.com/MultiplayerServer/UpdateBuildAlias
샘플 본문:
{ "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6", "AliasName":"TestingAliasRenamed", "BuildSelectionCriteria": [{ "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1", "7ac7f347-3d61-9fe9-c974-a18c4854a8a9":"1"} }] }
샘플 응답:
{ "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6", "AliasName":"TestingAliasRenamed", "BuildSelectionCriteria": [{ "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1", "7ac7f347-3d61-9fe9-c974-a18c4854a8a9":"1"} }] }
빌드 별칭을 삭제합니다.
API:
POST https://titleId.playfabapi.com/MultiplayerServer/DeleteBuildAlias
샘플 본문:
{ "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6" }
빌드 별칭을 나열합니다.
API:
GET https://titleId.playfabapi.com/MultiplayerServer/ListBuildAliases
샘플 응답:
[{ "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6", "AliasName":"TestingAliasRenamed", "BuildSelectionCriteria": [{ "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1", "7ac7f347-3d61-9fe9-c974-a18c4854a8a9":"1"} }] }]
빌드 별칭을 사용하여 할당
빌드 별칭을 사용하여 할당하려면 RequestMultiplayerServer
호출에서 빌드 별칭 ID를 지정하기만 하면 됩니다.
API:
POST https://titleId.playfabapi.com/MultiplayerServer/RequestMultiplayerServer
샘플 본문:
{
"SessionId":"6a07440c-7bcc-4e23-8b81-4934543ff966",
"PreferredRegions":["SouthCentralUs"],
"BuildAliasParams":
{"AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6"}
}