Azure App Service에서 흥미로운 행동을 보았습니다. 누군가가 충분히 의견을 말할 수 있기를 바랍니다. (모든 푸른 단계가 포털에서 수행 할 수 있습니다)Azure App-Service Swap이 소스와 대상 사이에서 "튀어 오름"
생식 단계 :
- 는 응용 프로그램 서비스의 새로운 웹 응용 프로그램 만들기, 예를 들어, (표준 가격 수준, 단일 인스턴스는 괜찮습니다) 해당 응용 프로그램에 대한
mysite
- Create a new staging slot
mysite-staging
- 배포 내용
//ONE
- 배포 파일/스크립트/테스트와
mysite-staging
에 빈약 ASP.NET 응용 프로그램이있는 파일 /scripts/test.js와mysite
에 빈약 ASP.NET 응용 프로그램 내용을 가지고의 .js는//TWO
스왑 시작 직후 - Swap the deployment slots
- ,
mysite.azurewebsites.net/scripts/test.js
로 이동
내가 볼 기대 일 : 스왑 동안 어떤 점에서
- , 내용이 변경 원활/일관성/비가 역적
//ONE
에서 실제로 볼 무엇//TWO
에 :
- 스왑 작업 중에
//ONE
과//TWO
사이의 내용이 "깜박입니다"/ "튀어 오릅니다". 스왑 작업이 완료되면, 동작은 안정적이고//TWO
지속적으로 관찰 된 행동이 모든 트래픽이 새 버전으로 갈라고 할 수있는 시간에 단일 지점이 없다는 것을 시사
반환됩니다. 사용자는이 "수신 거부"단계에서, 페이지의 'V2'버전으로 응답, 페이지 mysite.azurewebsites.net를 요청
- :
이 저를 우려하는 이유는 다음과 같은 시나리오 CDN 호스트 스크립트에 대한 링크
mycdn.com/scripts/test.js?v2
(?v2
은 새 쿼리 문자열입니다.) - 브라우저는 CDN에서 스크립트를 요청하여에서 스크립트를 요청합니다. 이번에는 "수신 거부"가 응답을 스크립트의 v1 버전으로 만듭니다.
- 이제 우리는 그 지역에있는 모든 사용자가 페이지의 V2 버전으로로드 할 CDN에 캐시 스크립트의 V1 버전이
내 질문이 "수신 거부"동작 중입니다 "설계 상"스왑 작업? 그렇다면 위의 병리 적 사례를 해결하기위한 권장 접근법은 무엇입니까?
"컴퓨터 무효화에는 캐시 무효화 및 명명 작업이 두 가지 있습니다."(Phil Karlton). 스왑 작업과 같은 소리는 프론트 엔드 인스턴스의 캐시 항목을 무효화해야합니다. 나는 너희들이 성취하기에는 이것이 사소한 것이 아니라고 생각한다. 필자의 경우 CDN이 올바른 내용을 담고 있는지 확신 할 수 있도록 스왑 작업이 완료된 후 직접 CDN 내용을 제거하는 방법이 있습니다. – sammy34