Links for 2013-03-01

  • Denominator: A Multi-Vendor Interface for DNS

    the latest good stuff from Netflix.

    Denominator is a portable Java library for manipulating DNS clouds. Denominator has pluggable back-ends, initially including AWS Route53, Neustar Ultra, DynECT, and a mock for testing. We also ship a command line version so it’s easy for anyone to try it out. The reason we built Denominator is that we are working on multi-region failover and traffic sharing patterns to provide higher availability for the streaming service during regional outages caused by our own bugs and AWS issues. To do this we need to directly control the DNS configuration that routes users to each region and each zone. When we looked at the features and vendors in this space we found that we were already using AWS Route53, which has a nice API but is missing some advanced features; Neustar UltraDNS, which has a SOAP based API; and DynECT, which has a REST API that uses a quite different pseudo-transactional model. We couldn’t find a Java based API that grouped together common set of capabilities that we are interested in, so we created one. The idea is that any feature that is supported by more than one vendor API is the highest common denominator, and that functionality can be switched between vendors as needed, or in the event of a DNS vendor outage.

    (tags: dns netflix java tools ops route53 aws ultradns dynect)

  • Making Really Executable Jars

    Who knew? you can make a runnable JAR file!

    There has long been a hack known in some circles, but not widely known, to make jars really executable, in the chmod +x sense. The hack takes advantage of the fact that jar files are zip files, and zip files allow arbitrary cruft to be prepended to the zip file itself (this is how self-extracting zip files work).

    (tags: jars via:netflix shell java executable chmod zip hacks command-line cli)

This entry was posted in Uncategorized. Bookmark the permalink. Both comments and trackbacks are currently closed.

2 Comments

  1. Craig Hughes
    Posted March 2, 2013 at 02:26 | Permalink

    You can also make a runnable JAR file on linux by using binfmt_misc. Then you don’t even need to modify the JAR at all. I guess for distribution though the “prepend stuff onto the zip file” is a neat hack though.

  2. Posted March 4, 2013 at 10:53 | Permalink

    Yep, I’m thinking mainly of distribution here ;)