Software verde y Carbon Hack 2022

Compartir esta publicación

En noviembre de 2022, la Green Software Foundation organizó su primer hackathon, «Carbon Hack 2022», con el objetivo de apoyar proyectos de software verde cuyo objetivo sea reducir las emisiones de carbono. Yo participé en este hackathon con el proyecto Carbon Optimised Process Scheduler junto con mis compañeros Kamlesh Kshirsagar y Mayur Andulkar. En nuestro proyecto desarrollamos una API para optimizar la programación de trabajos con el fin de reducir las emisiones de carbono, y ganamos el premio al proyecto «Más perspicaz».

En este artículo resumiré los conceptos clave del «software verde» y explicaré cómo los ingenieros de software pueden ayudar a reducir las emisiones de carbono. También hablaré del hackathon de la Green Software Foundation, Carbon Hack, y de sus ganadores.

¿Qué es el “software verde”?

Según una investigación de Malmodin y Lundén (2018), el sector mundial de las TIC es responsable del 1,4 % de las emisiones de carbono y del 4 % del uso de electricidad. En otro artículo, se estima que las emisiones del sector de las TIC en 2020 se situaron entre el 1,8 % y el 2,8 % de las emisiones mundiales de gases de efecto invernadero. Aunque estas estimaciones conllevan cierta incertidumbre, dan una idea razonable del impacto del sector de las TIC.  

La Green Software Foundation define el «software verde» como un nuevo campo que combina la ciencia del clima, el hardware, el software, los mercados de electricidad y el diseño de centros de datos para crear software eficiente que emita la menor cantidad de carbono posible. Para ello, el software verde se centra en tres áreas cruciales: eficiencia del hardware, conciencia del carbono y eficiencia energética.  

Los profesionales del software verde deben tener en cuenta estos seis puntos clave:

  1. Eficiencia de carbono: Emitir la menor cantidad de carbono
  2. Eficiencia energética: Utilizar la menor cantidad de energía
  3. Conciencia del carbono: Intentar utilizar fuentes de electricidad «más limpias» siempre que sea posible
  4. Eficiencia del hardware: Utilizar la menor cantidad de carbono incorporado
  5. Medición: No se puede mejorar en algo que no se mide
  6. Compromisos climáticos: Comprender el mecanismo de reducción del carbono

¿Qué podemos hacer como ingenieros de software?

Luchar contra el calentamiento global y el cambio climático nos implica a todos, y ya que podemos hacerlo cambiando nuestro código, podríamos empezar por leer los consejos de Ismael Velasco, experto en la materia. Estos principios están extraídos de su presentación en el evento Code For All Summit 2022:  

  1. Verde por defecto
  • Deberíamos trasladar nuestras aplicaciones a un proveedor o zona de nube más ecológica.

Este artículo recoge tres de los principales proveedores de nube. Google Cloud ha igualado el 100% de su consumo eléctrico con compras de energía renovable desde 2017 y se ha comprometido recientemente a descarbonizar por completo su suministro eléctrico para 2030. Azure ha sido 100% neutra en carbono desde 2012, lo que significa que eliminan tanto carbono cada año como el que emiten, ya sea eliminando carbono o reduciendo las emisiones de carbono. AWS compra y retira atributos medioambientales como créditos de energía renovable y Garantías de Origen para cubrir la energía no renovable utilizada en regiones específicas. Además, sólo un puñado de sus centros de datos han conseguido la neutralidad de carbono mediante compensaciones.  

  • Asegúrate de que la zona de disponibilidad en la que está alojada tu aplicación está en verde
  Notas sobre conferencia DDD Europe I - edición 2018

Esto lo puedes consultar en la Green Web Foundation.  

  • Las transferencias de datos deben ser opcionales, mínimas y enviarse una sola vez

Evitar transferencias de datos inútiles. Elimina información inútil (vídeos, fuentes especiales, javascript y CSS no utilizados). Optimiza los medios y minifica los activos.

  • Reduce la carga de páginas y el consumo de datos con soluciones de almacenamiento en caché centradas en los service workers
  • Utiliza una red de distribución de contenidos (CDN)
  • Puedes gestionar todas las peticiones desde servidores que actualmente utilizan energía renovable gracias a Cloudfront
  • Reduce el número de solicitudes HTTP y de intercambios de datos en sus diseños de API
  • Controla el impacto medioambiental de tu aplicación

Empieza de forma rápida y sencilla, y ve aumentando gradualmente la complejidad.

2. Diseño del modo ecológico

  • Los usuarios tienen la opción de reducir la funcionalidad para consumir menos energía utilizando el diseño del Modo Verde. Vídeos sólo con sonido, audio sólo con transcripción
  • Aplicación web sólo en caché
  • Cero ads/trackers
  • Imágenes opcionales: clic para ver, imágenes en escala de grises

El Modo Verde es una forma de diseñar software que prioriza la prolongación de la vida útil del dispositivo y la inclusión digital sobre la degradación gradual. Para lograrlo, sugiere diseñar para obtener la máxima compatibilidad con sistemas operativos y API web anteriores, así como ofrecer versiones mínimas de CSS.

3. Asociaciones verdes

Deberíamos reflexionar sobre tres cuestiones:  

  • ¿Qué conocimientos nos faltan?
  • ¿Qué redes faltan?
  • ¿Qué podemos aportar a los socios?

¿Qué es la Green Software Foundation?

Accenture, GitHub, Microsoft y ThoughtWorks lanzaron la Green Software Foundation con la Fundación Linux para poner el foco de la ingeniería del software en la sostenibilidad. La Green Software Foundation es una organización sin ánimo de lucro creada en el marco de la Linux Foundation con el objetivo de crear un ecosistema fiable de personas, normas, herramientas y «mejores prácticas de software ecológico». Se centra en disminuir las emisiones de carbono de las que es responsable el software y en reducir los efectos adversos del software sobre el medio ambiente. Además, se creó para aquellos que trabajan en la industria del software y tiene como objetivo proporcionarles información sobre lo que pueden hacer para reducir las emisiones de software de las que es responsable su trabajo en la industria del software.  

  Principales ponentes sobre el software verde

Carbon Hack 2022

El Carbon Hack 2022 tuvo lugar por primera vez entre el 13 de octubre y el 10 de noviembre de 2022, y contó con el apoyo de las organizaciones miembros del GSF Accenture, Avanade, Intel, Thoughtworks, Globant, Goldman Sachs, UBS, BCG y VMware. El objetivo del Carbon Hack era crear proyectos de software verde utilizando el GSF Carbon Aware SDK que consta de dos partes, una API alojada y una biblioteca cliente disponible para 40 idiomas. El hackathon contó con 395 participantes y 51 proyectos cualificados de todo el mundo.  

El software consciente de las emisiones de carbono se refiere a cuando una aplicación se ejecuta a horas diferentes o en regiones donde la electricidad se genera a partir de fuentes más ecológicas -como la eólica y la solar-, ya que esto puede reducir su huella de carbono. Cuando la electricidad es limpia, el software sensible al carbono trabaja más; cuando la electricidad es sucia, trabaja menos. Si incluimos funciones que tengan en cuenta las emisiones de carbono en una aplicación, podemos compensar parcialmente nuestra huella de carbono y reducir las emisiones de gases de efecto invernadero.

Ganadores del Carbon Hack 2022

La bolsa total de premios, de 100.000 USD, se dividió entre los tres primeros ganadores y los 4 ganadores de cada categoría:

Lowcarb es un complemento que permite programar tareas de formación en clientes distribuidos geográficamente para el conocido marco de aprendizaje federado Flower. Los resultados de este complemento mostraron una reducción del 13 % en las emisiones de carbono sin ningún impacto negativo.  

Este marco de optimización energética ajusta el límite de potencia de la GPU y puede integrarse en cualquier trabajo de entrenamiento de DNN. El caso de uso de Zeus mostró una reducción del 24% en las emisiones de carbono y solo un 3% en el tiempo de aprendizaje.

Circa es una biblioteca ligera -escrita en C- que puede instalarse desde una versión mediante un procedimiento de configuración y elaboración de instrucciones de instalación. Elige el momento más efectivo para ejecutar un programa dentro de una ventana de tiempo predeterminada y también contiene un sencillo comando de scripting que espera la energía con menor densidad de carbono durante un periodo de tiempo especificado.

Una biblioteca que proporciona un conjunto de primitivas base para construir UIs conscientes del carbono a cualquier aplicación React; en el futuro, a los desarrolladores les gustaría ofrecer también versiones para otros frameworks populares. Los desarrolladores predijeron que las emisiones mensuales de Facebook se reducirían en 1.800 toneladas métricas de emisiones brutas de CO2 si utilizaran SUI Headless, reduciendo una décima de gramo de CO2e cada visita mientras degradan gradualmente su interfaz de usuario. Esto es comparable al combustible utilizado por 24 camiones cisterna o al consumo anual de energía de 350 casas.

  Charla GSAS: Métricas para arquitectos

Complemento de programación implementado para Kubernetes. Para desplegar una programación consciente de las emisiones de carbono en clústeres Kubernetes conectados geográficamente, los autores desarrollaron una política de programación basada en estadísticas marginales de emisiones de carbono obtenidas del SDK Carbon-aware.

¡Este era mi equipo de Carbon Hack! Con el fin de reducir las emisiones de carbono, desarrollamos un servicio API con una aplicación UI que optimiza la programación de trabajos. El problema se modeló mediante programación lineal de enteros mixtos y se resolvió con Open Source Solver.

Si fuera posible optimizar cientos de procesos industriales de alto consumo energético, las emisiones de carbono podrían reducirse hasta en 2 millones de toneladas al año.

Un ejemplo del sector informático demuestra cómo el hecho de retrasar el trabajo sólo tres horas puede reducir las emisiones de CO2 en casi un 18,5%. Esto supone un ahorro de unas 300.000 toneladas de CO2 al año sí se aplica a un millón de procesos informáticos.

El 83% de las emisiones de carbono de la web proceden de solicitudes de API. Este equipo desarrolló un proxy inverso -una aplicación que se sitúa delante de las aplicaciones back-end y reenvía las peticiones de los clientes a esas aplicaciones- para maximizar la cantidad de energía limpia necesaria para completar las peticiones API (también accesible en NPM).  

Puedes echarle un vistazo a todos los proyectos del Carbon Hack aquí.   

Conclusión

El esfuerzo colectivo y la cooperación interdisciplinar entre industrias y dentro de la ingeniería son realmente importantes para alcanzar los objetivos climáticos globales, y podemos empezar con estos dos cursos que ofrecen la Fundación Linux y Microsoft sobre software ecológico e ingeniería de software sostenible. También podemos empezar a debatir con nuestros colegas cómo reducir las emisiones de carbono producidas por nuestras aplicaciones. Además, podríamos seguir en redes sociales a las personas que tienen conocimientos sobre este tema; yo recomendaría los artículos de Ismael Velasco para empezar.  

En relación con este artículo, si conseguimos escribir nuestros códigos de forma más ecológica, nuestros proyectos de software serán más robustos, fiables, rápidos y resistentes a las marcas. Las aplicaciones de software verde y sostenibles no solo ayudarán a reducir nuestra huella de carbono con nuestras aplicaciones, sino que también ayudarán a sostener nuestras aplicaciones con menos dependencias, mejor rendimiento, uso de pocos recursos, ahorro de costes y características de eficiencia energética.  

Si te interesa participar en este tipo de iniciativas de software verde o asistir a eventos tecnológicos, puedes echar un vistazo al calendario de Apiumhub. Cada semana se añaden nuevos eventos.    

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Suscríbete a nuestro boletín de noticias

Recibe actualizaciones de los últimos descubrimientos tecnológicos

¿Tienes un proyecto desafiante?

Podemos trabajar juntos

apiumhub software development projects barcelona
Secured By miniOrange