Yep, that's right. You can use your DNS service to manage your multi-CDN architecture.
It's not a hack, it's just smart load balancing.
Constellix is one of the few providers that offers this functionality. We use integrated health and latency monitoring to control how traffic is directed to your CDN vendors.
Combine load balancing with Failover to make sure users are never pointed to an unavailable CDN service.
Let's say you are using two CDN vendors and you want the same amount of traffic to be sent to each CDN. This is a quick and easy way to create redundancy and service diversity for your domains. But what happens if one of the providers is non-responsive?
You can use Round Robin with Failover to automatically remove unavailable providers from the record. In Constellix, we use record pools to create round robin configurations.
What Are Record Pools?
Record pools are made up of multiple endpoints. This could be hostnames for different CDN providers or IP addresses of servers. You can choose how many endpoints you want to be returned in the pool and how many endpoints must be available for the pool to be used.
Pools are dynamically updated by UP/DOWN metrics from our Sonar monitoring network. When Sonar detects than an endpoint is available, it tells Constellix DNS to serve that endpoint in the pool. If an endpoint is unavailable, Sonar tells DNS to remove it from the pool.
You can also failover from one pool to another. If a set number of systems are down, Constellix will redirect traffic to a backup pool.View Tutorial
Send differents amounts of traffic to each vendor. Ideal for a slow roll out to a new provider.
You can use this technique to cut costs by sending less traffic to more expensive providers.
Running low on bandwidth? No problem, just decrease how much traffic is sent to that CDN and avoid overages.
For a multi-cloud environment, set higher weights for your boxes or instances with more CPU or capacity.
Rolling out a new feature? Slowly increase the weights on endpoints you want to update. If you change your mind, you can easily revert your changes by restoring a previous version of your domain.
Change how often your endpoints are returned in your record pools with Weighted Round Robin. Just change the the integer in the weight column when you are configuring a pool. Weights are defaulted to 10 and will automatically deliver all endpoints to an even number of users.
If you want to send twice as many users to one endpoint, you would change the weight to 20 and leave the others at the default.View Tutorial
Intelligent traffic steering at the DNS-level using real-time performance metrics.
Reduce load times and RTT (Round Trip Time) by sending users to the fastest CDN's every time.
Using multiple cloud vendors for a service? Make sure you're sending traffic to the fastest provider with ITO.Learn More
We recently introduced a new feature called ITO (Internet Traffic Optimization) Pools, which uses monitoring metrics to automatically send traffic to the fastest endpoints.
Sonar monitoring nodes check the response times of all the endpoints in the pool as often as every 30 seconds.
You can specify how many endpoints you want returned in the pool and receive alerts when endpoints are added/removed from a pool.View Tutorial
Use GeoDNS to send users to the CDN closest to them. Or optimize your costs by only using CDN's in specific markets.
Most CDN's perform differently depending on the region. So why resort to using only one CDN? Serve them where they are strongest with custom GeoDNS rules.
CDN providers usually charge different prices depending on where you are serving your content. Create rules to serve the more affordable provider with regional routing services like GTD (Global Traffic Director).
When you apply a pool to a record, you can also apply GeoDNS rules. Let's say you want to send clients in Asia-Pac to a different set of CDN's than the rest of the world. Create an IP Filter and apply it to the same record you are using for your pool.
You can also combine pools with the Global Traffic Director (GTD) to send end-users to different pools depending on their current region.