Skip to main content

Azure Express Route (Day 8 of 31)

List of all posts from this series:

Short Description 
Express Routes is a private connection between your network (on-premises) and Azure Data Centers. When using this feature, you have a direct connection with Azure Data Centers, that is not shared with other users.
Because of this, a connection like this is not only fast but is also extremely secure. All traffic from clients that use this feature is spitted in two ‘channels’. One channel is used for traffic that hits Azure public services and the second one for traffic that hits Azure Compute resources. For each of this channels (Direct Layer 3 and Layer 3), there are different speed that are guaranteed.

Main Features 
Not over public Internet
Connection that are made over Express Route are going over a private connection that is not connected to the ‘known internet’.
More secure
Data that are send over the wire is more secure because the connection is over a private wire that cannot be accessed by public users.
Faster speed
The speeds that are offered over this connection are higher and bandwidth is dedicated to you.
Lower latency
Having a direct connection between you and Azure data center, reduce the latency that normally exists between two endpoints.
Bandwidth Available
There are different options of bandwidth that are available from 10 Mbps and goes to 10 Gbsp.
Connection Redundancy
Yes, we even have connection redundancy. For Layer 3 Connectivity (over Network Service Providers) can have a redundant connection (Active Active connection).
Easy migration from S2S and P2S
If you already use Site to Site of Point to Site and want to migrate to Express Route you will discover that migration can be made very easily.
Virtual networks
All virtual networks that are connected to the same Express Route can talk with each other. You will be able to connect virtual networks from different subscriptions as long as all of them are connected to the same express route.
All Virtual Networks connected to the same Express Route are part from the same routing domain and are not isolation between them. If you need isolation between than you will need to create different express routes for each of them.

Number of routes
In this moment there is a limit up to 4.000 routes for public peering and 3.000 routes for private peering.
S2S or P2S cannot be used in combination with Express Route
You cannot use both methods to connect to Azure infrastructure. If you use Express Route, that you will not be able to use for the same connection S2S or P2S.
Multiple Providers
Each Express Route can be associated with only one provider. Because of this you cannot associates the same Express Route with multiple providers.
VLANs to Azure Express Route
Layer 2 connectivity extensions to Azure is not supported.

Applicable Use Cases 
Below you can find 4 use cases when Express Route can be used with success:
Video Streaming
When you are using Azure Media Services for video streaming. In this case you will want to be able to stream live content to Azure Media Services all the time. In this case you need a stable connection between your studios and Azure Data Centers. In this case Express Route can be a good option for you.
Monitor and Support
If your infrastructure and services are on Azure, than you will need at monitor and support phase an Express Connection between you and Azure. Support team needs to be able to access your Azure services in a fast and reliable way.
Data Storage
When you are using Azure Storage or SQL Azure to store your data, you will also want a low latency and fast connection between your data and your on-premises infrastructure. Express Routes can be a solution for this problem.
Bank data privacy
If you are a bank and need a secure connection between on-premises sites and your Azure services thank Express Route can be a very good solution. Using it you will have a secure connection that cannot be accessed from internet.

Code Sample
The only same code that I could add are different part of Power Shell scripts that are used to configure and manage Express Route. To add more value to this section I added the deployment workflow diagram that can be found on MSDN.

Pros and Cons 

  • Fast
  • Secure
  • Reliable
  • Redundant 
  • Easy to connect


  • Not available worldwide yet

The pricing is based on outbound traffic. A part of outbound is free, included in subscription. Exceeding it, you will be charged with a small rate per GB. The included data transfer traffic may defer based on Exchange provider port speed that you prefer to use.
When you calculate the costs of using Express Route you should take into account:
Exchange Provider Port Speed
Outbound Data Transfer

Azure Express Route can be used with success when you want to connect your on-premises infrastructure with Azure services, having a reliable and fast connection. This is a feature that should be used by all enterprise users that host their backend on Microsoft Azure.


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 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 …

Entity Framework (EF) TransactionScope vs Database.BeginTransaction

In today blog post we will talk a little about a new feature that is available on EF6+ related to Transactions.
Until now, when we had to use transaction we used ‘TransactionScope’. It works great and I would say that is something that is now in our blood.
using (var scope = new TransactionScope(TransactionScopeOption.Required)) { using (SqlConnection conn = new SqlConnection("...")) { conn.Open(); SqlCommand sqlCommand = new SqlCommand(); sqlCommand.Connection = conn; sqlCommand.CommandText = ... sqlCommand.ExecuteNonQuery(); ... } scope.Complete(); } Starting with EF6.0 we have a new way to work with transactions. The new approach is based on Database.BeginTransaction(), Database.Rollback(), Database.Commit(). Yes, no more TransactionScope.
In the followi…

GET call of REST API that contains '/'-slash character in the value of a parameter

Let’s assume that we have the following scenario: I have a public HTTP endpoint and I need to post some content using GET command. One of the parameters contains special characters like “\” and “/”. If the endpoint is an ApiController than you may have problems if you encode the parameter using the http encoder.
using (var httpClient = new HttpClient()) { httpClient.BaseAddress = baseUrl; Task<HttpResponseMessage> response = httpClient.GetAsync(string.Format("api/foo/{0}", "qwert/qwerqwer"))); response.Wait(); response.Result.EnsureSuccessStatusCode(); } One possible solution would be to encode the query parameter using UrlTokenEncode method of HttpServerUtility class and GetBytes method ofUTF8. In this way you would get the array of bytes of the parameter and encode them as a url token.
The following code show to you how you could write the encode and decode methods.