logoBosonit_blanco

Sustainable Computing: la eficiencia en el desarrollo y su impacto en la sostenibilidad

Bosonit
Bosonit

En un mundo donde la filosofía de crecimiento infinito y el uso sin control de recursos llega a su fin debido al actual contexto climático, económico y social, las tecnologías de la información no son una excepción y toman fuerza tendencias como el Sustainable Computing.

Desde los primeros ordenadores con tarjetas perforadas, el nivel de refinamiento y abstracción en el mundo del desarrollo se ha incrementado exponencialmente en las últimas décadas, dando lugar a una facilidad sin precedentes para el desarrollo de software, con frameworks y librerías que proporcionan de fábrica casi todo lo necesario para que un único desarrollador ponga en funcionamiento una aplicación online en cuestión de horas, así como numerosas plataformas Low Code / No Code, que permiten desarrollar aplicaciones sin siquiera escribir una línea de código.

Esta sencillez para desarrollar trata de hacer frente al crecimiento exponencial en la demanda de dicha tecnología. Echar la vista 15 años atrás provoca sensación de vértigo si comparamos nuestra vida digital con el uso medio de tecnología por habitante. Asimismo, la adopción generalizada de tecnologías como Big Data y la Inteligencia Artificial, que presentan necesidades intensivas de recursos de computación, completa un panorama donde el consumo medio de recursos en cualquier empresa de mediano o gran tamaño está por encima del de hace tan solo unos pocos años.

El origen de la Computación Sostenible

El auge de las tecnologías Cloud, cuyo uso hemos normalizado por completo, tanto en grandes corporaciones como en pymes y usuarios personales, y que nos permiten lanzar recursos de computación de manera instantánea a un precio de fracciones de céntimo por hora de uso, puede generar la ilusión de que los recursos de computación son virtualmente infinitos. La realidad es que esas máquinas, aunque virtualizadas, residen físicamente en algún punto del planeta, son finitas y consumen ingentes cantidades de energía. Por otro lado, en el mundo del desarrollo, se nos presenta la contradicción de que, si bien levantar un servicio web requiere pocas líneas de código, un servicio web medio en lenguajes como Java requiere varios centenares de megas de memoria para funcionar.

En este contexto, gana fuerza progresivamente el concepto de Computación Sostenible (Sustainable Computing, en inglés), referido en otros entornos como Frugal Computing, que pretende eficientar y racionalizar el uso de recursos de computación para minimizar o neutralizar su huella de carbono, así como concienciarnos del hecho de que estos no son finitos ni gratuitos o de bajo coste en términos de impacto tanto medioambiental como económico.

Si bien el auge del Sustainable Computing es relativamente reciente, autores como Jason Fried, CEO de 37Signals y creador de Basecamp y Ruby on Rails; en su libro ‘Getting Real’ abandera hace años la racionalización de recursos en la creación de software y la huida del “bloatware” y los productos con cientos de características raramente usadas, las cuales representan un gran porcentaje de los costes del desarrollo e incrementan enormemente la complejidad e impacto del mismo.

¿Qué es el Sustainable Computing?

En un plano más puramente técnico, al Sustainable Computing contribuyen hechos como el nacimiento y la adopción progresiva de tecnologías como Web Assembly (WASM), que utiliza código binario sobre una máquina virtual y promete rendimientos cercanos al nativo, es decir, aplicaciones programadas con lenguajes como C++ y compiladas a código máquina, requiriendo menos recursos para obtener los mismos resultados.

En lenguajes como Java, ampliamente utilizados en el mundo empresarial y a los que tradicionalmente se ha criticado su pesadez en términos de recursos, aparecen iniciativas como Quarkus, que requieren no solo menos memoria que las opciones tradicionales, sino un arranque notablemente más rápido que permite un enfoque bajo demanda y una mayor compartición de recursos entre distintos sistemas.

Si bien estas tecnologías aún se encuentran dando sus primeros pasos y su adopción es aún escasa en grandes empresas, crecen de manera constante amparados por estándares y grandes organizaciones. Como ejemplo, Spring, el estándar de facto en el mundo Java, ha desarrollado Spring Native con un enfoque similar a Quarkus, y que presenta rendimientos y usos de memoria prometedores. WebAssembly ha alcanzado su versión 1.0 y no sólo está soportado en los principales navegadores, sino que Docker nos anima a probar Docker + WASM como alternativa ligera y eficiente a los contenedores tradicionales Linux desde su página principal.

En Bosonit, disponemos de un área de innovación donde analizamos las últimas tendencias y mejoras en los ámbitos de Desarrollo, Data, Ciberseguridad y Cloud, llevándolas a la práctica de la mano de nuestros clientes con el fin de obtener conclusiones sólidas con las que poder ofrecer alternativas eficientes y sostenibles para sus operaciones.

Últimas noticias