[azure] Windows Azure : 웹 역할, 작업자 역할 및 VM 역할은 무엇입니까?

내가 작업하는 애플리케이션에는 웹 역할이 포함되어 있습니다. 단순한 웹 애플리케이션입니다. Windows Azure에서 애플리케이션을 호스팅해야했기 때문에 웹 역할을 만들었습니다. 실제로이 역할이 무엇인지 알고 싶습니다. 코딩 현명하거나 저장 현명한 의미는 무엇입니까?



답변

2013 년 3 월 3 일 편집-UDP 끝점, 가상 머신 및 더 많은 언어를 참조하도록 업데이트되었습니다.

2013 년 6 월 6 일 편집-VM 역할 중단을 반영하고 웹 / 작업자 역할 기준 OS 이미지를 Windows Server 2012로 업데이트하도록 업데이트되었습니다.

@Vladimir의 좋은 링크. 좀 더 설명 : 모든 역할 (웹, 작업자)은 기본적으로 Windows Server입니다. 웹 및 작업자 역할은 거의 동일합니다.

  • 웹 역할은 IIS가 활성화 된 Windows Server VM입니다.
  • 작업자 역할은 IIS가 비활성화 된 Windows Server VM입니다 (수동으로 활성화 할 수 있음).
  • VM 역할은 Hyper-V를 통해 로컬로 생성하고 Azure에 업로드하는 Windows Server 2008 이미지입니다 (현재 중단되었으며 2013 년 5 월 31 일부로 더 이상 사용할 수 없음).
  • 가상 머신은 Azure에서 생성되고 자체 스토리지에 vhd로 저장되며 VM 역할에 비해 몇 가지 향상된 기능이있는 Windows 또는 Linux 이미지입니다. 예 : vhd가 자체 스토리지 계정에 있으므로 vhd에서 이미지 템플릿을 쉽게 생성하고 새 vhd에 복사하거나 VM Depot에 업로드 할 수도 있습니다 (Linux 만 해당).

이러한 역할로 수행 할 작업에 대한 질문에 답하기 위해 아래에 언급 된 플랫폼 교육 키트는 많은 좋은 아이디어와 샘플을 제공하지만 다음은 몇 가지 간단한 사용 사례입니다.

  • tcp, http, https 또는 udp 엔드 포인트 (웹 애플리케이션, SOAP / REST 서비스 등)를 노출하는 모든 코드를 실행할 수 있습니다. 하지만 상태 비 저장 방식에 대해 생각해야합니다. VM 인스턴스가 두 개 이상 실행중인 경우 사용자 트래픽이 해당 인스턴스에 분산됩니다. 플랫폼 교육 키트는이를 처리하기 위해 스토리지 또는 캐시를 사용하는 방법을 보여줍니다.
  • 큐 또는 타이머에없는 코드를 실행할 수 있습니다. 사진의 썸네일 생성 또는 사용자 입력을 기반으로 한 계산과 같은 주문형 작업이있을 수 있습니다. 외부에서 사용할 수있는 엔드 포인트가 필요하지 않습니다. 요청을 대기열로 푸시 한 다음이 대기열을 단순히 공급하는 작업을 실행할 수 있습니다 (모든 인스턴스에서 사용하는 대기열 메시지를 사용하여이 프로세스를 여러 인스턴스로 확장 할 수 있음).
  • .NET, Java, php, python, node, ruby ​​등을 실행할 수 있습니다. 프로젝트 코드와 함께 적절한 런타임 코드를 배포하기 만하면됩니다. 모든 언어는 Azure API에 대한 REST 호출을 수행 할 수 있으며 여러 언어 (위에 언급 된 언어 포함)에는이를 처리하는 SDK가 있습니다. 모든 언어 SDK는 여기 , 소스 코드는 github, 여기 .
  • VM 역할을 사용하면 매우 복잡하고 시간이 많이 걸리는 설치, 수동 개입이 필요한 설치, 안정적으로 자동화 할 수없는 설치로 소프트웨어를 설치하고 실행할 수 있습니다. 이 경우 OS 유지 관리를 처리해야합니다. VM 역할 외에도 이제 Windows 및 Linux 지원과 함께 클라우드 기반 VM 구성을 제공하는 가상 머신이 있습니다. VM 역할보다 가상 머신을 제안합니다.

웹 및 작업자 역할을 사용하면 OS 및 관련 패치가 처리됩니다. VM을 관리하지 않고도 앱의 구성 요소를 빌드합니다.

VM 역할을 사용하면 전체 Windows Server 이미지를 빌드하고 여기에 Azure 후크를 추가하고 전체 VM을 클라우드로 푸시 한 다음 시간이 지남에 따라 VM 이미지를 유지합니다.

Virtual Machines를 사용하면 갤러리에서 OS 이미지를 선택하기 만하면 자동으로 생성되고 Blob Storage에 vhd로 저장됩니다. 그런 다음 RDP / ssh를 사용하고 원하는 방식으로 설정합니다.

건축가 모자를 쓰고, 이곳이 재미 있고 흥미로워지는 곳입니다. 웹 역할 또는 작업자 역할로 웹 서비스를 실행할 수 있으며 둘 중 하나에서 포트를 열 수 있습니다. 작업자 역할로 Tomcat 또는 기타 웹 서버를 호스팅 할 수 있습니다. 웹 사이트와 서비스를 단일 역할로 결합하거나 다양한 확장 성 요구에 따라 여러 역할로 분할하도록 선택할 수 있습니다.

좋은 시작을 위해 플랫폼 교육 키트를 살펴보고 연습을 시작하십시오.


답변

  • 웹 역할은 IIS에서 호스팅되는 웹 응용 프로그램입니다.
  • 작업자 역할은 일부 작업을 수행 할 수있는 프로세스입니다 (예 : 업로드 된 이미지를 자동으로 압축하고 데이터베이스에서 무언가 변경 될 때마다 작업 수행, 대기열 및 프로세스에서 새 메시지 가져 오기, 이름 지정).
  • VM 역할 호스트 VM

답변

며칠 전에이 SO 질문 / 답변을 보았고 내 머리 위로 약간 제공된 답변을 찾았습니다 (저는 Azure 및 웹에 처음 접했습니다). 이 요약은 오늘 밤 Azure 기본 사항에서 작업자와 웹 역할 간의 핵심 차이점에 대한 높은 수준의 개요라고 생각했습니다.

둘 사이의 주요 차이점은 웹 역할의 인스턴스는 IIS를 실행하지만 작업자 역할의 인스턴스는 그렇지 않다는 것입니다. 그러나 둘 다 동일한 방식으로 관리되지만 응용 프로그램에서 둘 다 사용하는 것이 일반적입니다. 예를 들어 웹 역할 인스턴스는 사용자의 요청을 수락 한 다음 처리를 위해 작업자 역할 인스턴스로 전달할 수 있습니다. 애플리케이션을 확장하거나 축소하려면 Windows Azure에 두 역할의 더 많은 인스턴스를 만들거나 기존 인스턴스를 종료하도록 요청할 수 있습니다. Windows Azure Virtual Machines와 유사하게 각 웹 또는 작업자 역할 인스턴스가 실행되는 시간에 대해서만 요금이 부과됩니다.

Azure 개발을 처음 접하는 경우 여기에서 전체 기사를 읽는 것이 좋습니다. Intro to Windows Azure

나는 이것이 나를 위해 전구를 켜는 데 도움이 된만큼 누군가에게 도움이되기를 바랍니다.


답변

Windows Azure의 웹 역할은 특수 목적이며 프런트 엔드 웹 응용 프로그램을 호스팅하는 데 사용되는 전용 IIS (인터넷 정보 서비스) 웹 서버를 제공합니다. 웹 애플리케이션을 웹 역할에 빠르고 쉽게 배포 한 다음 수요에 맞게 컴퓨팅 기능을 확장 또는 축소 할 수 있습니다.


답변