Azure App Service vs Azure Service Bus

Need advice about which tool to choose?Ask the StackShare community!

Azure App Service

301
376
+ 1
11
Azure Service Bus

273
529
+ 1
7
Add tool

Azure App Service vs Azure Service Bus: What are the differences?

Introduction

Azure App Service and Azure Service Bus are two popular services provided by Microsoft Azure. While both are used for building and deploying applications, there are key differences between them that make them suitable for different use cases.

  1. Deployment Model: Azure App Service is a Platform as a Service (PaaS) offering that allows developers to easily deploy web, mobile, and API applications without having to manage underlying infrastructure. On the other hand, Azure Service Bus is a cloud messaging service that enables reliable communication between distributed applications. It follows a message-based communication model, where applications can send and receive messages through queues or topics.

  2. Application Hosting: Azure App Service provides a fully managed environment for hosting applications, handling the scalability, availability, and security aspects. It supports multiple programming languages and frameworks, making it suitable for a wide range of applications. Azure Service Bus, on the other hand, focuses on message queuing and publish-subscribe patterns. It provides features like message routing, session handling, and message batching, making it ideal for building decoupled and scalable architectures.

  3. Message Delivery Guarantees: Azure App Service ensures that the applications deployed on it are highly available, with built-in scaling options to handle traffic spikes. It provides automatic scaling, load balancing, and fault tolerance. Azure Service Bus guarantees reliable message delivery, by persisting messages in durable message stores and providing features like duplicate detection, time-to-live, and transactional support. It ensures that messages are delivered even in the presence of failures.

  4. Message Ordering: Azure App Service does not enforce any strict ordering of requests or messages, as it focuses on serving web, mobile, and API applications that typically require high throughput. On the other hand, Azure Service Bus enables strict ordering of messages within a queue or topic. It ensures that messages are processed in the order they are received, making it suitable for scenarios where strict ordering is critical.

  5. Message Size Limit: Azure App Service has a limit on the request and response payload size, typically 100 MB. It is designed for handling web requests and responses, where large payloads are not common. Azure Service Bus, on the other hand, supports larger message sizes, up to 256 KB for standard messaging and 1 MB for premium messaging. This makes it suitable for scenarios where larger payloads need to be sent between applications.

  6. Message Durability: Azure App Service does not provide built-in durability for messages or requests. If a request fails, it needs to be retried by the client. Azure Service Bus ensures message durability by storing messages in reliable storage until they are explicitly consumed by the receiver. This allows for a more robust and fault-tolerant message processing.

In summary, Azure App Service is a PaaS offering for hosting web, mobile, and API applications, while Azure Service Bus is a cloud messaging service for reliable communication between distributed applications. App Service focuses on application hosting and scalability, while Service Bus focuses on message queuing and publish-subscribe patterns. App Service does not enforce strict ordering and has limitations on message size, while Service Bus provides strict ordering and supports larger message sizes. App Service does not provide built-in durability for messages, while Service Bus ensures message durability.

Advice on Azure App Service and Azure Service Bus
André Almeida
Technology Manager at GS1 Portugal - Codipor · | 5 upvotes · 432.5K views
Needs advice
on
Azure Service BusAzure Service Bus
and
RabbitMQRabbitMQ

Hello dear developers, our company is starting a new project for a new Web App, and we are currently designing the Architecture (we will be using .NET Core). We want to embark on something new, so we are thinking about migrating from a monolithic perspective to a microservices perspective. We wish to containerize those microservices and make them independent from each other. Is it the best way for microservices to communicate with each other via ESB, or is there a new way of doing this? Maybe complementing with an API Gateway? Can you recommend something else different than the two tools I provided?

We want something good for Cost/Benefit; performance should be high too (but not the primary constraint).

Thank you very much in advance :)

See more
Replies (2)

A Pro of Azure Service Bus is reliability and persistence: you can send message when receiver is offline; receiver can read it when it back online. A Cons is costs and message size. You can consider also SignalR

See more
Matt Madzia
Recommends

There are many different messaging frameworks available for IPC use. It's not really a question of how "new" the technology is, but what you need it to do. Azure Service Bus can be a great service to use, but it can also take a lot of effort to administrate and maintain that can make it costly to use unless you need the more advanced features it offers for routing, sequencing, delivery, etc. I would recommend checking out this link to get a basic idea of different messaging architectures. These only cover Azure services, but there are many other solutions that use similar architectural models.

https://docs.microsoft.com/en-us/azure/event-grid/compare-messaging-services

See more
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of Azure App Service
Pros of Azure Service Bus
  • 6
    .Net Framework
  • 5
    Visual studio
  • 4
    Easy Integration with .Net
  • 2
    Cloud Native
  • 1
    Use while high messaging need

Sign up to add or upvote prosMake informed product decisions

Cons of Azure App Service
Cons of Azure Service Bus
    Be the first to leave a con
    • 1
      Limited features in Basic tier
    • 1
      Skills can only be used in Azure - vendor lock-in
    • 1
      Lacking in JMS support
    • 1
      Observability of messages in the queue is lacking

    Sign up to add or upvote consMake informed product decisions

    What is Azure App Service?

    Quickly build, deploy, and scale web apps created with popular frameworks .NET, .NET Core, Node.js, Java, PHP, Ruby, or Python, in containers or running on any operating system. Meet rigorous, enterprise-grade performance, security, and compliance requirements by using the fully managed platform for your operational and monitoring tasks.

    What is Azure Service Bus?

    It is a cloud messaging system for connecting apps and devices across public and private clouds. You can depend on it when you need highly-reliable cloud messaging service between applications and services, even when one or more is offline.

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Azure App Service?
    What companies use Azure Service Bus?
    Manage your open source components, licenses, and vulnerabilities
    Learn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Azure App Service?
    What tools integrate with Azure Service Bus?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    What are some alternatives to Azure App Service and Azure Service Bus?
    Azure Service Fabric
    Azure Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices. Service Fabric addresses the significant challenges in developing and managing cloud apps.
    AWS Elastic Beanstalk
    Once you upload your application, Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring.
    Google App Engine
    Google has a reputation for highly reliable, high performance infrastructure. With App Engine you can take advantage of the 10 years of knowledge Google has in running massively scalable, performance driven systems. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow.
    Azure Functions
    Azure Functions is an event driven, compute-on-demand experience that extends the existing Azure application platform with capabilities to implement code triggered by events occurring in virtually any Azure or 3rd party service as well as on-premises systems.
    Kubernetes
    Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions.
    See all alternatives