Azure Service Queue to Communicate between On-Premise and Public Cloud

Vikram 96 Reputation points
2022-04-21T17:05:53.693+00:00

The scenario here is that the Customer does not want to use any kind of VPN connectivity between the Azure Public Cloud and the On-Premises Network for reasons best known to them.
So a Service on the On-Premises side can call a Service on the Azure side but the Service on the Azure side cannot directly call a Service hosted on-premise.

Looking at Azure Service Bus as an option to establish communication given these constraints called out above:

Here is a simplified view of the proposed approach:
195227-flow01.png

The Use case requires, that the calls actually need to be initiated from the Service on Cloud. So the Service on Cloud places a request message on the Queue and the Service on the On-Premise side reads it (as it is polling the queue) and then serves back the response.

Are there any simpler approaches to handle this scenario?

  1. Is it possible for the trigger from Service Bus topic to communicate back to the on-premise if the Worker has subscribed to it?
  2. Another option would be to use Azure Files and drop JSON Messages there but I think the Service Bus would be more performant than the Azure Files approach.

Looking forward to some suggestions here.

Azure Service Bus
Azure Service Bus
An Azure service that provides cloud messaging as a service and hybrid integration.
583 questions
0 comments No comments
{count} votes

Accepted answer
  1. MayankBargali-MSFT 69,971 Reputation points
    2022-04-22T04:49:55.177+00:00

    @Vikram Thanks for reaching out. Azure Service bus works on the pull model i.e. where client's need to pull the messages from service bus to consume it.

    To answer your question:

    Is it possible for the trigger from Service Bus topic to communicate back to the on-premise if the Worker has subscribed to it?
    Service bus works on pull model so your on-premises application needs to keep polling the service bus entity for any new messages.

    Another option would be to use Azure Files and drop JSON Messages there but I think the Service Bus would be more performant than the Azure Files approach.
    As your on-premise service will be on restricted network, so in case you are using service bus or any other azure services (azure relay etc.) then you need to whitelist the IP address or azure data center IP at your on primes end. The better solution would be using the azure relay in this case where your on Premise service can communicate with your public cloud. Either you can create hybrid connection or WCF service to communicate between your on premises service to web application in cloud.

    For more details you can refer to different sections on tutorial and samples.

    195355-image.png

    Feel free to get back to me if you have any queries or concerns.

    0 comments No comments

0 additional answers

Sort by: Most helpful