There once was a time in software development where developers could design, build and then think about their software's security. However in today's highly connected, API-driven application environment, this approach is simply too risky as it exposes the software to vulnerabilities ...
DNS (Domain Name System) management is important, yet often overlooked as a part of a developer's stack. Those underutilizing DNS either don't have a solid understanding of how it works or they don't know how to leverage the system for their own needs.
What Does DNS Have to Do with DevOps?
First, it's important to understand that DNS is not just important to DevOps but the entire Internet, as we know it. DNS is the first point of contact between an end-user and your site/app/service. The role of DevOps needs to ensure not just the reliability, but also the performance of their DNS hosting as everything else will be dependent on it.
To better understand the role of DNS in a developer's responsibilities, let's take a quick look at the history of the relationship between DevOps and DNS. When the Domain Name System was first introduced in the late 1980s, it had one singular purpose: To simplify the way people accessed websites. Web surfers had to memorize lengthy IP addresses to visit websites. With DNS, anyone could enter a domain name and access that website.
Over the next decade, DNS service providers emerged. These companies allowed domain owners to host their DNS information on their networks for a small monthly/yearly fee. Service was limited to basic DNS hosting with little to no control over how queries were routed.
More complex DNS management was used almost exclusively by large organizations. At the time, custom DNS configurations required your own in-house infrastructure and staff to maintain it.
Thirty years since the dawn of DNS, studies show that 64% of the top 100 websites still use in-house DNS configurations. Even with advancements in cloud technology and affordability of outsourced DNS, major brands continue to prefer their own infrastructure.
One thing to keep in mind, nearly all of the top 100 websites are owned by companies that measure their revenue in the billions. For the vast majority of organizations, hosting your own infrastructure is outrageously expensive, and usually not even an option.
BYODNS (Build Your Own DNS)
For small businesses or tech hobbyists, the best solution to enjoy custom functionality was to build your own DNS server. Many such enthusiasts have successfully built their own DNS servers, some of which are still running years later.
The problem is: a single DNS server can't keep up with modern demands like security, redundancy, and capacity … just to name a few. This movement was short lived as problems continued to arise. Developers were forced to decide whether risking downtime was worth the customizability of BYODNS.
Others got bogged down by the maintenance demands and ultimately moved to a third party provider. Multiple times a year, DNS software like BIND releases updates and patches that must be applied immediately to avoid exploits. Constantly updating software can become cumbersome and divert resources away from other important tasks.
Outsourced DNS hosting relieves a lot of the pressures of BYODNS systems by taking the maintenance tasks off of developers' hands. Providers take responsibility for security patches, updates and general support (for clients and their clients' clients if they resell services) giving developers more time to focus on what is really important.
In-House vs. Outsourced
Over the past decade, outsourced DNS hosting has become the preferred solution for both small and enterprise businesses. The industry reached a point where providers were able to offer advanced functionality that was not only cheaper than that of on-prem systems but more specific to end-users' needs.
It began with basic health checks that monitored IP addresses for availability. These checks influenced Failover routing decisions and kept businesses online even if their primary IP was downed. Then came global load balancing, which allowed users to distribute their traffic load across multiple servers in a region to improve performance.
Now, traffic routing is based on real-time traffic conditions gathered from dozens of points around the world. Some managed DNS services can even automate query routing to answer clients with the closest and best-performing server.
Back to the original question… What does DNS have to do with DevOps? It's simple. If your website/application/service is dependent on the Internet to thrive, then you need to take the time to learn more about your DNS hosting and management options.