programing

작업자 역할 대 웹 작업

i4 2023. 5. 11. 21:06
반응형

작업자 역할 대 웹 작업

클라우드에서 반복 가능한 작은 작업을 실행하는 것으로 알고 있습니다.

어떤 이유와 상황에서 다른 것보다 하나를 선택해야 합니까?

몇 가지 기본 정보:

작업은 실행되는 환경을 사용자 지정할 필요가 없고 리소스를 많이 사용하지 않는 경량 작업 항목에 적합합니다.또한 주기적으로 실행하거나 예약하거나 트리거해야 하는 작업에도 매우 유용합니다.가격이 저렴하고 설정/실행이 쉽습니다.웹 사이트의 컨텍스트에서 실행되므로 웹 사이트가 실행되는 환경과 동일한 환경을 사용할 수 있으며 사용자가 사용하는 리소스는 웹 사이트에서 사용할 수 없는 리소스입니다.

작업자 역할은 리소스를 많이 사용하는 워크로드에 적합하거나 작업자 역할이 실행되는 환경을 수정해야 하는 경우에 적합합니다.NET 프레임워크 버전 또는 OS에 설치된 버전).작업자 역할은 비용이 많이 들고 설정 및 실행이 약간 더 어렵지만 훨씬 더 많은 기능을 제공합니다.

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

"전력"을 계산 능력으로 측정하면 가상 환경에서 물리적 시스템(금속)의 맨 위에 있는 계층 수가 계산됩니다.가상 시스템의 사용자 코드는 물리적 시스템을 관리하는 하이퍼바이저 위에서 실행됩니다.이것이 가장 두꺼운 층입니다.가능할 때마다 하이퍼바이저는 단순히 금속에 대한 패스스루 역할을 하려고 합니다.

기본적으로 웹 작업에 대한 오버헤드는 거의 없습니다.샌드박스화되고, OS가 유지되며, 확실하게 실행될 수 있도록 서비스와 모듈이 있습니다.그러나 애플리케이션 코드는 동일한 하이퍼바이저를 사용하기 때문에 기본적으로 작업자 역할에서와 마찬가지로 금속에 가깝습니다.

측정하려는 항목이 "유연성"인 경우 작업자 역할을 사용합니다. 작업자 역할은 관리되거나 샌드박스로 연결되지 않으므로 더 유연합니다.더 많은 소켓을 사용하고, 사용자 환경을 정의하고, 더 많은 패키지를 설치할 수 있습니다.

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

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

일부는 WebJobs에서 수행되고 다른 부분은 Worker Roles에서 수행되는 하이브리드 솔루션을 구축할 수도 있지만, 이는 이 질문의 범위를 벗어납니다.(힌트: WebJobs SDK)

웹 작업 또는 작업자 역할을 선택할 때 주의해야 할 사항:

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

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

웹 작업은 RSS 피드를 폴링하고, 메시지를 확인 및 처리하며, 알림을 보내는 데는 작업자 역할보다 가볍고 저렴하지만 강력하지 않습니다.

언급URL : https://stackoverflow.com/questions/25825290/worker-role-vs-web-job

반응형