Green-Software-Foundation/opensource-wg

[Action Item] IF/CADK - Working Session After 3 October

Opened this issue ยท 7 comments

WG agreed to have a working session after 3 October, separately to WG call, to:

  • Identify key compoonents of both CA SDK and IEF
  • Work to de-duplicate either; have IEF use CA SDK if possible
  • See if IEF can be split up into smaller functional projects
  • Review decision to write IEF in high level language, given overheads of using JSII

Hey @Willmish @jmcook1186
I don't have the context to this issue, looks like a few of the points above are now obsolete. But it's an outstanding open item on the working group agenda.
Have the Carbon Aware SDK and Impact Framework team met?
If not, should we schedule a call? I think there could be value to ensure no duplication, unless @jmcook1186 you're familiar already with the SDK?
But also happy to close this down if no longer needed.

Hello!
I have briefly met some of the SDK team, but we have not had any conversations about strategy or collaboration. I'm familiar with the SDK at a very high level but I would benefit from learning more on a call. Building some C-SDK integration into IF has been on our backlog for a while.

Okay cool, sounds like a call would be helpful. I'll take it to email to arrange a time to meet.

Notes from CA SDK <> IF call 30th January

Attendees: Joseph Cook, Dan Benitah, Sophie Trinder @jmcook1186 @danuw @Sophietn
IF is Typescript, CA SDK is .NET

Why IF requires the CA SDK

  1. alternative source of grid carbon intensity
  2. optimised (lowest carbon) location to run

How to integrate the CA SDK into the IF

  • Typescript wrapper around API calls. There's no official public end point but CA SDK do have a dev end point (but without SLAs)
  • CA SDK offers containers, so IF could create a container with the API published, and run it in a pipeline to get the metrics and then stop it. Downside: IF user will need to download and install both IF and CA SDK, whereas public end point wouldn't require a CA SDK download and install
  • CA SDK could create and deploy NPM package, to use in backend node apps. Downside: .NET dependency.
  • IF also has the shell plug-in model, to spin a local version of the CA SDK.
  • IF could create an IF public CA SDK instance

Agreed best route

Duplication?

  • IF already have their own watt time plug-in, for grid time intensity for SCI-O model. There's also a hack project submission for electricity maps plug in
  • Are these necessary? Given we have the CA SDK

Adding in an agreed summary from @danuw @jmcook1186
(1) IF uses watt time plug in to calculate carbon footprints (and an electricity plug in seems to be planned based on the Hack ideas)
(2) IF needs to schedule when to do those calculations and wanted to use the SDK for that.
Possibly could use CA-SDK location/best endpoint
Exactly what this looks like is TBC (additional sync call required) , but in the absence of a reliable public API endpoint, IF can use their existing Shell plugin (that spawns a shell and can execute arbitrary commands) in order to spin up a container to run a local instance of CA-SDK, hit the locations/best endpoint / CLI command and pipe the result back into IF.
Actions

12th February IF <> CA SDK sync

  • UCL team are building an IF plugin with the CA SDK web API.

  • Rather than making the end point available with predefined credentials, we could accept credentials to pass through to API, i.e. so a hosted API can act as proxy and removes the need to host an API with shared credentials.
    Requirements : we want a robust solution, not hammering the API hammered, authentication needed
    IF Shell + DCLI

  • .NET6 upgrade to .NET8: in CA SDK roadmap for post graduation.

Actions

  • @danuw to input into email thread with UCL team, to suggest implementation route for UCL and support them
  • @jmcook1186 to arrange a call, after IF refactor, to work on the integration together with @danuw

Work has started with the help of @jmcook1186 in https://github.com/danuw/if-casdk-plugin

Some basic skeleton that works end to end is in place, and further fixes/updates to fit a relevant sample scenario are still needed.