Ordenador publicación del blog

adesso Blog

¡El clima está cambiando (hecho)! Como la temperatura está subiendo, posiblemente nos enfrentaremos a más incendios (forestales), desastres hídricos, extensión de la vida salvaje y mucho más. Eso te hace pensar, ¿verdad?

Para participar en la solución del cambio climático y alcanzar el Acuerdo de París (1,5 grados menos para 2030) es necesario que todo el mundo se implique en la reducción de las emisiones de CO2. Así que...¡esto necesita un cambio por tu parte y por la mía! Desarrolladores, arquitectos, consultores (informáticos) y directivos. Ten en cuenta que lo hacemos juntos. En este artículo, te mostraré cómo reducir la huella de carbono en diferentes capas:

  • Frontend
  • Backend
  • Arquitectura
  • Hardware

Lección 1: Medir y mejorar tu Frontend

Si abres tu navegador favorito y vas a Website Carbon, puedes introducir la página de inicio de tu empresa. Después de pulsar "enter", calculará la huella de carbono de ese sitio.

Te mostrará la cantidad de CO2 que necesita en un año basándose en 10.000 páginas vistas. Además, la calculadora comprueba si el sitio utiliza energía sostenible. Por ejemplo, si procede de energía eólica, solar o hidráulica.

Para reducir la huella de carbono puedes minificar tus páginas html y reducir el tamaño de tus imágenes. Parece sencillo, ¿verdad? Pero, ¿por qué no lo hacemos? Hay herramientas simples (npm) que pueden hacer el truco.

También comprimir las imágenes ayuda mucho, si comprimes las imágenes y vuelves a utilizar la calculadora, te mostrará que has reducido las emisiones de CO2. ¡Enhorabuena! ¡Has hecho algo bueno por el mundo! No te ha costado mucho esfuerzo, ¿verdad? Si no puedes dejar de mejorar, consulta esta web. Te da 20 consejos más para que tu web sea más eficiente energéticamente.


Mediciones de potencia por RAPL

Para ser energéticamente neutro, te mostrará cuántos árboles necesitas para absorber el CO2.

Por favor, comparte los resultados con la gente que está detrás de ese sitio...

Lección 2: ¡Mide tu backend!

Si no tienes un dashboard como el de Azure que mide la huella de carbono, puedes medir la JVM con tu aplicación. Dentro de Linux, puedes utilizar una herramienta como PERF que te muestra los joules que estás consumiendo. El único requisito es que necesitas un chip Intel con RAPL (Running Average Power Limit). Se trata de una función de potencia para CPU de Intel y AMD.

Si combinas esta característica de la CPU con una herramienta como Hyperfoil, Gatling, wrk, wrk2 o cualquier otra prueba de carga podrás hacer algunas mediciones. En este repositorio GIT, creado por Ionut Balosin y por mí, encontrarás algunos ejemplos (para una aplicación Spring, una aplicación Quarkus y la herramienta de benchmarking Renaissance) de cómo hacerlo. Pero lo más importante es este comando:

$ perf stat -a \
-e "power/energy-cores/" \
-e "power/energy-gpu/" \
-e "power/energy-pkg/" \ -e "power/energy-psys/" \
-e "power/energy-psys/" \a
-e "power/energy-ram/" \
<el comando o aplicación que desea medir>

Como puedes ver en la lección 2, mide el PSYS (verde oscuro de la imagen) del sistema, el Package (amarillo) que incluye los núcleos de la CPU (en rojo), y la GPU (gráficos integrados). Además, puedes identificar la energía de la RAM (en verde claro).


Mediciones de potencia por RAPL

Cuando estás ejecutando el comando, revela todo en joules. Si quieres saber el total de vatios por segundo para el paquete y la RAM, la fórmula es: (energía-pkg + energía-ram) / tiempo

Recuerda, usar el comando es medir todo el sistema. Por lo tanto, limite los procesos en segundo plano que se estén ejecutando (manténlos al mínimo).

Lección 3: Decisiones de arquitectura

Piensa en las decisiones que tomas. ¡Llamar a sistemas, bases de datos u otros microservicios no es bueno si te fijas en los recursos! Por ejemplo, si necesitas información de un cliente de un equipo, necesitan construir algo. Esto es sobre todo un microservicio, por lo que puede hacer una llamada REST para recopilar la información. Pero crear una aplicación de este tipo requiere recursos (y dinero). Necesitas codificarla y ejecutarla en una (gran) JVM que podría consumir a partir de 200 MB si utilizas Spring Boot (en la mayoría de los casos). Añadir cualquier capa adicional de dependencias de terceros empeora aún más las cosas.

Cuando necesites crear un microservicio, piensa mínimamente en estos trucos:

  • Optimiza tu tráfico de red e intenta minimizar el número de llamadas de red.
  • Aumenta la utilización de tu computación, considera el auto escalado.
  • Reduce el número de microservicios, menos es más.
  • Optimiza tu base de datos, piensa en optimizar las consultas.
  • Comprende tus límites de latencia y monitoriza la carga de tu aplicación.

Además, no utilices librerías o frameworks si no los necesitas necesariamente. Por ejemplo, no uses Kafka si no lo usas en combinación con big data (aunque Kafka Streams es genial). Puede que no necesites Lombok o cualquier ORM como Hibernate si tu modelo de datos es bastante pequeño.

Lección 4: Ejecutar el hardware adecuado

Elige el centro de datos adecuado. Comprueba si tu sitio se ejecuta en una plataforma de alojamiento "verde". Visita está página web y comprueba si tu proveedor está en la lista.

Elige el que tenga la menor huella de carbono y funcione con energía verde (solar o eólica). Según las investigaciones (BBC, Google), Google afirma que sólo utiliza energía renovable (y que su objetivo es estar libre de carbono en 2030). ¿Así que quizá deberíamos utilizar Google Cloud? O si no te fías del grande, también puedes optar por Digital Realty, que también va a estar libre de carbono en 2030.

Resumen (your to do list)

1. Entra en website carbon y calcula el carbono de tu web (de empresa) y mejora

2. Mide tu backend y elige cuidadosamente la pila tecnológica, incluida la JVM

3. No te limites a usar microservicios porque es el estándar por defecto

4. Elige un proveedor verde, que puedes comprobar en the green web foundation

Espero que este blog te ayude en tu viaje sostenible.

Si te ha gustado el post, por favor, ayuda al mundo y dona un árbol para reducir las emisiones de CO2.

Fuente de Ionut Balosin y Ko Turk

Imagen Ko Turk

Autor Ko Turk

Como Desarrollador Java Senior, Ko Turk forma parte del creciente Blue4IT de adesso Países Bajos.

Guarde esta página. Eliminar esta página.