Azure Relay – cross-platform, open-protocol connections

The Azure Relay service was amongst the initial core set of services available on Azure, and is a fundamental hybrid cloud integration tool for many current solutions running on Azure. The Relay allows for secure and seamless communication bridging between cloud and on-premises assets, or even between different sites using the cloud as a matchmaker. The Relay operates at the application-level, allowing for traversal of network address translation (NAT) boundaries and firewalls and for endpoint discovery completely without requiring any intrusive changes to the networking environment.

The first great news we have for you today is that the Relay service, which is developed and maintained by the same team that brings you Event Hubs and Service Bus Messaging, is now (finally!) available for management and monitoring in the modern Azure Portal, and as a standalone service as Relay.

But we have even greater news.

Until today, the Azure Relay’s capabilities have required using a particular runtime and platform: the full .NET Framework running on Windows. Building relayed services required using the WCF communication framework. Over the years, we’ve done a lot of (often invisible) work to make these capabilities robust on the client and in the service, and we will continue to offer them under the WCF Relay feature name. If you’re using the Relay features today with WCF, nothing changes.

If you are building apps on platforms other than Windows and/or using you own choice of languages, runtimes, or frameworks – everything changes.

Today, we’re announcing and making available the public preview of the next generation cross-platform and open-protocol Azure Relay capabilities, named Hybrid Connections.

Hybrid Connections

Hybrid Connections evolution of the Relay is completely based on HTTPS and WebSockets, allowing you to securely connect resources and services residing behind a firewall in your on-premises setup with services in the cloud or other assets anywhere.

Being based on the WebSockets protocol and thus providing a secure, bi-directional, and binary communications channel unencumbered by particularities of specific frameworks, allows easy integration with many existing and modern RPC frameworks such as Apache Thrift, Apache Avro, Microsoft Bond, and many others. It is also a great foundation for stream communication bridges that allows relaying database, remote desktop or shell connections, to name just some examples.

Hybrid Connections leverages the robust security model of the Relay service, and provides the proven load balancing and failover capabilities that Relay solutions rely on today.

The initial set of samples and the client code is available for C# and JavaScript (Node) today on GitHub and we will provide more language bindings as we work towards general commercial availability. The C# samples already demonstrate integration with Thrift and Avro, and we’re inviting contributions and further RPC framework bindings with wide open arms. The full protocol documentation to make that possible is now available on Azure Documentation Center.

Hybrid Connections and BizTalk Services

It is also important to note that this Hybrid Connections feature is a newer, but separate version from the Hybrid Connections feature brought to you by BizTalk Services. That particular feature will continue to run as it does today with no change in billing and how you use it.