Hosting a web application in Azure that consumes on premise web services and ActiveMQ - azure

I'm looking at ways to host our web site in Azure. The Web application consumes on-premise web services and send/receive messages from ActiveMQ hosted on-premise. Is this possible? Any pointers will be helpful.

Short Answer: Yes, it's possible. Mixing Azure and On-Prem resources is what's called the Hybrid Cloud.
Long Answer:
You can use Azure App Service Environment to setup a Virtual Network with an Azure Web App that will allow for a VPN connection to be setup between your on-premises network and the Azure VNet. If VPN setup isn't an option of you, then you could use the Azure Service Bus Relay service to connect an on-premises WCF Web Service to the Azure Web App. Additionally, a Biztalk Hybrid Connection could be used to tunnel through the firewall between your on-premises resources and the Azure Web App. Hybrid Cloud is fully supported in Microsoft Azure and there are a few options to choose depending on which fits your needs / scenario best.

You can create a VPN on Azure, add the web site to it and then create a site to point VPN connection to add the VM that has the on-premise web service to it.
Another solution, if your web service is developed in WCF, you can use Service Bus Relay with your web service, this will make it accessible from your Azure web site.

Related

Azure Web app for containers to on-premises connection

Currently i'm hosting an API in an azure Web App for Containers App Service. Additionally, I have a logging database hosted on an on-premises service which can't be accessed publicly.
For accessing the on-premises service it is possible to create a hybrid connection; however this feature is not available through the Azure portal when using Web App for Containers as opposed to when using just a Web App.
Is it possible to create this Hybrid Connection programmatically or through the CLI?
Are there other methods of connecting to on-premises resources through azure?
The API is using ASP.NET Core.
I have been looking into the Microsoft.Azure.Relay package, but I seem to be unable to actually reach my on-premises endpoint through the samples supplied by the package.
Edit:
I have verified that i can make the Hybrid Connection using a Web App. To do this i have downloaded the Hybrid Connection Manager, installed it on the on-premises network and checked that an application can make HTTP calls to the endpoint at the end of the Hybrid Connection.
All of this is done through the azure portal by going into my Web App, then navigating to Networking, configuring Hybrid Connections and creating a Hybrid Connection, and connecting to the new Hybrid Connection through the Hybrid Connection Manager.
What i'm not capable of is doing the same for my Web App for Containers, as Networking is not a supported tap (yet?). Therefore, i'm looking for a programmatical way of doing this either through the CLI or in the sourcecode.

Access Azure App Service RESTful endpoints from On Premise resources using VPN

I have an on premise desktop application and I need it to hit Web APIs I have living in an App Service Web App (on an App Service Plan) in Azure.
My on premise resources are connected over a site to site VPN and I was wondering if there is a way I can call these Web API services(in an app service) directly over the VPN instead of going to the public endpoint.
The "normal" App Service Plan exists in a multi-tenant environment so this is not possible. You would need to use an ASE (App Service Environemnt) to use advanced networking features like VPN and NSG.

Consume RESTful service located On-Premises from Azure

My company has several RESTful services that are behind a firewall. I would like to be able to access these services from the Azure cloud with a client app as if the service is located in Azure.
For example, if I have an on-premises url like:
https://onpremiseservice/Customers/1
I would like to be able to access it from Azure like
https://mycompany.azurewebsite.net/Customers/1.
Is this possible? Can I do some kind of URL forwarding?
Updated 26th September 2022
You have many options, here they are in order of ease of configuration vs performance (ExpressRoute being the hardest to configure but with the best performance).
Use Azure API Management it was designed for this use case.
Configure the on prem firewall so that your Azure web app outbound IP's can connect to the on prem API. Then create a Web API in the Azure web app that proxies calls using HttpClient to your on perm API.
Use a Hybrid Connection
Use Point-to-Site VPN
Use Site-to-Site VPN
Use ExpressRoute
More information on your options in depth
It is possible. Use Azure Service Bus Relays.

Is there way to create HYBRID CONNECTIONS for azure could service or azure VM?

I azure we can create Hybrid connection to local sql server from Web Sites and Mobile Service. But I need to create Hybrid service to My Local SQL server from VM or cloud service. Is there anyway to achieve this one?
You can, actually.
The tool is called the Microsoft Azure Hybrid Connection Client
This runs as a service on your VM, and you add Hybrid Connections to it.
(That is, it = the VM that needs to talk to the on-prem asset.)
When a connection is added, a HOSTS file entry is made for the particular dns name and is routed through Azure to your on-prem Hybrid Connection Manager.
The Connection String you add will be the 'Application' one(s), which you will find in the old portal
According to Microsoft Hybrid connection will support only for WebSite and Mobile Web Services.
So I couldn't directly achieve my requirement. But alternative way is, implement the WCF service which can be hosted as WebSite.Now you can hosted your SQL database locally and create hybrid connection to the database from WCF service.Then you can call your WCF service from VM or cloud service.
Thanks,
Erandika

Azure to on premises web services

Can anybody tell me how to connect a web app running on azure to existing web services (.ASMX) on premises?
We do not have the source for the services they are exposed by third party applications and we do not want to open them up to public access.
Sounds like Azure's Service Bus Relay Service might be what you're looking for...
There might be three options based on your scenario. But I personally prefer the third one.
If you used azure cloud service (web role, worker role), you can use Windows Azure Connect. It builds an IP-sec communication between the azure machine and your local machine. Then you can connect to your local service through the its IPv6 address.
If you used azure virtual machine to host your azure project you can use Virtual Network. It's more powerful than the Windows Azure Connect.
You can use Windows Azure Service Bus Relay. It can open your local service to the cloud regardless how your azure project is hosted. But since it's only support WCF of Service Relay, and since you cannot change codes and config of your service, you might need some more works. Maybe you can create a small WCF on your local machine as a proxy, register it to Service Bus Relay, and pass all request/response to your local service.

Resources