We were asked to implement intelligent methods for traffic control and rate limiting based on O3b top clients' requirements, in the form of a Real-time Traffic Manager (RTM) application. This was a critical missing piece of O3b’s global solution in order to ensure its customers have the best possible service at all times, regardless of the weather conditions.
Our first sprints involved analysis and experimentation with the algorithms designed by O3b, in order to build a prototype to prove the feasibility of the project. After successful experimentation we ended up working on agile sprints to build the several algorithms that are able to bring the required features to the RTM.
The system was deployed to be used in real-world production scenarios ensuring high quality Internet connections to O3b clients..
Needed to learn from complex systems, protocols and terminology in order to fully understand the development requirements.
As a critical and real time system, fault tolerance and excellent error reporting are required.
Much of the infrastructure necessary to run the application was not available during development, thus we had to to produce comprehensive unit tests from the beginning.
The RTM was built in Python, using the Flask stack to provide a RESTful API that exposes configurations and real time data. The app communicates with external services and uses networking protocols to talk to devices, from which it takes data used as input for the algorithms. Real time metrics are collected and stored in a time series database, so we can later gain further insight into traffic patterns. For testing we made heavy use of the mock library to simulate responses from devices. Finally we built customized dashboards to display the most relevant statistics needed for a customer or system operator.
As a result, our partnership with O3b Networks was able to transform a complex idea into a real product through a very productive working environment by reaching clear sprint goals. The first production deployment took place after about 11 months of development and extensive testing with the hardware systems.
Tryolabs' team was not only able to rapidly adapt to our own set of processes and culture, but to quickly grasp telecommunications concepts previously unknown to them. They were responsible for the software layer of an important part of our solution, implementing agile methodologies, great technical skills, daily communication and even on-site visits to our offices.