In light of the recent Equifax breach, Gene Kim and speakers from the upcoming DevOps Enterprise Summit San Francisco (DOES17) dissected the situation and discussed the technical leadership lessons learned while offering their own expert advice for handling crisis situations. The following are more highlights from the discussion ...
Load balancing at the DNS (Domain Name System) level has been around for a few decades now, but it didn't become crucial until recently as technology is moving to the cloud. DNS is the perfect solution for managing cloud systems because it operates independently of hosting providers — meaning DNS records can be configured to manipulate how much and what kinds of traffic reach certain endpoints through a third party provider.
With the growth of cloud-based services, infrastructure is more commonly managed as code rather than in a data center. That means you can alter a single DNS record and potentially knock your application or website offline. This has actually happened a few times.
Conversely, you can leverage DNS records to optimize traffic flowing to your domains or servers. GeoDNS and network monitoring can supercharge your traditional DNS management, paving the way for automated DNS management.
Automated Load Balancing
The latest craze in both SaaS and DevOps has been automation, from chatbots to task automation. The DNS industry has been offering basic automation for roughly a decade now in the form of DNS failover. This service automatically reroutes traffic away from non-responsive endpoints to healthy ones.
DNS load balancing uses similar techniques to test the availability and performance of endpoints. But load balancing also allows you to send traffic to more than one endpoint simultaneously. You can even set different weights for each endpoint. Load balancing is commonly used by organizations that want to use more than one vendor, say for a multi-CDN implementation.
This method offers the flexibility to use more than one provider and take advantage of different service offerings. For example, you may want a particular CDN for video streaming but they don't perform well in some regions. You can use DNS load balancing to serve vendors only where they perform the strongest.
You can even use load balancing to cut costs! Most vendors charge drastically different prices depending on the region, but you can work around it if you create location-specific rules that favor lower cost providers. When you use more than one vendor, you also reduce the risk of single provider outages.
Load balancing is a viable asset during migrations, whether you're moving to more cloud-based systems or rolling out something new.
A well-planned strategy can ensure you maintain availability and limit performance degradation during the migration. You can use record pools, which are groups of endpoints that are served to users, and slowly increase the traffic sent to your cloud endpoints. If something goes wrong, only a subset of your end-users will be affected, and you can easily roll back your changes to a previous version.
You can use the same strategy we just mentioned but combined with GeoDNS features to slowly roll out an application or feature to new audiences. GeoDNS services like GeoProximity and IP Filters allow you to create unique rules that dictate how your end-users are answered based on their location, ASN, or IP address.
Let's say you have a new app you want to roll out to your US users and then to your Europeans users. You can create an IP Filter for US-based users that returns the box where the application is stored. Just make sure you have a rule for "world" applied to a record that sends users to a different endpoint.
The Big Picture
As the internet grows, the world gets smaller and organizations need to maintain performance no matter where their end-users are. DNS load balancing offers easy scalability and unparalleled customization. Now is the best time for DevOps to begin implementation, before the demand catches up.