carlo

A carbon-aware load balancing approach. Shifting workloads around based on carbon-intensity is a current challenge for sustainability efforts in tech. Carlo aims to bring awareness about this concept.

  • 0 Raised
  • 217 Views
  • 0 Judges

Categories

  • This hackathon has categories available. Please select one if necessary.

Gallery

Description

Carlo: carbon aware load balancing


Carbon awareness is an emergent concept gaining traction in the tech community. It is one of those concepts that sits at the intersection of Sustainability and Information Technology. This convergence is being referred to as Green Tech or Sustainable Tech, and it provides a model as to how technology can develop a more environmentally sustainable approach to meeting business needs.

One of the fundamental components of modern distributed architectures is a load balancer. A load balancer is a layer of software + hardware that sits in front of a pool of servers. Its main use case is to efficiently distribute incoming client requests to available backend servers. To do so, it executes different types of algorithms to determine which server should serve which request next.

Carlo proposes an approach for load balancing that takes into account carbon intensity data across regions in order to ship requests based on this aspect.



The problem your project solves

Carlo performs traffic load balancing based on carbon intensity, instead of more traditional algorithms (e.g. Round Robin) that don't account for this type of data. This aims to reduce energy consumption in high carbon intense compute regions.


The solution you bring to the table

Carlo has been prototyped to show and prove in an experimental way how a carbon-aware load balancing algorithm could look like. The provided solution accomplishes the following:

  • Establishes a basic architecture for traffic load balancing in a local environment
  • Educates on the concept of carbon awareness by outputting the choices the application does

What you have done during the hackaton

Carlo is a fully functional prototype developed in Go language that does traffic load balancing in a local environment. Currently it can be executed using mock (random) data or by consuming the Carbon Intensity API as shown in the diagram above.


The solution’s impact 

Carlo’s impact is two-fold. 

First and foremost, an algorithm that could indeed use carbon intensity data for load balancing is expected to have a high impact/high reach, should such solution be deployed in front of the thousands of web applications we use daily, serving millions of requests each. 

On the other hand, this particular application can also have a high impact/medium reach by educating technologists about the concept of carbon aware computing, and its importance.


The necessities in order to continue the project 

You can appreciate in the codebase a working version of the solution that fulfils the goal of educating technologists, while providing a working approach for real load balancing. 

It is a reference implementation that can be further continued a stand-alone solution with a little bit of development time, and some funding for it (cloud infrastructure, software licenses, API tokens, etc.)


The value of your solution(s)

Carlo's value can be highlighted as aiming to become the first free and open source carbon-aware load balancer. Beyond that, it serves the purpose of contributing toward the tech community by shedding some light on a complex concept such as carbon-aware computing, just as much as our efforts to make the application a product on its own.


The URL to the prototype [Github, Website,...]

Github repository here.

Original design here.

GSF recommended deck here.