Capybara

Capybara is a GitHub Action used to automatically reschedule workflow runs depending on the most carbon efficient time. Capybara also regularly reports on the carbon emissions saved.

  • 0 Raised
  • 704 Views
  • 0 Judges

Categories

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

Gallery

Description

What problem does our idea solve?

Everyone wants to make an impact against climate change, how and where can technologists start to make this change?

There are energy-intensive workflows being executed without regard to their carbon impact.

Learning new tools is painful and slows down delivery.

People who are working with software on the ground are in a position where they can make changes that will reduce carbon emissions, but they have a hard time justifying spending a lot of time in doing so.



What does your solution do?

Capybara is a carbon aware scheduler that automates the scheduling of workflows to run during times carbon intensity is low.

Capybara offers a simple way for technologists to reduce the carbon footprint of their GitHub workflows without impacting their delivery.

For example, imagine you are performing a server backup at night. Capybara will find the best time during the night when the grid is greenest to run this server backup.

Our proof of concept is a GitHub Action that can easily be found and integrated through GitHub Marketplace. Allowing anyone using GitHub to make use of Capybara.



How does our solution use the API/SDK?

Capybara uses the Carbon Aware API to query for the best carbon efficient time to run the GitHub Actions Workflow in the region that a GitHub hosted workflow is running.

Using information about the start/end time and duration of workflows, Capybara will reschedule the workflow when the carbon intensity is forecast to be the lowest.

For workflows that are scheduled but flexible with timing, Capybara can automatically reschedule the start time using the forecast endpoint of the API to find the most carbon efficient time to run the workflow.

The backend solution for Capybara will provide historical data gathered from the Carbon Aware API and GitHub for reporting and analysis.



What is the impact of our solution?


Grassroots

Because Capybara can easily be used by technologists on the ground without impacting the delivery and functionality of the software, we enable a big group of people to make a change (there are 20 million GitHub repositories using GitHub Actions).


Awareness

Capybara will increase the awareness of sustainability amongst technologist by demonstrating how small savings can build towards impactful carbon reduction over time.


Cumulative impact

Capybara can reduce carbon emissions by up to 70% for scheduled workflows. We could save up to 11 Mt of CO2 per year if Capybara was run just once a month in all GitHub repositories.


Feasibility of our solution

In order to validate our idea we conducted interviews with technologists in the field. The outcome of these interviews proved there was an unserved interest for this solution.

A working demo of Capybara now exists on the GitHub Marketplace. Demonstrating that is solution is feasible to be released for usage.

Currently the Capybara backend must be hosted by the user due to costs. With funding, this could be offered by Capybara to enable ease of access. We would continue to investigate an open-source management approach that can be used scale up capacity of Capybara.

We would also want to deep dive into exploring reporting functionality so users can prove Capybara’s value themselves.


Vision for our solution

Our vision for Capybara is that we make carbon awareness an easy commitment for every codebase using job scheduling.

By developing a solution for GitHub, we will also be able to extend integration to other compatible version control solutions such as Bitbucket and GitLab.

We would also like to make our backend solution more scalable and extend usage to other cloud providers such as AWS and Azure.

We believe that with sufficient scale, we can make Carbon Awareness a default fitness function for evolutionary software architectures.




Links



Demo

To run the demo (https://github.com/CapybaraOrg/capybara-demo) project with our hosted backend, you can set 

capybaraUrl = https://capybara-backend-qc6qerrpzq-ew.a.run.app/

Attachments