Ozone CTO Scott Switzer challenged our Product & Engineering team to lower our energy footprint and they responded with an innovation that shrank it by c.65% overnight. In this blog post, Lucas Kaminski explains our road to a more sustainable tech future.
The emissions problem
One of the biggest problems our CTO Scott has put forward for the Product & Engineering team is to tackle tech-debt and ensure that our developers have time to work not only on the business-driven needs but also on our underlying technology infrastructure. Our driving force is that we operate at maximum efficiency to provide value for our clients AND keep in mind the environmental issues so prevalent in the modern world, as each server contributes not just to cost, but to the carbon footprint of every page view processed. This resonated well with the team and we were able to approach the problem on a more personal level.
As we wanted to tackle the problem from an informed standpoint, we started off with a thorough analysis, conducting a lot of benchmarking, performance monitoring and adjusting our metrics to better understand where we are at currently.
The 3-step plan
What followed was a number of brainstorming sessions, white-boarding exercises, code reviews and discussions at the end of which we ended up with a 3-step plan that would allow us to adjust our processing efficiency, reduce the number of machines required for delivery and for data processing.
Having analysed our systems in-depth, we identified that the key points for optimisation were data and request transformations. As the first step, we decided to consolidate and reduce the number of transformations to the data structures across various internal services during real-time events.
We executed on those modifications in a phased approach, making sure that quality is not impeded in any way. As the optimisations were done across most systems, we put emphasis on quality assurance, testing and multi-layered verification of all the changes to mitigate any risks associated with our mission.
The results outmatched our expectations, with processing power and memory usage being very significantly reduced across our delivery systems. This allowed us to consolidate our infrastructure and reduce the number of machines we were running on by half. Already showing amazing benefits not only for our clients (such as reduced latency of auction times) but also showing a very positive impact on reducing carbon emissions tied to utilising cloud computing.
We did not stop there. The optimisations allowed us to explore a convergence of services that we previously were running on separate nodes into joint purpose servers, as a result, further reducing the number of hosts we operated on.
Once that was achieved, as the last step we actually looked at those transformations from a low-level standpoint making sure we are utilising the right and most efficient data structures that would require the least computing power to operate on. This change further halved the number of individual hosts we were operating on.
The final result was a large reduction of our entire delivery infrastructure by a whopping 80% on average. To put a number on it, we went from operating on around 70-80 docker machines in July to running on 12 machines on average at the end of September. All of this while receiving the same, if not higher traffic and while maintaining all the functionalities and being able to deliver on new features while we were at it.
Lowered number of hosts resulted in lowering cost and performance optimisation, beneficial for our clients, but it also allowed us to achieve our goal of lowering power usage, carbon emission and ensuring we are doing our part to help the environment in any way we can.
The future
At this point, we are more than happy with the results of the optimisations to our delivery infrastructure. This does not mean, however, that we are done with our mission. The team is still very much driven by the idea and we are exploring what else can be done to help, not only on an individual level, but if we put our heads together and think about our environment collectively.
Our next area of interest is data storage. In an industry as driven by data as ours, thinking through the data collection process and ensuring it is done as efficiently as possible can result not only in us understanding our metrics and the drivers of our business better, but also, through lowering the emission costs associated with data storage, it can add a new meaning to the term “clean data”.