Microsoft recently announced that their Azure Relay Hybrid Connections service has reached General Availability. The Azure Relay Hybrid Connections service, which is WebSocket-based, complements the existing Azure Service Bus Relay offering which is now being referred to as WCF Relays. The WCF Relay is functionally similar to Hybrid Connections, but continues to have a dependency on Windows Communication Foundation (WCF). InfoQ previously covered the public preview Hybrid Connections announcement back in November 2016 which included an interview with Clemens Vasters from Microsoft.
A core capability of Azure Relay is to enable hybrid connectivity for customers. Microsoft positions the service as a way to:
Enable you to securely expose services that reside within a corporate enterprise network to the public cloud, without having to open a firewall connection, or require intrusive changes to a corporate network infrastructure. Relay supports a variety of different transport protocols and web services standards.
The Azure Relay service works by creating a bi-directional socket for communication tied to a rendezvous address within Azure. A client will then submit data to this rendezvous address and the data will be sent down the socket to the listener within the on-premises environment. Using this architecture is an alternative to network-level integration technologies like VPN which traditionally require a lot of static configuration between endpoints.
A key feature of the new Hybrid Connections service is its use of the WebSocket open standard protocol. This unlocks cross-platform development and allows the service to be used on Windows, Linux or any other platform supporting WebSockets. In addition, Hybrid Connections support additional programming languages including .NET Core, Javascript/Node.js and multiple RPC programming models.
Microsoft has provided the following guidance for developers when choosing which of the Relay Services to use:
Image Source: https://docs.microsoft.com/en-us/azure/service-bus-relay/relay-what-is-it#wcf-relays
Both WCF Relays and Hybrid Connections will continue to co-exist. Microsoft has stated:
These two service capabilities exist side-by-side in the Relay service for the foreseeable future. They share a common gateway, but are otherwise different implementations.
While a common gateway is used between the services, they are being metered differently from a pricing perspective. Hybrid Connections have a charge per listener and include 5GB of data transfer per month. Additional data transfer charges exist when more than 5GB has been transferred. WCF Relay pricing is based on Relay hours that that listener is enabled and a charge per 10 000 messages exchanged. For more details, please visit the Azure pricing page.