paint-brush
Nuestro código está dañando el planeta, necesitamos patrones de diseño conscientes del carbonopor@gsf
55,068 lecturas
55,068 lecturas

Nuestro código está dañando el planeta, necesitamos patrones de diseño conscientes del carbono

Demasiado Largo; Para Leer

Cómo la API Carbon Aware puede ayudarnos a medir y responder a la intensidad de carbono de la electricidad (gCO2/kWh) para reducir la cantidad de emisiones de carbono generadas a través del software.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Nuestro código está dañando el planeta, necesitamos patrones de diseño conscientes del carbono
Green Software Foundation (GSF) HackerNoon profile picture


Convirtámonos en los arquitectos de un mundo más limpio y verde


La nube tiene un mayor huella de carbono que la industria de las aerolíneas. Con la creciente demanda de software para impulsar el comercio y la industria, existe una mayor urgencia para la recopilación y el almacenamiento de datos, la computación en la nube y la inteligencia artificial para obtener electricidad de fuentes de energía más ecológicas y generar significativamente menos emisiones de carbono.


Al cambiar el consumo de electricidad a momentos y lugares donde la electricidad es más limpia, la programación puede mitigar el cambio climático y garantizar un futuro más limpio y seguro para nosotros y las generaciones futuras. Esto es Carbon Aware Computing, y tiene el potencial de hacer que el desarrollo de software sea una fuerza crítica para mitigar el cambio climático al ayudarnos a elegir y optimizar la energía libre de carbono con un código consciente del clima.


Computación consciente del carbono 101

No hay muchos ejemplos de computación consciente del carbono, razón por la cual eventos como __ Carbon Hack 22 __ son significativos para generar nuevas ideas y acelerar la innovación en la programación de software para crear aplicaciones que sean conscientes del clima y sensibles a la energía. .

Green Software Foundation __ analiza la conciencia de __carbono como la idea de hacer más cuando más energía proviene de fuentes “limpias” bajas en carbono y hacer menos cuando más energía proviene de fuentes “sucias” con alto contenido de carbono. Como desarrolladores, podemos hacerlo midiendo y respondiendo a la intensidad de carbono de la electricidad (gCO2/kWh), lo que puede ayudar a crear código para reducir la cantidad de emisiones de carbono generadas a través del software.

Enfoques y aplicaciones de computación de carbono


En términos generales, hay 3 enfoques:


  1. Cambio de ubicación: ejecutar nuestro software en una ubicación más limpia; obtener electricidad de una región donde hay un mayor suministro de energía más limpia (por ejemplo, eólica, solar, agua) que otras.



2. Time Shifting: ejecutar nuestro software en un momento más limpio; cuando la energía limpia está siendo generada por el viento, el agua o la energía solar.


  1. Demand Shaping: Ejecutar nuestro software para que haga más cuando la electricidad está limpia y menos cuando está sucia.



Crear aplicaciones conscientes del carbono es un desafío, a pesar de varias fuentes de datos, en parte porque algunas de estas fuentes son difíciles de navegar. los API de fuente abierta Carbon Aware , un proyecto del Grupo de Trabajo de Código Abierto de la Green Software Foundation, lo hace más fácil. Esta API nos ayuda a identificar, analizar y predecir la intensidad de carbono (qué tan verde o sucia es la electricidad) de nuestra aplicación en un momento dado y en un lugar determinado y crear un código que permite que nuestro software extraiga energía limpia según la ubicación, se ejecute cuando sopla el viento o permiten que los sistemas sigan los rayos del sol.

La API es extremadamente simple.


Si tú visitas https://grnsft.org/hack22/api verá la interfaz web así:


Podemos conectarlo a API como Watttime y Mapas de electricidad , o a nuestros propios conjuntos de datos. Mientras dure Carbon Hack 22 (ahora hasta el 10 de noviembre de 2022), la API de Carbon Aware estará conectado a una fuente de datos de WattTime para que lo usen los desarrolladores.


Time Shifting: ¿A qué hora es mejor ejecutar mi software?


Cuando cambie el tiempo, puede usar el punto final de /emissions/bylocations/best API, proporcionándole la ubicación que le interesa en el campo de ubicación . Actualmente, los nombres de las ubicaciones se asignan a los nombres de las regiones de Azure. También debe proporcionar la ventana de tiempo durante la cual puede mover el trabajo. La hora de inicio debe ingresarse en el campo de hora y el final de la misma en el campo hasta la hora. Las fechas proporcionadas deben estar en el formato ISO 8601.

Puede solicitar datos directamente de la API a través de una solicitud de Curl de la siguiente manera:


 curl -X 'GET' \ 'https://carbon-aware-api.azurewebsites.net/emissions/bylocations/best?location=uksouth&time=2022-10-08T00%3A00%2B01%3A00&toTime=2022-10-08T23%3A59%2B01%3A00' \ -H 'accept: application/json'


O incluso simplemente una solicitud HTTP GET normal en el navegador .


Como salida, recibirá una matriz de objetos JSON, con el nombre de la región de WattTime para la ubicación, la hora de los datos, la calificación de intensidad de carbono y la duración durante la cual estos datos son válidos (WattTime proporciona datos en intervalos de 5 minutos). Estos datos serán las calificaciones de carbono más bajas para la ubicación solicitada. Esta consulta analiza los datos de una sola ventana de 24 horas, por lo que para obtener un resultado preciso, es posible que desee solicitar datos para varios días (por ejemplo, mirando el punto final /emissions/bylocations ) y verificar si no es uno. tiempo de caída en la intensidad de carbono!

 [ { "location": "UK", "time": "2022-10-08T00:45:00+00:00", "rating": 351.98767912, "duration": "00:05:00" }, { "location": "UK", "time": "2022-10-08T00:40:00+00:00", "rating": 351.98767912, "duration": "00:05:00" }, { "location": "UK", "time": "2022-10-08T00:35:00+00:00", "rating": 351.98767912, "duration": "00:05:00" } ]


Cambio de ubicación: ¿Cuál es la mejor ubicación para ejecutar mi software?


Al cambiar de ubicación, puede usar el mismo punto final que antes ( /emissions/bylocations/best ), pero para este momento, proporcione varias ubicaciones que le interesen y una sola hora durante la cual está buscando. La siguiente consulta de ejemplo tiene varias ubicaciones proporcionadas, teniendo en cuenta uksouth, eastus y francecentral . Puede proporcionarle una ventana de tiempo (similar al cambio de tiempo) o un punto de tiempo único en su lugar, completando los campos time y toTime .

Puede solicitar datos directamente de la API a través de una solicitud de Curl de la siguiente manera:

 curl -X 'GET' \ 'https://carbon-aware-api.azurewebsites.net/emissions/bylocations/best?location=uksouth&location=eastus&location=francecentral&time=2022-10-08T09%3A00%2B01%3A00' \ -H 'accept: application/json'


O incluso simplemente una solicitud HTTP GET normal en el navegador .


Como salida, recibirá el mismo formato de respuesta, con ubicaciones que tienen la intensidad de carbono más baja, junto con el tiempo para esa lectura, el valor real de la intensidad de carbono y la duración de validez de estos datos.

 [  {    "location": "FR",    "time": "2022-10-08T08:00:00+00:00",    "rating": 242.21832558,    "duration": "00:05:00"  } ]


Conformación de la demanda: ¿Cómo ajusto el comportamiento del usuario?


Para implementar la configuración de la demanda, use una combinación de las consultas anteriores y otras para determinar la mejor manera de ajustar el comportamiento de su aplicación.

¡Imagina esto!


Imagínese si todavía llevara a cabo esos trabajos de capacitación de aprendizaje automático que consumen energía... pero solo cuando la red eléctrica que los alimenta funcionaba con energías renovables. Imagínese si su lavadora solo funcionara en el momento en que su red local funcionaba completamente con energía eólica. Imagine que desea ejecutar su tubería de CI simultáneamente todos los días, pero se asegura de que solo se ejecute en una zona de disponibilidad (país) que actualmente funciona con energía verde. En todos estos casos, seguiría consumiendo tanta energía como antes, pero generaría muchas menos emisiones de gases de efecto invernadero.


Ya sea que esté sondeando la API de Carbon Aware, ejecutándola en un contenedor local o como una herramienta de línea de comandos (CLI), puede usar los patrones de desarrollo basado en eventos para conectar eventos en su aplicación con activadores en la red eléctrica. Su propia red local o una más verde y distante.


Según sus casos de uso, puede permitir que todo un dispositivo, un trabajo informático o una aplicación funcionen exclusivamente con energía renovable, ya sea solo cuando la red local es verde o solo desde zonas que actualmente funcionan con energía verde.

En lugar de ser mecánicos que mantienen en marcha el motor de las emisiones digitales, seamos los ingenieros que ayuden a reducir la velocidad y quizás incluso contribuyan a la reconstrucción.


La computación consciente del carbono es la próxima frontera de la ingeniería de software sostenible. Algunos de los responsables de la toma de decisiones más influyentes en la industria están interesados en reducir las emisiones de carbono del software y demostrarlo al prestar sus recursos y contribuir con importantes premios en metálico a Truco de carbono 22 . Jugadores clave como Accenture, Avanade, Boston Consulting Group, Globant, Goldman Sachs, Intel Corporation, Thoughtworks, UBS y VMWare tienen su mejor y más brillante participación en tecnología sostenible y están contribuyendo colectivamente con 100 000 USD en premios de capital.


Ahora también es trabajo de los ingenieros de software crear soluciones que hagan menos daño tanto a las personas como al planeta. La computación consciente del carbono es la forma en que las generaciones actuales y futuras de ingenieros de software pueden ayudar a lograr este objetivo. Explore la API de Carbon Aware y participar en Carbon Hack para unirse a casi 350 piratas informáticos y 70 innovaciones en la identificación y resolución de barreras para el software que reduce la intensidad de carbono de la electricidad.


Escrito por Asim Hussain, director ejecutivo y presidente de Green Software Foundation