Cyclops delivers the most accurate and reliable safety camera databases and smart software on the market.
SourceCloud were tasked with moving and improving their existing platform and to increase performance, reliability and to reduce overall cost.
WHAT WAS THE PROBLEM?
Cyclops provides access to up to date and accurate safety camera information via a suite of API’s, SourceCloud started working with Cyclops in 2012 when the system was hosted on a standard single web server and database. At peak times there were often over 5,000 concurrent connections from Cyclops Clients, and the servers struggled with the demand.
WHAT WERE THE CHALLENGES?
The propriety software had been developed over time, using its own lightweight TCP protocol, as well as standard HTTP(s). The database suffered performance issues, especially on some of the geospatial calls. Also, the web application layer was not stateless, so it did not easily lend itself to being load balanced. Due to the nature of the clients, peak load was experienced during traffic flow rush hours, but with the solution spanning several time zones, from Europe to the western seaboard of the USA, these were for extended timescales and multiple periods throughout the day. Seasonal holidays also saw significant increases in traffic.
WHAT WAS THE SOLUTION?
SourceCloud designed and recommended a solution to move to AWS, leveraging the scalability and resilience available. A phased approach was taken:
Move the infrastructure ‘as is’ to AWS, allowing the manual vertical scaling of the infrastructure, to cope with current seasonal holiday demand, manually scaling down over time once the load was mapped. This gave Cyclops an immediate manual solution to ensuring systems remained online during known peak periods.
The web server code was improved and modified by our in house developers, utilising AWS Auto Scaling and implementing ElastiCache, removing the need for manual daily/seasonal scaling. The system now scaled in real-time as traffic increased, scaling back automatically when load decreased decreasing the manual processes and saving money on hosting.
Further software improvements allowed some of the high database traffic to be migrated to DynamoDb, with some in-house geospatial improvements, significant performance were noted allowing the downsizing of the MSSQL database.
WHAT WAS THE OUTCOME?
The overall outcome has been a significant improvement in reliability and availability, even with the continued growth, which now peaks at times over 12,000 concurrent users. With auto-scaling set to a minimum of 2 servers, resilience is maintained in case of failure, as the load increases, additional servers come online servicing the API requests. It was agreed that the original solution did not meet the future requirements the Cyclops, as it did not have the capacity for the growth. Moving the whole solution to AWS utilising SourceCloud resources and talent has meant Cyclops, now spends less time worrying about the stability of their product and more time talking to their current and potential clients.
WHAT TECHNOLOGY DID WE USE?
SourceCloud built Cyclops in AWS utilizing several technologies, hosting the Java-based application on autoscaled EC2 instances, with AWS ElasticCache being used to manage sessions. AWS SQS is used to queue incoming alerts and updates from users and clients, with further scaling groups to ensure messages are processed in a timely fashion. The Microsoft database is still hosted on an EC2 instance due to some of the more complex configurations it requires. The additional DynamoDB allows a fast lookup of hundreds of thousands of records on geospatial specific queries. Finally, S3 is used to archive historical data, creating a data lake for current and upcoming AI projects.