Facebook has announced that it has released a tool that its developers and staff have created to test how an application will react to different network conditions. In a blog post by Facebook’s Manu Chantra and John Morrow (source link below), they announced that they have released a tool called Augmented Traffic Control, or ATC to GitHub that allows app developers and creators to simulate network conditions across the 2G, Edge, 3G, and LTE networks.
The project got its inspiration back in 2013 after reading an article in 2600 magazine that detailed the how a group of hackers demonstrated at Def Con how they managed to create a network for mobile phones using open source technology. Chantra and Morrow explained: “We wanted to take certain elements of this idea and adapt it to create networks of varying strength that we could use to optimize our apps for those conditions and allow our software engineers to empathize with people using Facebook in less-than-ideal network environments.”
The group held an internal hackathon to begin the groundwork for the project. Soon they were joined by others and over the course of a few months attempted to create a simulated 2G connection that they could use to test applications. This attempt proved to be a very difficult one, as cellular radios that could run open source base station software was not only time-consuming, but costly. The crew decided to change direction during another hackathon in May of 2013. The issue at hand was finding a way to make it efficient and functional. They explained: “we pivoted our efforts from creating a 2G network to building a Wi-Fi network that could be set to different simulation speeds by the engineers using it. The camp used the measurements that they had from the 2G project to create a set of simulations and then created a user interface using Django and Bootstrap. This project yielded ATC, and it was ultimately deployed to the companies Wi-Fi network for anyone in the company to use.
The project allowed Facebook to improve the functionality of some of its key applications, such as Facebook Messenger, by simulating network conditions and allowing the developers to make corrections as necessary, something that was either not available or extremely difficult and time consuming before ATC. Chantra and Morrow noted: “For mobile, that testing can take weeks or months for updates to ship and for comparisons to be valid. For testing across network strength, this can be even more time-consuming. With Augmented Traffic Control, we can instead switch easily from one connection strength to another and demo the feature in real time on different network simulations.”
Since ATC was created using open source, the group decided to release the project on GitHub so that others can build upon their work. Both Chantra and Morrow cited that since they were able to utilize open source and improve upon work created by others, that they wanted to give the community the chance to improve upon their work and to make new innovations. As open source is becoming more and more mainstream, which many argue is a great thing, we will see more sharing of ideas and improvements from the community as well as large corporations. These open source projects, such as ATC, will help others create and improve their products in ways they could not have done before ATC. It is a win-win for everyone, especially the consumer.