Programing

작업자 역할과 웹 작업

lottogame 2020. 11. 18. 08:23
반응형

작업자 역할과 웹 작업


내가 이해하는 바에 따르면 둘 다 클라우드에서 반복 가능한 작은 작업을 실행합니다.

어떤 이유와 어떤 상황에서 다른 하나를 선택하고 싶습니까?


몇 가지 기본 정보 :

WebJob 은 실행되는 환경을 사용자 정의 할 필요가없고 많은 리소스를 소비하지 않는 경량 작업 항목에 적합합니다. 또한 주기적으로 실행하거나 예약하거나 트리거해야하는 작업에도 정말 좋습니다. 저렴하고 설정 / 실행이 쉽습니다. 이는 귀하의 웹 사이트 컨텍스트에서 실행됩니다. 즉, 귀하의 웹 사이트가 실행되는 것과 동일한 환경을 갖게되고 이들이 사용하는 모든 리소스는 귀하의 웹 사이트에서 사용할 수없는 리소스입니다.

작업자 역할 은 리소스 집약적 인 워크로드 또는 실행중인 환경 (예 : 특정 .NET 프레임 워크 버전 또는 OS에 설치된 항목)을 수정해야하는 경우에 유용합니다. 작업자 역할은 더 비싸고 설정 및 실행하기가 약간 더 어렵지만 훨씬 더 많은 성능을 제공합니다.

일반적으로 WebJobs로 시작한 다음 워크로드에 WebJob이 제공 할 수있는 것보다 더 많은 것을 필요로하는 경우 작업자 역할로 이동합니다.


"파워"를 계산 능력으로 측정하려면 가상 환경에서 이것은 물리적 기계 (금속) 위에 몇 개의 레이어가 있는지를 의미합니다. 가상 머신의 사용자 코드는 물리적 머신을 관리하는 하이퍼 바이저 위에서 실행됩니다. 이것은 가장 두꺼운 층입니다. 가능할 때마다 하이퍼 바이저는 단순히 금속에 대한 통과 역할을하려고합니다.

WebJob에는 근본적으로 오버 헤드가 거의 없습니다. 샌드 박스 화되고 OS가 유지되며 실행되는지 확인하는 서비스 및 모듈이 있습니다. 그러나 애플리케이션 코드는 동일한 하이퍼 바이저를 사용하기 때문에 기본적으로 작업자 역할 에서처럼 금속에 가깝습니다.

측정하려는 것이 "유연성"이라면 작업자 역할을 사용하십시오. 관리되지 않거나 샌드 박스 화되어 있지 않으므로 더 유연합니다. 더 많은 소켓을 사용하고, 자신의 환경을 정의하고, 더 많은 패키지를 설치할 수 있습니다.

원하는 것이 "기능"인 경우 WebJobs에는 전체 기능 배열이 있습니다. 여기에는 온 프레미스 리소스에 대한 가상 네트워킹, 스테이징 환경, 원격 디버깅, 트리거링, 스케줄링, 스토리지 및 서비스 버스에 대한 손쉬운 연결 등이 포함됩니다.

대부분의 사람들은 인프라에 시간을 투자하지 않고 문제 해결에 집중하기를 원합니다. 이를 위해 WebJobs를 사용합니다. 더 많은 유연성이 필요하거나 보안 샌드 박스로 인해 다른 방법으로 수행 할 수없는 작업을 수행 할 수없는 경우 작업자 역할로 이동하십시오.

일부는 WebJob에서 수행되고 다른 일부는 작업자 역할에서 수행되는 하이브리드 솔루션을 구축하는 것도 가능하지만이 질문의 범위를 벗어납니다. (힌트 : WebJobs SDK)


웹 작업 또는 작업자 역할 사용을 선택할 때 기억해야 할 사항 :

  • 작업자 역할은 전용 VM에서 자체 호스팅되고 웹 작업은 웹 앱 컨테이너에서 호스팅됩니다.

  • 작업자 역할은 독립적으로 확장되고 웹 작업은 웹 앱 컨테이너와 함께 확장됩니다.

웹 작업은 RSS 피드를 폴링하고 메시지를 확인 및 처리하고 알림을 보내는 데 적합하며 작업자 역할보다 가볍고 저렴하지만 성능이 떨어집니다.

참고 URL : https://stackoverflow.com/questions/25825290/worker-role-vs-web-job

반응형