작업자 역할 대 웹 작업
클라우드에서 반복 가능한 작은 작업을 실행하는 것으로 알고 있습니다.
어떤 이유와 상황에서 다른 것보다 하나를 선택해야 합니까?
몇 가지 기본 정보:
웹 작업은 실행되는 환경을 사용자 지정할 필요가 없고 리소스를 많이 사용하지 않는 경량 작업 항목에 적합합니다.또한 주기적으로 실행하거나 예약하거나 트리거해야 하는 작업에도 매우 유용합니다.가격이 저렴하고 설정/실행이 쉽습니다.웹 사이트의 컨텍스트에서 실행되므로 웹 사이트가 실행되는 환경과 동일한 환경을 사용할 수 있으며 사용자가 사용하는 리소스는 웹 사이트에서 사용할 수 없는 리소스입니다.
작업자 역할은 리소스를 많이 사용하는 워크로드에 적합하거나 작업자 역할이 실행되는 환경을 수정해야 하는 경우에 적합합니다.NET 프레임워크 버전 또는 OS에 설치된 버전).작업자 역할은 비용이 많이 들고 설정 및 실행이 약간 더 어렵지만 훨씬 더 많은 기능을 제공합니다.
일반적으로 워크로드에 웹 작업이 제공할 수 있는 것보다 더 많은 작업이 필요한 경우에는 웹 작업으로 시작한 다음 작업자 역할로 이동합니다.
"전력"을 계산 능력으로 측정하면 가상 환경에서 물리적 시스템(금속)의 맨 위에 있는 계층 수가 계산됩니다.가상 시스템의 사용자 코드는 물리적 시스템을 관리하는 하이퍼바이저 위에서 실행됩니다.이것이 가장 두꺼운 층입니다.가능할 때마다 하이퍼바이저는 단순히 금속에 대한 패스스루 역할을 하려고 합니다.
기본적으로 웹 작업에 대한 오버헤드는 거의 없습니다.샌드박스화되고, OS가 유지되며, 확실하게 실행될 수 있도록 서비스와 모듈이 있습니다.그러나 애플리케이션 코드는 동일한 하이퍼바이저를 사용하기 때문에 기본적으로 작업자 역할에서와 마찬가지로 금속에 가깝습니다.
측정하려는 항목이 "유연성"인 경우 작업자 역할을 사용합니다. 작업자 역할은 관리되거나 샌드박스로 연결되지 않으므로 더 유연합니다.더 많은 소켓을 사용하고, 사용자 환경을 정의하고, 더 많은 패키지를 설치할 수 있습니다.
원하는 것이 "기능"인 경우, WebJobs에는 전체 기능 배열이 있습니다.가상 네트워킹에서 온프리미엄 리소스, 스테이징 환경, 원격 디버깅, 트리거링, 스케줄링, 스토리지 및 서비스 버스로의 간편한 연결 등을 포함합니다.
대부분의 사람들은 인프라에 시간을 투자하지 않고 문제 해결에 집중하기를 원합니다.이를 위해 웹 작업을 사용합니다.더 많은 유연성이 필요하거나 보안 샌드박스가 다른 방법으로 수행할 수 없는 작업을 방해하는 경우 작업자 역할로 이동합니다.
일부는 WebJobs에서 수행되고 다른 부분은 Worker Roles에서 수행되는 하이브리드 솔루션을 구축할 수도 있지만, 이는 이 질문의 범위를 벗어납니다.(힌트: WebJobs SDK)
웹 작업 또는 작업자 역할을 선택할 때 주의해야 할 사항:
작업자 역할은 전용 VM에서 자체 호스팅되고 웹 작업은 Web App 컨테이너에서 호스팅됩니다.
작업자 역할은 독립적으로 확장되고 웹 작업은 웹 앱 컨테이너와 함께 확장됩니다.
웹 작업은 RSS 피드를 폴링하고, 메시지를 확인 및 처리하며, 알림을 보내는 데는 작업자 역할보다 가볍고 저렴하지만 강력하지 않습니다.
언급URL : https://stackoverflow.com/questions/25825290/worker-role-vs-web-job
'programing' 카테고리의 다른 글
커밋이 포함된 모든 태그를 나열하는 방법은 무엇입니까? (0) | 2023.05.16 |
---|---|
노드에서 stdin에서 한 줄씩 읽는 방법 (0) | 2023.05.11 |
sudo를 사용할 때 명령을 찾을 수 없습니다. (0) | 2023.05.11 |
각 [y,n,q,a,d,/,K,j,J,g,e,?]는 git-p의 맥락에서 무엇을 나타냅니까? (0) | 2023.05.11 |
Python Script가 매 시간 정확하게 실행되도록 예약 (0) | 2023.05.11 |