Skip to main content

Azure Traffic Manager - How to use on-premises endpoints

Some weeks ago I wrote a short blog post about Traffic Manager. It is a great service that can be used to redirect traffic to the closest datacenter, redirect traffic in a balanced way (Round Robin) or to be able to redirect traffic to another location when an endpoint goes down.
For more information related to it please visit the following blog post: http://vunvulearadu.blogspot.com/2013/07/traffic-manager-overview.html
But let’s see what else we can do with Traffic Manager. Of course we can register very easily endpoints from Azure, this is normally. But you should know that it is possible to register public endpoint that are hosted on on-premises system or why not on other clouds providers.
This features is the kind of feature that can make your life easier. Why? Why not have endpoints on-premises and use Traffic Manager only for redirecting purposes, in case of failover and so on – almost like a load balancer, but without the ability to read the load of each endpoint (this cannot be done using Traffic Manager, but is full supported out of the box by the Load balancer from Azure – and is free!).
If you create a new Traffic Manager instance, you will see that you can register endpoints only from the same subscription and ONLY the one that are hosted on Azure – from the Azure portal. If you need to register an endpoint that is hosted on on-premises servers, than you need to do this by hand using PowerShell or the REST API.
REST API: http://msdn.microsoft.com/en-us/library/azure/hh758257.aspx
PowerShell: http://msdn.microsoft.com/library/dn690257.aspx
Why we cannot do this from portal? I don’t know, but it would be nice.
In both cases it is important to set the ‘Type’ of the endpoint to ‘Any’. Otherwise, you will add the endpoint as other endpoint.
PowerShell Sample:
Add-AzureTrafficManagerEndpoint 
  -TrafficManagerProfile $TrafficManagerProfile 
  -DomainName "foo.onpremises.com" 
  -Status "Enabled" 
  -Type "Any" | Set-AzureTrafficManagerProfile

Enjoy!

Comments

Post a Comment

Popular posts from this blog

ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded

Today blog post will be started with the following error when running DB tests on the CI machine:
threw exception: System.InvalidOperationException: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information. at System.Data.Entity.Infrastructure.DependencyResolution.ProviderServicesFactory.GetInstance(String providerTypeName, String providerInvariantName) This error happened only on the Continuous Integration machine. On the devs machines, everything has fine. The classic problem – on my machine it’s working. The CI has the following configuration:

TeamCity.NET 4.51EF 6.0.2VS2013
It seems that there …

How to check in AngularJS if a service was register or not

There are cases when you need to check in a service or a controller was register in AngularJS.
For example a valid use case is when you have the same implementation running on multiple application. In this case, you may want to intercept the HTTP provider and add a custom step there. This step don’t needs to run on all the application, only in the one where the service exist and register.
A solution for this case would be to have a flag in the configuration that specify this. In the core you would have an IF that would check the value of this flag.
Another solution is to check if a specific service was register in AngularJS or not. If the service was register that you would execute your own logic.
To check if a service was register or not in AngularJS container you need to call the ‘has’ method of ‘inhector’. It will return TRUE if the service was register.
if ($injector.has('httpInterceptorService')) { $httpProvider.interceptors.push('httpInterceptorService&#…

Fundamental Books of a Software Engineer (version 2018)

More then six years ago I wrote a blog post about fundamental books that any software engineer (developer) should read. Now it is an excellent time to update this list with new entries.

There are 5 different categories of books, that represent the recommended path. For example, you start with Coding books, after that, you read books about Programming, Design and so on.
There are some books about C++ that I recommend not because you shall know C++, only because the concepts that you can learn from it.

Coding

Writing solid codeCode completeProgramming Pearls, more programming pearls(recommended)[NEW] Introduction to Algorithms

Programming

Refactoring (M. Fowler)Pragmatic ProgrammerClean code[NEW] Software Engineering: A Practitioner's Approach[NEW] The Mythical Man-Month[NEW] The Art of Computer Programming

Design

Applying UML and Patterns (GRASP patterns)C++ coding standards (Sutter, Alexandrescu)The C++ programming language (Stroustrup, Part IV)Object-oriented programming (Peter Coad)P…