2016-06-21 13 views
0

전용 서버에 호스팅 된 웹 사이트가 거의 없으며 전용 서버에서 클라우드 서버로 웹 사이트를 이동하기로 결정한 경우 프로그래밍 관점에서 고려해야 할 사항은 무엇입니까? 우리의 모든 웹 사이트는 Asp.Net 기반 & 다른 세션 변수를 사용하고 MS SQL Server 표준 2012 데이터베이스에 의존하고 있습니다.전용 서버에서 클라우드 서버로 웹 사이트 이동

인터넷에서 사용할 수있는 정보가 많이 있으며 그 중 일부는 혼란스럽고 혼란 스러울지라도 클라우드 환경 유형입니다. 서비스 제공 판매 팀은 항상 구름을 향해 이동 밀어하지만 우리가 다음 질문을 할 때 명확한 대답은 없습니다.

나는 몇 년 전 같은 웹 사이트 중 하나가 동일한 사용자가 동일한 요청에 대해 세션 변수를 잃어버린 상태로 유지할 때 몇 년 전의 공유 호스팅과 같은 문제에 직면했다. 조사한 결과 공유 호스트는 팜 기반 공유 호스팅이므로 동일한 사용자 세션이 제공되었다. 첫 번째 요청이 서버 1에 연결된 경우 세션 변수 손실을 초래하는 팜의 다른 서버 & 두 번째 요청이 서버 2에 전달되었습니다.이 문제는 web.config에 컴퓨터 키를 추가하여 해결되었습니다.

저는 솔직히 클라우드 서버가 어떻게 작동하는지 전혀 모릅니다. SQL 기반 세션 상태를 사용하여 얻을 수있는 세션 변수 손실이 걱정됩니다.

구성 또는 프로그래밍 관점에서 클라우드 기반 웹 서버에 가입하기 전에 수행해야하는 다른 정밀도는 무엇입니까?

답변

1

클라우드 기반 솔루션으로 마이그레이션 할 때마다 명심해야 할 중요한 요소 중 하나는 "상태 관리"입니다. 클라우드에서 여러 인스턴스로 스케일 아웃하려는 경우로드 밸런서가 요청을 다른 인스턴스로 분배하고 하나의 인스턴스에 저장된 세션 변수를 다른 인스턴스에서 사용할 수 없으므로 proc 상태 관리가 배제됩니다. 그래서 SQL 데이터베이스 기반의 proc 옵션에서 옵션을 사용할 수 있습니다. 나는 Microsoft azure cloud를 광범위하게 사용 해왔다. 그리고 옵션 푸른에서 PROC 세션 상태의 아웃 설정은

  1. SQL의 푸른 데이터베이스를 기반으로 세션 상태 provider 있습니다.

  2. 레디 스 캐시 기반의 세션 상태 (관리되는 서비스로 제공되는 레디 스 캐시) PROC 중 일반적으로 link

  3. 푸른 테이블 스토리지 기반의 세션 상태 provider

    갈 방법입니다 결정할 수 있습니다 당신이 선택한 기술과 클라우드 스택을 기반으로 구현합니다.

0

나는 최근이 같은 연구를했다. @Aravind는 외부 저장소가 가장 안전하고 최선의 방법이라고 동의합니다. 그러나 Azure가 사용하는로드 밸런서 (ARR)는 기본적으로 지속성을 활성화합니다. 쿠키를 확인하면 ARRAffinity 쿠키가 표시됩니다. 즉, 클라이언트는 가능한 한 동일한 인스턴스로 이동하므로 InProc 세션을 어느 정도 사용할 수 있습니다.

다시 외부 repo가 ​​가장 좋지만, 하늘빛을 신속하게 또는 많은 노력없이 일어나야하는 경우 가능합니다.

업데이트 : 당신은 지금 클라우드 서버에서 작업하는 동안 이해하는 데 필요한 몇 가지 포인트가 있습니다 enter image description here

1

웹 응용 프로그램의 설정에서 켜거나 ARR 선호도를 설정할 수 있습니다.

  1. Alibaba 클라우드 또는 다른 클라우드 제공 업체의 ECS와 같은 단일 서버를 사용하는 경우 설정은 실제 서버와 동일합니다.
  2. Alibaba 클라우드의 RDS와 같은 관리 서비스를 사용하는 경우 네트워크 문자열 (db url)을 처리해야합니다.
  3. Alicloud 클라우드의 SLB와 같이 클라우드에서로드 밸런서 뒤에 여러 서버를 사용하는 경우 세션 유지 관리가주의를 기울여야합니다. Memcache와 같은 중앙 집중식 세션 관리자를 사용하는 것이 좋습니다. 그렇지 않으면로드 밸런서 구성을 조정해야합니다.

대부분 내 참조는 Alicloud에서 제작 한 것으로서 나와 함께 사용하십시오. 당신은 또한 자신의 웹 호스팅 패키지를 확인할 수 있습니다