Netflix yesterday pushed version 1.1 of its Denominator DNS automation system onto its public GitHub account. This open-source tool allows developers and administrators alike to automate DNS migrations, changes and rules without having to edit DNS records by hand. With this release, the project now includes geographic-based controls for DNS routing, and thus is nearly ready to be deployed internally at Netflix.
When a developer is hired at Netflix, they learn a few different ways of doing things off the bat. For starters, there are very few managers, and all developers are senior level. Secondly, developers tend to find their own niches rather than have one assigned to them. So it went for Adrian Cole, who joined Netflix in December and found himself running a brand new open-source project by January.
That project, proposed by Adrian Cockcroft (Netflix’s cloud architect), came to be called Denominator. “Some of the outages we had last year could be solved by running multiple [cloud] regions,” he said. “We were looking for ways to direct our customers to more than one region. We do that by managing DNS, but we can’t have a hand-managed configuration the way most people do DNS; we needed a RESTful API.”
Cole, who had just signed on at Netflix and designated himself the “Cloud Guy,” took on the task of building this proposed DNS automation system. He had previously built JClouds, a cloud feature-abstraction layer for Java developers. With Denominator, he saw an opportunity to build another much-needed tool.
Automating DNS updates might sound like a mundane systems-administration task, but Cole and Cockcroft found few worthwhile alternatives to building their own system.
Said Cockcroft: “We’ve seen some attempts to build DNS libraries, but they do the simple stuff. What’s been hard here is building a very comprehensive model of the advanced features of DNS.”
“I didn’t notice a whole heck of a lot of prior art in programmatic DNS, at least to the level of detail we need to get at Netflix,” said Cole. “There is some tooling out there, but we needed to be able to get feedback on operational ideas,” and the need to geographically route traffic through DNS was another limiting factor.
One of the reasons for this lack of tooling, said Cockcroft, is that DNS has traditionally been changed via formal IT ticketing systems. A request for a change is made, and then a network administrator goes in and hand-changes the desired records. It’s easy to break everything when there’s a DNS address error, and for this reason, he said, administrators are typically loath to touch DNS.
With this in mind, Cole set out to build a tool that would appeal to both developers and admins. To that end, Denominator includes a command-line interface, allowing DNS changes to be written into scripts or called from existing programs.
During its four-month development cycle, Cole has worked with existing DNS providers to improve their APIs, and to connect specific features of Denominator to DNS services already available. Contributions to the project came from DynECT, Rackspace and Ultra. He said it was through these collaborations that he was able to remain agile enough to get the project completed in such a short time.