2011-09-29 5 views
6

Azure (9 월 툴킷)에서 스테이징 및 라이브 환경을 설정하려고하고 다른 연결 문자열을 사용하여 별도의 스테이징 및 라이브 데이터베이스를 원합니다. 분명히 Visual Studio에서 web.config 변환으로이 작업을 수행 할 수 있지만 VIP 스왑 중에 연결 문자열의 변경을 자동화 할 수있는 방법이 있습니다. 따라서 준비 사이트가 준비 데이터 및 라이브 사이트에서 데이터를 가리 키도록 지정합니다. ? 두 번 배포하지 않아도됩니다.Azure VIP 스왑 중에 연결 문자열을 변경할 수 있습니까

답변

9

당신이 VIP 스왑을 할 때 역할이 걱정된다면 나는 변화가 있다고 생각하지 않습니다. 로드 밸런서 구성을 변경합니다.

앱에서 아무런 변화가 없으므로 구성이 변경됩니다. 내가 생각할 수있는 유일한 점은 둘 사이의 URL이 변경된다는 것입니다. 액세스 된 URL을 기반으로 두 개의 연결 문자열 중 하나를 선택하는 코드를 구현할 수 있습니다 (웹 역할 만 얘기하고 있다고 가정).하지만 더러워 보입니다.

근본적으로 문제는 스테이징이 별도의 테스트 환경이 아니라는 것입니다. 그것은 생산으로의 디딤돌입니다. 따라서 Microsoft는 구성이 변경되지 않는다고 가정합니다.

+1

네, 정확히 이것은 우리가 발견 한 것입니다. "스테이징 (staging)"은 "곧 생생하게 될 것"을 의미합니다. 우리는 테스트를 위해 다른 Azure 서브 스크립 션 환경에서 완전히 다른 환경을 가지고 있습니다. 배포 후 VIP 스왑이 수행되기 전에해야 할 일은 web.config 변환 등에 간단한 오류가 없는지 확인하기 위해 "준비"환경을 시작하는 것입니다. 이렇게하면 캐시가 채워지고 VM이 제대로 실행 중입니다. –

+0

Thx 얘들 아. 테스트를위한 별도의 환경처럼 보입니다. 대개 비용 기준으로 그 사실을 알려주지 마십시오. – Andiih

+0

마지막 단락의 경우 +1입니다. 준비 영역은 "프로덕션 스위치"가 뒤집히기 전에 앱이 잘 돌아가고 있는지 확인하는 데에만 사용해야합니다. –

15

관리 API 및 PowerShell Cmdlet을 사용하면 많은 Azure 플랫폼을 자동화 할 수 있으며 VIP 스위치와 연결 문자열 변경을 조정할 수 있습니다.

는 접근 방식 :

  1. 이 ServiceConfiguration 파일에 데이터베이스 연결 문자열을 추가합니다.
  2. 오히려 푸른 서비스 경우 논리가 통지되도록
  3. 이 RoleEnvironmentChanging을 구현 더 일반적인 .NET의 구성 ConfigurationManager.ConnectionStrings의 API보다 RoleEnvironment.GetConfigurationSettingValue를 사용하여 푸른 특정 설정에서 연결 문자열을 읽을 앱 로직을 수정 구성이 변경됩니다. 여기에 RoleEnvironment.GetConfigurationSettingValue를 사용하여 앱의 연결 문자열을 업데이트하는 코드를 추가합니다. 당신은 VIP 스위치합니다 (Windows Azure Platform PowerShell Cmdlets 2.0에서 이동-배포 cmdlet을 중심으로 구축)를 호출하는 PowerShell 스크립트를 작성 DB 연결 문자열을
  4. 을 "준비"에 대한 ServiceConfiguration 설정으로 준비에
  5. 배포 및 구성 변경을 호출 당신의 "생산"DB 연결 문자열을 포함하는 새로운 ServiceConfiguration 파일과 함께 찍은

의 VIP 스위치를 수행하고 하나의 자동화 된 작업으로 연결 문자열 업데이트를 수행 할 5 단계 (설정 DeploymentConfiguration 참조).

+3

이 답변은 더 많은 표를 얻으실 수 있습니다. –