The OpenDNS Global Network enforces security worldwide through our 21 data centers, handling 50 billion DNS requests per day. This traffic generates around 300 gigabytes of query logs each hour, which contains information crucial to our customers. Analyzing that amount of data, however, is no easy task. The Statistics Team is responsible for building and maintaining the complex architecture that stores and processes the massive amounts of data collected. The platform enables OpenDNS customers to gain insight into the security of their networks and the security team to study malware infection patterns around the world.
The Statistics infrastructure is responsible for all reports generated within the Umbrella Dashboard. The process begins with collecting the raw query logs as they come in from all of our DNS resolvers, iOS VPN systems, and proxies. Once the logs are filtered for essential information, they are stored in a Hadoop cluster where different MapReduce algorithms run and generate key statistics. Utilizing Hadoop and MapReduce enables a huge dataset to be processed much faster by breaking it into many subsets, processing each subset individually, and then combining the results of each subset. The statistics are then stored in an HBase distributed database for our customers to quickly access. One large cluster is used for processing all query logs to generate report data, which syncs with a backup cluster to keep an active copy as a failsafe. A special cluster was built for the Security Research team, which gives them a sandbox to experiment with new algorithms against real-time data and stay current with the latest types of attacks.
Some recent projects completed by the Statistics Team include real-time analytics and the backend system for our recently renamed Investigate product. Our customers need to see activity within their network as it happens, and waiting for data to be processed doesn’t make that possible. Since it can take up to 40 minutes for all the MapReduce jobs to run, a separate Kafka and Storm cluster was built to enable searching for DNS logs in real time. The OpenDNS Investigate product was initially developed as an internal research tool, but it quickly became evident how valuable it would be to our customers. The Statistics Team took on the task of transferring and scaling a system initially built on a small development box and making it able to handle millions of queries.
The Statistics Team consists mostly of software engineers, but is rounded out with a product manager and several technical support, infrastructure, and front-end engineers. This diversity of roles allows other teams to function without worrying about accurately presenting data. It also gives the Statistics Team the capability to pursue projects of our own. As our 50 million daily users continue to use OpenDNS to safely connect to the Internet, the Statistics Team will be working behind the scenes to process and analyze all of the data that is being generated.