Using DNS Traffic Management to Add Resiliency to Shopify’s Services

Raphaël Beamonte
16 min readadvanced
--
View Original

Overview

This article discusses Shopify's journey in implementing DNS traffic management to enhance the resiliency of their services. It details the transition from manual setups to a fully automated system that handles over 100 million requests per day across more than 40 domains.

What You'll Learn

1

How to implement automated DNS traffic management for multiple domains

2

Why using multiple DNS providers enhances service reliability

3

When to apply geographical fencing for traffic management

4

How to utilize health checks for endpoint status in DNS management

Prerequisites & Requirements

  • Understanding of DNS and traffic management concepts
  • Familiarity with Terraform for deployment(optional)

Key Questions Answered

How did Shopify improve its DNS traffic management?
Shopify transitioned from multiple manual DNS traffic management setups to a fully automated system that supports over 40 domains and handles more than 100 million requests per day. This consolidation allowed for improved reliability, maintainability, and ownership across teams.
What are the layers of traffic management defined by Shopify?
Shopify's traffic management layers include geographical fencing, endpoint status, endpoint priority, and weighted selection. Each layer serves to refine traffic routing based on specific criteria, ensuring efficient and reliable service delivery.
What challenges did Shopify face with its previous DNS management approaches?
Shopify's earlier approaches involved manual configurations that were prone to delays and errors, lacked active/active capabilities, and required extensive coordination among teams. These issues prompted the need for a more automated and unified system.
How does Shopify handle failover capabilities in its DNS traffic management?
Shopify employs health checks to monitor endpoint statuses, ensuring that only healthy endpoints are used for traffic routing. If no endpoints are healthy, all are returned to avoid empty responses, allowing for quick recovery from outages.

Key Statistics & Figures

Number of domains managed
40+
Shopify's DNS traffic management system supports over 40 domains across more than 12 different teams.
Daily requests handled
100M+
The automated DNS traffic management system processes over 100 million requests per day.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Key Actionable Insights

1
Implement a unified DNS traffic management system to enhance service reliability across multiple teams.
By consolidating DNS management, teams can reduce coordination efforts and improve response times during outages, ultimately leading to a better user experience.
2
Utilize geographical fencing to optimize traffic routing based on user location.
This approach ensures that users receive responses from the nearest endpoints, reducing latency and improving service performance.
3
Incorporate health checks into your DNS management strategy to maintain high availability.
Regularly monitoring endpoint health allows for proactive failover management, ensuring that traffic is only directed to operational endpoints.

Common Pitfalls

1
Relying on a single DNS provider can lead to significant outages during DDoS attacks.
Shopify experienced a major outage due to dependency on one provider, highlighting the importance of redundancy in DNS management.
2
Manual DNS configurations can introduce delays and errors in failover scenarios.
The previous manual approaches required extensive coordination and were slow to implement, which could lead to prolonged service interruptions.

Related Concepts

DNS Traffic Management
Distributed Systems Resiliency
Automated Deployment Strategies
Geographical Traffic Routing