Traffic flowing across the Internet knows what path to follow because of the BGP routing protocol. BGP routers exchange routing information with each other, populating their forwarding tables with directions to remote destinations. BGP is extraordinarily good at what it does. BGP was designed to keep the Internet connected globally no matter what topological changes might happen in a network over time.
Those who observe global routing tables know that the Internet topology is constantly changing. BGP never settles down into a static state. Internet routers, circuits, and BGP policies are too fluid. That reality highlights how capable BGP is. In a state of constant churn, most of us are able to access whatever we want on the Internet whenever we want it. Imgur and Netflix are always there for us.
BGP is good at keeping the Internet connected. Fair enough. But BGP is not so good at sending traffic via the fastest or best performing path. That is, BGP makes decisions via a complex set of metrics, weights, and policies, but none of those variables inherently help determine which path might be the fastest path or the path that would result in a specific performance profile for a given application.
For companies that are moving their applications to the public cloud, how BGP routes traffic becomes of business-impacting relevance. You want your application to perform well for your users and customers, no matter where they are on the Internet. You don’t simply want your app to be connected to your users, as important as that is. You also want your application to be consistently responsive and predictable, no matter where your application’s consumers are to be found.
Tackling The Internet Performance Problem
Enter the market for traffic optimization schemes across the Internet. These various schemes tackle the problem of helping applications perform well, despite how the global BGP routing table might direct.
- Content distribution networks. CDNs work by replicating copies of data all over the Internet, and serving customers the copy closest to them.
Akamai is perhaps the most well known player here, but CloudFlare is in this space, too, among others such as AWS’s CloudFront.
- Overlay networks. These work by creating a virtual network on top of the Internet, tunneling between routers scattered all over the planet. The overlay network sends traffic via an engineered path between overlay routers to meet the goals of a administrator-defined policy. Traffic is handed back to the global Internet as close to the destination as possible.
Teridion and TELoIP map to this scheme, each targeting rather different types of customers and use cases.
- BGP manipulation edge devices. These work by probing the possible paths available to a given destination, and selecting the best performing path based on the result of the probes. For example, a path could be probed for congestion, jitter, loss, and latency. When the most appropriate path is determined, the BGP manipulation device sets next-hop to be across that circuit. That might override what BGP, left to its default best path algorithm, might have selected.
Border 6, acquired by Expereo in 2017 falls into this category. Noction’s Intelligent Routing Platform (IRP) is also a BGP manipulator.
Noction’s IRP For Cloud
In January 2018, Noction announced IRP for Cloud, a spinoff of their IRP product that’s been in use by hosting companies and ISPs since 2012. IRP for Cloud is aimed at businesses hosting applications in the public cloud, and wishing to improve the experience of their users by sending their traffic via a path that performs better than BGP left to its own decision making.
What Does IRP For Cloud Do?
IRP for Cloud sends traffic leaving the public cloud to a data center Noction has built. Noction’s facility brings in a multitude of Internet connections from a variety of providers. IRP for Cloud decides which connection will result in the best performance for the end user, and sends the traffic via that path. This routing strategy is used instead of allowing the public cloud provider to send your application’s traffic to the Internet using standard BGP best path calculations.
How Does IRP For Cloud Work?
Consumers of IRP for Cloud install it into their AWS VPC using an AMI available from the AWS Marketplace. Once authorized, the IRP for Cloud instance becomes the default gateway for the VPC, replacing AWS’s default gateway.
Traffic leaving the VPC is routed to Noction’s data center located in Ashburn, VA via AWS Direct Connect circuits. In Noction’s data center, IRP for Cloud decides which of the many connections Noction has to the Internet is best for the outbound traffic, setting the BGP next-hop attribute accordingly in their egress routers.
That covers outbound traffic, but what about inbound traffic? Inbound traffic comes into the customer’s VPC via AWS’s normal path. In other words, nothing changes. If this routing asymmetry bothers your engineering OCD, consider that inbound traffic is typically light–a request for content, control channel commands, that sort of thing. It’s the outbound traffic being returned to the requestor that tends to be in bulk. Noction also points out that while it’s technically possible to announce routes to enforce path symmetry for their customers, it’s logistically challenging. And besides–there’s no economic incentive AWS doesn’t charge for inbound traffic–only outbound.
What Does IRP For Cloud Cost?
Ah, yes. Those infamous cloud charges. That inscrutable AWS bill. Surely, adding IRP for Cloud to the mix will cost you lots of money, because there’s no such thing as a free lunch. Right?
Maybe not. AWS charges a high rate per bit to carry outbound traffic to the Internet, but substantially less over a Direct Connect circuit. The IRP for Cloud service is taking your VPC’s traffic across a Direct Connect circuit to Noction’s facility, meaning that your outbound data charges from AWS are lower. For that portion of the service, there’s a cost savings, which you can estimate via Noction’s IRP for Cloud pricing calculator.
Outbound data charges aren’t the only thing you’re paying for, though. From Noction’s site, there’s also a “Virtual Interface usage charge applied by your cloud provider. An IRP for Cloud satellite VM usage charge that consists of…
- actual elastic instance charge applied by your cloud provider
- instance usage charge applied through your cloud provider metering service.”
In other words, you’re also paying to run the IRP for Cloud virtual machine and related virtual interface, which makes perfect sense. But on the whole? The impression I’m getting is that you could run IRP for Cloud at a very similar cost to default AWS routing services, possibly less, and gain better performance. If you’re an early adopter of IRP for Cloud and care to comment on your net usage costs overall, please feel free to share your impressions in the comments below.
If you’re wondering how Noction gets paid, it’s not by you directly. You don’t have a separate bill to worry about. Read more from Noction’s Q&A page. Question 6 gets you your answer.
The View From The Hot Aisle
An open question is, “How much improvement will your customers experience if you forward to them via IRP for Cloud?” As with so many things, it depends. What is the nature of your traffic? How critical are path characteristics like latency or jitter to your app’s user experience? Where are your customers located?
Generally speaking, path attributes such as lower congestion and latency are good things that will result in your user having a more responsive session. But, know your data before setting your expectations. IRP for Cloud includes a dashboard with reports that will quantify exactly the performance improvements they are seeing, so you won’t have to guess.
I see IRP for Cloud as a useful tool worth trying out. It feels low risk to me, with a potentially high reward. Noction assumes in these early days of the product that you’re using AWS and in the US-East region. Those are pretty safe assumptions though, and Noction has plans to expand the service globally. They are also planning to enhance the product in conjunction with how customers end up using it.
Therefore, consumers of IRP for Cloud are in the unique position of leveraging mature technology at a low or even negligible cost while still being able to influence the future direction of the product. If there’s something not to like, let me know what I’m overlooking in the comments.