2014-05-20 2 views
0

Azure를 사용하여 멀티 테넌트 애플리케이션을 설정하려고합니다. 이것은 내가 아키텍처 상상하는 방법입니다Azure의 멀티 테넌트 WebRoles

WebRole - 여러 사용자가 하나의 응용 프로그램을 (각 사용자가 사용자의 호스트 이름을 필요로 예를 들어 your.site.com 또는 my.site.com 또는 yoursite.com)

WorkerRole - 새 데이터베이스 생성/웹 역할에 호스트 이름 추가에 사용 하시겠습니까?

WebRoles 및 WorkerRoles를 사용하여 뒤에 이유는 확장 성이다.

나는 당신이 그렇게 같은 csdef에 webrole에 여러 호스트 이름을 추가 할 수 있다는 사실을 알고 :

<Sites> 
    <Site name="Site1" physicalDirectory="C:\Users\User\Documents\Visual Studio 2012\Projects\Project1"> 
    <Bindings> 
     <Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="domain1.com" /> 
     <Binding name="Endpoint2" endpointName="Endpoint2" hostHeader="domain1.com" /> 
    </Bindings> 
    </Site> 
    <Site name="Site2" physicalDirectory="C:\Users\User\Documents\Visual Studio 2012\Projects\Project2"> 
    <Bindings> 
     <Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="domain2.com" /> 
     <Binding name="Endpoint2" endpointName="Endpoint2" hostHeader="domain2.com" /> 
    </Bindings> 
    </Site> 
</Sites> 
<Endpoints> 
    <InputEndpoint name="Endpoint1" protocol="http" port="80" /> 
    <InputEndpoint name="Endpoint2" protocol="https" port="443" certificate="SSLName" /> 
</Endpoints> 

이 그러나 사이트가 이미 정의해야 할 필요 나는 동적에서 호스트 이름을 추가 할 수 있도록 어떤 점을 가리키고 계속 유지합니다 (자동으로 크기를 조정하면 선택합니다). 사용자가 응용 프로그램에 등록 할 때 작업자 역할이이를 선택하고 어딘가에 호스트 이름을 추가한다는 아이디어가 있습니다 (어쩌면 webrole IIS?).

이 작업을 수행하는 올바른 방법인지 또는 내가 누락 된 것인지 알 수 없습니다.

답변

0

IMHO, 올바른 방법이 아닙니다. VM이 웹 호스팅되는 주된 이유는/작업자 역할은 Stateless VMs 있습니다.

접근 방식을 적용하려면 IIS API를 사용하여 각 고객에 대한 사이트를 만들어야하며 이러한 VM에는 상태가 저장되지 않으므로 새 코드를 배포하거나 VM이 중단 될 때 이러한 사이트가 제거됩니다 이유와 Microsoft는 그것을 대체해야합니다.

또한, 언제든지 수평으로 새로운 웹 역할 인스턴스를 추가하여 VM을 확장 할 것입니다, 당신은 VM가 실행되면 다시이 사이트를 만들 수있을 것입니다.

+0

는 그래서 공유 IIS 구성을 그 자체가 정상적인 VM에서 응용 프로그램을 가지고 갖추는 것이 합리적이다? – kiwijus

+0

Azure 가상 머신은 ** Azure Blob Storage **에 의해 뒷받침되는 Stateful VM **이므로 더욱 의미가 있습니다. –

관련 문제