locked
VM Scaleset vs Azure Batch RRS feed

  • Question

  • VM scale set can be used to create multiple VM's based on the business requirement and, Also, Azure batch is used to execute a job in multiple VM's.

    What is the exact difference between Azure Batch and VM Scale set?

    Monday, September 16, 2019 4:46 AM

Answers

  • Hello Balu Kantu,

    VMSS and Azure batch are similar in terms of few capabilities like scaling, configuration of selecting the nodes and they way they are handling the workload.

    The basic difference is Azure batch for running long running tasks/jobs where as VMSS is for handling short spike workloads. Azure batch in the back-end uses VMSS/Cloud Service for scaling workloads.

    VM Scale sets are good for running web applications/api based workloads where automatic scaling of the applications is handled and traffic load balancing is done.


    VMSS has below advantages, as mentioned in this document.

    • Ease of creating and managing multiple VM's.
    • HA and app resiliency.
    • Scaling of apps based on demand.
    • Works at large scale.

    Azure Batch is for tasks, scheduling jobs, running intrinsically parallel and tightly coupled workloads. Please check this document for more information and also the type of workloads that can used for Azure batch processing.

    I have seen that you have posted same question in stack overflow, which is already answered. 

    If suggested response have solved your issue, do click “Mark as Answer” and "Up-Vote" so that other forum members can benefit from it. If you need any further help do let us know.

    Thanks.



    Monday, September 16, 2019 6:47 AM

All replies

  • Hello Balu Kantu,

    VMSS and Azure batch are similar in terms of few capabilities like scaling, configuration of selecting the nodes and they way they are handling the workload.

    The basic difference is Azure batch for running long running tasks/jobs where as VMSS is for handling short spike workloads. Azure batch in the back-end uses VMSS/Cloud Service for scaling workloads.

    VM Scale sets are good for running web applications/api based workloads where automatic scaling of the applications is handled and traffic load balancing is done.


    VMSS has below advantages, as mentioned in this document.

    • Ease of creating and managing multiple VM's.
    • HA and app resiliency.
    • Scaling of apps based on demand.
    • Works at large scale.

    Azure Batch is for tasks, scheduling jobs, running intrinsically parallel and tightly coupled workloads. Please check this document for more information and also the type of workloads that can used for Azure batch processing.

    I have seen that you have posted same question in stack overflow, which is already answered. 

    If suggested response have solved your issue, do click “Mark as Answer” and "Up-Vote" so that other forum members can benefit from it. If you need any further help do let us know.

    Thanks.



    Monday, September 16, 2019 6:47 AM
  • At a high-level, Azure Batch provides two fundamental pieces for scheduling Batch and HPC workloads in the cloud:

        • Managed infrastructure
        • Cloud-native job scheduling

    Azure Batch presents infrastructure at a managed layer "above" VMSS and CloudServices. Azure Batch orchestrates the pieces underneath to provide a concept called Batch pools, which provide potentially higher scale (as multiple deployments can be orchestrated together) and higher resiliency to failures as Batch automatically recovers virtual machines or instances which have degraded.

    Additionally, and just as important, Azure Batch provides cloud-native job scheduling. In a nutshell, Azure Batch provides concepts for job queues and tasks which you can define within the programmatic (API/SDK) or tooling that is available. Azure Batch operates on these concepts to execute the work you define (e.g., a command-line with dependencies or a Docker container). Azure Batch has the ability to retry these tasks if they fail on different nodes within a pool. Azure Batch provides an autoscale system that allows you to dynamically resize your infrastructure (Batch pools) that respond to node metrics and the number of jobs/tasks executing in the system.

    The technical overview referenced above (and the FAQ for this forum) is a good starting point to learn about Batch.

    Some points regarding Vikas' reply are below.

    The following, in general, is not accurate:

    The basic difference is Azure batch for running long running tasks/jobs where as VMSS is for handling short spike workloads.

    Azure Batch works for both long running tasks and short, bursty workloads. However, in the latter, certain considerations should be performed to understand latency vs cost amortization particular to the customer's scenario. Azure Batch would probably not be a suitable target for long-running services. VMSS or other Azure services would be a better fit.

    For these VMSS advantages mentioned:

    • Ease of creating and managing multiple VM's.
    • HA and app resiliency.
    • Scaling of apps based on demand.
  • Works at large scale.


    Azure Batch has similar features/advantages, some arguably more so than VMSS such as the Batch pool concept (which facilitates both reduction of management burden of infrastructure and larger scales) and Batch autoscale concepts for scaling on-demand. Azure Batch also provides task execution resiliency to certain degrees.

Monday, September 16, 2019 4:05 PM
  • Any update on this issue?

    If the above helped please remember to "Up-vote" and "Mark as Answer" so others in the community can benefit

    Friday, September 20, 2019 11:38 PM