En celebración del Día de la Tierra, nos gustaría hablar sobre el concepto emergente de sostenibilidad de aplicaciones. La sostenibilidad de la aplicación analiza la eficiencia energética general consumida durante el desarrollo de la aplicación y su ejecución en producción. La tesis es que podemos ayudar al medio ambiente minimizando los modelos de desarrollo y despliegue de mayor energía.
La Green Software Foundation creó los Principios de ingeniería de software ecológico en 2019. Esto describe principios como «Crear aplicaciones que sean eficientes en carbono». Pero, ¿cuáles son los factores que realmente determinan si una aplicación es sostenible? Algunos de ustedes pueden haber leído acerca de la beneficios de sostenibilidad de la programación en Rust, pero la elección del idioma es solo una parte de la fórmula.
Hardware frente a código
En los días de la computadora central, una gran máquina se encontraba en medio de un piso de concreto en una habitación. Ese era el único requisito en ese entonces: pisos de concreto. COBOL, un lenguaje de codificación de mainframe, se utilizó masivamente. De hecho, cada vez que retira dinero en un cajero automático, es posible que aún se esté ejecutando un programa COBOL en algún lugar para que esto suceda.
Cuando llegamos a las implementaciones cliente-servidor, las máquinas eran cada vez más rápidas y pequeñas, y diseñamos el hardware para lidiar con el hecho de que el código estaba agotando la potencia de procesamiento. Esto elevó los costos de electricidad para la empresa. La densidad de los racks también fue un gran cambio; antes colocamos unas pocas máquinas en un rack, ahora colocamos cientos, lo que hace que la refrigeración de estas máquinas sea el costo principal en los centros de datos.
Hoy en día, si usted es un cliente de la nube primero o solo de la nube, el proveedor de la nube lo es todo. Y tiene la poco envidiable tarea de demostrar que está reduciendo el consumo de energía (medido en teravatios-hora o TWh). Sin embargo, el centro de datos TWh ha subido ligeramente, mientras que la eficiencia en el hardware ha mejorado con los años. Entonces, si el proveedor de hardware está haciendo que el hardware sea más eficiente (y lo hacen), ¿por qué no se traduce en una disminución del uso de energía? O, dado que los hiperescaladores han podido mantener niveles de consumo de energía modestos (a pesar del enorme crecimiento de la computación), ¿por qué seguimos hablando en términos de grandes números de TWh que son preocupantes desde la perspectiva del consumo de energía y la sostenibilidad? La respuesta es que tenemos que mirar la aplicación en sí.
Mayor extracción = mayor costo de energía, pero hay compensaciones
Entonces, ¿qué hace que una aplicación sea sostenible? Los primeros promotores se han centrado en el código, señalando que los lenguajes de programación de bajo nivel como Rust y C son más eficientes que Java y mucho más eficientes que Perl, Python o Ruby. Esas son malas noticias para las plataformas de código bajo, que brindan un nivel de abstracción cada vez mayor, ya que pasan por alto a los desarrolladores profesionales por completo y atienden a los desarrolladores ciudadanos. La realidad es que al acercar la aplicación al usuario comercial (bien), estamos tomando una decisión implícita de perder el control sobre cómo esa aplicación usa energía (no tan bien). Pero la sostenibilidad del código bajo o sin código dependerá de los codificadores altos de los proveedores que construyen las plataformas ellos mismos; sus bibliotecas y resúmenes podrían ser menos o más eficientes.
De hecho, el código bajo no va a ninguna parte. Cuando la escasez de habilidades hace que los desarrolladores experimentados sean difíciles de encontrar, los desarrolladores de código bajo pueden intervenir rápidamente y crear aplicaciones para cumplir con los requisitos comerciales. No vamos a enseñar Rust a los desarrolladores ciudadanos. E incluso si lo intentáramos, los costos de energía al hacerlo, y tener una gran cantidad de desarrolladores de Rust sin experiencia tratando de codificar, muy bien pueden cancelar cualquier mejora de sostenibilidad solo del lenguaje. Hay muchas formas de desarrollar aplicaciones que acaparan energía, y no es solo mediante el uso de lenguajes de programación abstractos.
Esta publicación de blog es parte de la serie del Día de la Tierra 2022 de Forrester. Para obtener más información de Forrester sobre sustentabilidad, consulte el conjunto completo de Forrester’s acción climática blogs
Esta publicación fue escrita por la analista principal Sandy Carielli y apareció originalmente aquí.