Skip to content

Project Viridis

Carbon-Aware CI/CD, By Design

Project Viridis is an open-source project exploring how carbon awareness can be incorporated into continuous integration and continuous delivery (CI/CD). It aims to give engineering teams greater control over the trade-off between delivery speed and the carbon intensity of software delivery.

The project is centered on a scheduler that considers carbon intensity and execution region when determining when and where workloads should run. Rather than requiring developers to manage these decisions individually, Project Viridis is designed to use job criticality to guide scheduling decisions, balancing environmental considerations against execution requirements.

Project Viridis is currently in the concept and architecture design phase. Its proposed capabilities have not yet been implemented or validated, and its effectiveness in reducing the carbon impact of software delivery remains an open question.

Project Overview

CI/CD workloads consume computational resources across infrastructure that can differ in energy sources and associated carbon intensity. The timing and location of execution may therefore influence the estimated carbon impact of software delivery.

Conventional CI/CD workflows prioritize factors such as execution time, reliability, and resource availability. Project Viridis explores how carbon intensity could become another consideration in workload scheduling without disregarding these existing requirements.

The project proposes an orchestration system in which users define the criticality of their jobs while the scheduler determines an appropriate execution strategy. Depending on job requirements and available carbon-intensity information, this could involve selecting a different execution region or deferring a workload until a cleaner execution window is expected.

The objective is to investigate whether these decisions can be incorporated into CI/CD infrastructure through a configurable, extensible scheduling system. Any environmental benefits must be established through implementation, measurement, and validation rather than assumed in advance.

How It Works

The proposed Project Viridis workflow separates workload submission from scheduling and execution.

  1. Submit a workload. A job enters the system through a managed runner workflow or an integration with an external CI/CD platform.
  2. Determine job criticality. The workload's criticality informs how much scheduling flexibility is available and how environmental considerations should be balanced against execution requirements.
  3. Evaluate execution options. The scheduler considers available carbon-intensity information and potential execution regions to identify suitable options.
  4. Select a scheduling strategy. Subject to job constraints and scheduling policies, the system may select an execution region or defer a workload when a cleaner execution window is expected.
  5. Execute the workload. A compatible runner executes the job according to the scheduling decision.
  6. Report estimated carbon impact. The system is intended to report carbon-impact estimates alongside the methodology, assumptions, and uncertainty associated with those estimates.

This workflow describes the intended architecture, not an implemented execution pipeline. The scheduling algorithms, integration mechanisms, measurement approach, and operational behavior remain subject to design and validation.

Key Capabilities

The following capabilities represent the project's intended direction. They are not yet implemented.

  • Carbon-aware scheduling: Incorporate carbon intensity into workload scheduling decisions alongside execution requirements.
  • Region-aware execution: Consider differences in carbon intensity across potential execution regions when selecting where workloads should run.
  • Criticality-driven scheduling: Allow users to specify job criticality so that scheduling flexibility can reflect the importance and urgency of individual workloads.
  • Flexible execution timing: Explore deferring eligible workloads when a cleaner execution window is expected, subject to scheduling constraints.
  • Managed runners and external integrations: Design an execution model that supports project-managed runners and integration with external CI/CD systems.
  • Carbon-impact estimation: Develop a methodology for estimating and reporting workload-associated carbon impact, including assumptions and uncertainty.
  • Extensible architecture: Establish clear boundaries between scheduling, workload execution, infrastructure providers, and carbon-intensity data sources.

The project does not currently claim measurable carbon reductions, improved sustainability outcomes, or performance improvements. Determining whether the proposed approach produces meaningful benefits is part of the work ahead.

Architecture Overview

Project Viridis is being designed around a separation of concerns between workload intake, scheduling decisions, execution, and carbon-impact estimation.

The intended architecture includes the following conceptual components:

  • Workload intake: Receives jobs from managed workflows or external integrations.
  • Scheduling engine: Evaluates job criticality, execution constraints, carbon intensity, and potential execution regions.
  • Execution layer: Coordinates workload execution through compatible runners.
  • Carbon-intensity data integration: Supplies the information needed to evaluate the relative carbon intensity of execution options.
  • Impact estimation and reporting: Estimates and communicates the carbon impact associated with workload execution, including methodological limitations and uncertainty.

These components provide an initial framework for architecture discussions rather than a finalized system design. Component boundaries, interfaces, data models, scheduling policies, and provider integrations will be refined as the project develops.

The architecture is intended to support local development and testing before infrastructure deployment becomes necessary. This approach will allow core scheduling behavior and system interfaces to be explored and evaluated before committing to operational infrastructure.

For a deeper look at the proposed components and their interactions, explore the architecture documentation.

Project Roadmap

Project Viridis is at an early stage. Its roadmap prioritizes validating the design and establishing a working technical foundation before attempting to demonstrate environmental outcomes.

1. Concept and architecture design

  • Define the project's scope, objectives, and design principles.
  • Establish the workload lifecycle and core system boundaries.
  • Develop the initial scheduling model around job criticality, carbon intensity, and execution region.
  • Identify requirements for runner execution, external integrations, and carbon-intensity data.
  • Define an approach to carbon-impact estimation and uncertainty reporting.

2. Local implementation and validation

  • Implement the core scheduling logic.
  • Develop workload execution and runner interfaces.
  • Establish local testing workflows for scheduling decisions and job execution.
  • Evaluate scheduling behavior using controlled scenarios and simulated carbon-intensity data.
  • Develop initial carbon-impact estimation and reporting mechanisms.

3. Integration and evaluation

  • Explore integrations with external CI/CD systems.
  • Evaluate the use of real carbon-intensity data sources.
  • Test scheduling behavior under different job criticalities and execution constraints.
  • Assess operational trade-offs, including scheduling delays and execution-region availability.
  • Establish a reproducible methodology for evaluating estimated carbon impact.

4. Evidence-based assessment

  • Compare scheduling strategies against appropriate baseline execution patterns.
  • Document measurement assumptions, uncertainty, and limitations.
  • Evaluate whether the proposed scheduling approach produces measurable differences under representative workloads.
  • Publish findings to inform subsequent design and implementation decisions.

These stages are provisional and may change as technical constraints and evaluation results become clearer. Progress will be assessed through working implementations, documented decisions, and reproducible evidence rather than assumed environmental benefits. For more information please see the Issue Tracking Project.

Contributing and Project Resources

Project Viridis is an open-source project intended to benefit from technical discussion, critical evaluation, and community contributions. At this stage, the most useful contributions are architectural feedback, design proposals, research, and discussion of the assumptions behind carbon-aware scheduling.

Areas of particular interest include scheduling algorithms, job-criticality models, carbon-intensity data quality, regional execution constraints, carbon-impact estimation, and methods for evaluating environmental outcomes.

The project intends to use the Apache License 2.0. Licensing and repository documentation should be consulted as the project moves toward implementation and publication.

Source repository: https://codeberg.org/project-viridis/project-viridis

Project Viridis is an investigation into a potential approach to carbon-aware CI/CD, not a claim that the problem has been solved. Its design and implementation will determine whether the proposed approach is technically practical and whether its environmental impact can be measured meaningfully.