Knowledge center Programación Entornos de programación

El software siempre producirá emisiones de carbono. Incluso la energía solar produce algunas emisiones así como y la vida humana. Por otra parte, digitalizar todos los sectores es un componente básico para abordar el cambio climático. La solución al cambio climático ha de ser tecnológica. Como ocurre con todos los dominios tecnológicos, medir y comprender cuánto se utiliza es el paso más importante para abordar cualquier tarea. El siguiente paso es comprender las posibilidades de optimización. Generalmente implicará cambios en su infraestructura, su código o sus flujos de trabajo de desarrollo. El paso clave es crear conciencia y educar a los desarrolladores y desarrolladoras sobre el consumo de energía como un componente importante a considerar al diseñar arquitecturas de software. Esto, a su vez, aumentará la demanda de métricas e impulsará la oferta por parte de los actores de la industria. Veamos los componentes del software que contribuyen a generar emisiones:

Software en ejecución

Para poder realizar cálculos, el software necesita utilizar el hardware subyacente y, por lo tanto, consumirá energía. Muchos factores contribuyen al uso de energía (a menudo derroche) por parte del software:

Tiempo de arranque

El software moderno se ejecuta de forma virtualizada o en contenedores. Estas máquinas virtuales deben iniciarse y el costo de este constante movimiento hacia arriba y hacia abajo está oculto para el usuario y, a menudo, incluso para la desarrolladora.

Infraestructura

El software moderno se ejecuta virtualizado al menos en un hipervisor, si no en una máquina virtual o en un contenedor adicional. Esta tecnología resuelve muchos problemas en términos de desperdicio de recursos, pero por contra, la infraestructura a menudo se elige de manera subóptima, se aprovisiona en exceso o es demasiado opaca para analizarla.

Actividades en segundo plano
Después de la interacción del usuario, el software debe realizar trabajos en segundo plano. Ya sean cronjobs, entrenamiento de Machine Leaninig, procesamiento de transmisiones, etc. Pero no se tiene en cuenta por lo general Patrones de Diseño Conscientes del Carbono en el diseño de estos procesos.
Tiempo de inactividad

Incluso en la era de la virtualización, las máquinas suelen tener tiempos de inactividad importantes. En el panorama de los usuarios, esto suele compensarse con modos de suspensión. En el mundo de los servidores, los modos de ahorro de energía normalmente no existen.

Energía del proceso

El software puede ser tan rápido que no se percibe si el uso fue de 10 ms o 100 ms. Sin embargo, la diferencia de energía puede ser enorme y es difícil de estimar si se amplía. Si el tiempo de respuesta es más rápido de lo necesario para el usuario/a, supone un desperdicio de energía.

Software en desarrollo

Al desarrollar software, las máquinas virtuales también aumentan y disminuyen constantemente. Además de eso, en un proceso de desarrollo típico, el software se ejecuta a través de un canal de integración continua (CI) y todas las pruebas se ejecutan en su totalidad. Este proceso suele ser muy opaco y el costo real está oculto para el desarrollador, ya que se lleva a cabo en la nube o en plataformas SAAS especializadas. Comprender el costo de crear software y los ahorros potenciales al agrupar el proceso por lotes o incluso dividir el Pipeline para ejecutar solo las partes relevantes puede ser tremendo.

Open Energy Badge es un proyecto que añade una insignia a los repositorios Github que informa sobre el coste de ejecutar las pruebas en el proyecto, hacer una API, construir el sitio web estático, etc. Son todo ello acciones de los desarrolladores/as llevan a cabo frecuentemente sin conocer que tiene un impacto medioambiental.

Transmisiones de red

Las transmisiones de red están adquiriendo cada vez más atención como uno de los principales generadores de las emisiones de carbono del software. La problemática de las emisiones de las redes no reside en su existencia, sino en su invisibilidad. En los inicios de Internet el coste estaba asociado a la cantidad de datos de transmisión, y dicho coste ayudaba a minimizar las transmisiones. En estos momentos, Internet funciona con tarifas planas, lo que ha introducido un desacoplamiento de la naturaleza de las transmisiones de red que en realidad no tienen una emisión plana de carbono. Como no ves tu consumo de Internet, como haces por ejemplo con tu factura de teléfono, corres el riesgo de descuidarte con el recurso. Lo mismo que ocurre con la comida del buffet, donde las sobras son la norma. Creemos que la solución a esto es hacer que el consumo de Internet sea más visible y conseguir una forma más sostenible de interactuar con él.

El equipo de Sustainable Web Desing realiza un cálculo que se centra en las emisiones producidas por las páginas web, y no solo proporcionan una serie de herramientas, sino que también describen en detalle todos los componentes que influyen en el impacto medioambiental e indican buenas prácticas para abordar el problema.

Sustainable Web Design

La ilustración muestra un diagrama de sistema de red con dispositivos en una red de área local conectándose a redes IP y de acceso. Los cables de transmisión y centros de datos respectivamente están conectados a la red central IP y las redes de acceso. Todo el sistema de red es un gran consumidor de energía, y por tanto, productor de GHG. Es interesante también la reflexión respecto del error al que puede llevar la medida, y dónde está la complejidad de la misma.

Carbono incorporado o embebido

El carbono operacional es el que se desprende en la fase de uso de un producto, bien sea por la energía consumida, el reemplazo de materiales o el mantenimiento. El carbono embebido o incorporado se refiere a las emisiones de GEI asociadas a la fase no operativa de un producto, es decir, las emisiones liberadas en la extracción de sus materias primas, fabricación, transporte, montaje, etc..

Para ejecutar software se necesita hardware. Ese hardware debe producirse y, a menudo, es el principal responsable de las emisiones de carbono. En dispositivos de consumo como los teléfonos inteligentes, normalmente más del 90 % de las emisiones totales de carbono provienen de la fabricación. Afortunadamente, en los servidores esto es más o menos al revés (si no estás usando electricidad libre de carbono).

NégaOctet es un proyecto de investigación que tiene como objetivo desarrollar y probar un marco para evaluar los impactos ambientales de los servicios digitales basado en un enfoque de análisis del ciclo de vida con vistas a su ecodiseño.


Ver Actividad Minimizar el impacto del desarrollo del software
 

Esta píldora formativa está extraída del Curso online de Desarrollo de software medioambientalmente sostenible (Green Software).

¿Te gusta el contenido de esta píldora de conocimiento?

No pierdas tu oportunidad y ¡continúa aprendiendo!

Política de privacidad

ADR Formación utiliza cookies propias y de terceros para fines analíticos anónimos, guardar las preferencias que selecciones y para el funcionamiento general de la página.

Puedes aceptar todas las cookies pulsando el botón "Aceptar" o configurarlas o rechazar su uso pulsando el botón "Configurar".

Puedes obtener más información y volver a configurar tus preferencias en cualquier momento en la Política de cookies