Place a WCF service in the CDN endpoint? - azure

Is it any way of placing a WCF service in an Azure CDN Endopint? Or is it only valid to place static content?
It would be useful becasue I have a web frontend that constantly communicates with the WCF service.
If not, any suggestion on how to decrease delay?

If you want to run redundant WCF services in Azure, you create a WCF Service Web Role project and deploy it. Within the configuration, you can scale the deployment up to meet load. You can create and deploy multiple roles per package with each role having its separate instance count.
If you want the service to be distributed across multiple regions, you have to use the Azure Traffic Manager which handles directing traffic based on location or in a round robin format.

Related

How to achieve High Availability for multiple App Services in Azure

I have 2 same Web App and I have added them to application gateway's backed pool in Azure.
I have one domain for the application Gateway and I can bind only one web app to it.
Is there any way to add 2 Web App with the same domain of application gateway?
If not, then any other way to achieve high availability for Web Apps?
I want that if one Web App is not reachable, the traffic should go to other Web App. The Web Apps are not stateless and therefore ruled out the use of Traffic Manager Profile due to lack of Session Persistence.
I have gone through various questions mentioned below on the same topic, but none is related or have satisfactory solution.
- DNS: High Availability with Azure Web Apps + Traffic Manager
- Achieving High Availability using Azure Traffic Manager
- Is it possible that one domain name has multiple corresponding IP addresses?
For App Service, Application Gateway cannot be used for Load balancing Purpose. You can use Application Gateway as WAF. In your scenario, as Thomas stated, AFD would be the best option.
You can leverage the priority option which can be configured while adding App Service to the backend pool to achieve your ask.
You can assign priorities to your different backends when you want to use a primary service backend for all traffic, and provide backups in case the primary or the backup backends are unavailable.
In this case, when the probe to the Primary goes down, then the traffic will be routed to the secondary Web App.
Reference: https://learn.microsoft.com/en-in/azure/frontdoor/front-door-routing-methods

should I choose azure application gateway or load balancer or front door or traffic manager?

I have a SaaS web app developed with Angular 8 and Asp.net Core Web API. I have deployed web api to a azure web app and deployed angular front-end web app to another azure web app as well.
The users are from China and Australia and other countries. I want to have region load balance like Chinese users uses web app on china azure region and australian users use Australian azure region web app so that it has best performance. Azure SQL DB will be in one place (in australia).
In addition, i want to prevent attacking to web front app and web api like d-dos, web scraping and SQL injection. For web scraping, i want to add access rate limitation from one ip.
Can you please advise what service i should use? I saw the blog talking about azure application gateway, azure load balancer, azure front door and azure traffic manager. It is a bit confusing to me. I need a best practise based on my this real world scenario. Should I use one of the service or should I use multiple services?
Based on your requirement:
Since the Backend Resource is Web App, you can ignore Load balancer (Layer 4) where you can only add VMs or VMSS
Your another requirement is WAF, and it is only available in AFD and AppGW. But you can use Traffic Manager as first Tier Load balancing and have AppGW in the different regions to provide high resilience.
As you want users from specific country to reach nearest backend resource, it seems like, the best solution for you is AFD.
AFD is a global Load balancer. It has WAF capability. It can Cache the data and provide quicker responses(CDN functionality). AFD uses an intelligent probing mechanism, through which it chooses the endpoint which is closer to the client who is making the request.
Hope this helps.

Azure Traffic Manager for multiple web apps

Hello I have 3 different web app. Each web app has a different application with a different endpoint. I need to replicate all of these app services in multiples region. My question is. Do I need to have one Traffic manager for each replication application?
The other alternative that I had was. I could have one traffic manager in front of all applications, and Behind the traffic manager but ahead of the all application for integrating all app service in a one, I could have one API gateway. In that case, I suppose that I could have only one traffic manager instead of three.
Does somebody have one recommendation for this type of architecture?
Azure traffic manager is designed as a global service,not bound to a location. If you have 3 webapps located in different regions, use one traffic manager to route all requests will be ok. This reference architecture will be helpful: https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/app-service-web-app/multi-region

can we use load balancer on a two app services in azure

I am creating a network with 2 app services, containing 2 slots each
I know the load balancers are designed to work with VM's, but I am wondering if it is possible to place a load balencer on these 2 app services to balance the load between them, Is it possible to do so??
When you Scale your Web App you add instances of your current pricing tier and Azure deploys your Web App package to each of them.
There's a Load Balancer over all your instances, so, traffic is automatically load balanced between them. You shouldn't need a Virtual Machine for this and you don't need to configure any extra Traffic Manager.
You may want to refer: scale your app in Azure App Service for more details.
but I am wondering if it is possible to place a load balencer on
these 2 app services to balance the load between them, Is it possible
to do so??
According to your description, maybe you are looking for Azure application gateway(layer 7).
Azure application gateway works at the application layer (Layer 7 in the OSI network reference stack). It acts as a reverse-proxy service, terminating the client connection and forwarding requests to back-end endpoints.
Azure application gateway support HTTP, HTTPS and Websockets.
Here is the features offered by each service:
More information about Application gateway, please refer to this article.
Maybe little late but I guess this what you are looking at
Scale Out- A scale out operation is the equivalent of creating multiple copies of your web site and adding a load balancer to distribute the demand between them. When you scale out a web site in Windows Azure Web Sites there is no need to configure load balancing separately since this is already provided by the platform.
https://azure.microsoft.com/en-us/blog/scaling-up-and-scaling-out-in-windows-azure-web-sites/

Communication between 2 cloud services

I'am new in windows azure cloud services and I'd like to know if it's possible to allow communication between 2 roles in 2 different Cloud Services over an internal endpoint?
I have a small HttpModule which has the role of "dispatcher". This HttpModule is hosted in a Cloud Service and recieve request from the internet on a http endpoint (Web Role).
Then, I have a second Cloud Service which hosts a REST Service (Web Role too). I'd like that the httpModule forwards the incomming request to the REST Service through an internal endpoint.
Is it possible to do that (if yes, how?)
Thank you
There are a couple of ways to do this.
Make sure both deployments are part of the same subscription
Create an affinity group
Create a Vnet
Add both services to the group.
Pretty good description here:
http://michaelwasham.com/2012/08/06/connecting-web-or-worker-roles-to-a-simple-virtual-network-in-windows-azure/
Note that this will only work so long as both services are hosted in the same region. If you need to have multiple regions (e.g. a listener in every region, but a single worker), this won't work. For that you would need to use something like Azure Service Bus or connect via the VIPs.

Resources