Módulo 02 // Unidad 02

El ciclo de vida de un producto digital

Del diseño a la retirada: en qué fases genera impacto una aplicación

Unidad para alumnos del curso

Comprobando tu sesión…

Inicia sesión con la cuenta de Google con la que estás matriculado para ver esta unidad.

Esa cuenta no tiene acceso a este curso. Prueba con otra.

No se ha podido cargar el inicio de sesión de Google. Comprueba la conexión o si algún bloqueador lo impide, y recarga la página.

En el módulo 1 viste que un portátil tiene una huella de fabricación y otra de uso. Esa manera de mirar un producto de principio a fin tiene nombre, análisis de ciclo de vida, y también se puede aplicar a una aplicación web. El resultado es un mapa de en qué momento se decide la huella de un producto digital, y la respuesta es casi siempre la misma: mucho antes de que alguien lo use.

1 // El análisis de ciclo de vida

El análisis de ciclo de vida (ACV, o LCA en inglés) es un método normalizado, recogido en las normas ISO 14040 e ISO 14044, para calcular el impacto ambiental de un producto desde la cuna hasta la tumba. Para un producto físico, las etapas son:

  1. Extracción de materias primas: minería, petróleo, agua.
  2. Fabricación: transformar esos materiales en el producto.
  3. Distribución: transporte y embalaje hasta el cliente.
  4. Uso: la energía y los consumibles durante su vida útil.
  5. Fin de vida: reciclaje, reutilización o vertedero.

La gracia del ACV es que evita trasladar el problema de una etapa a otra sin darse cuenta. Un coche eléctrico, por ejemplo, reduce mucho las emisiones de uso, pero su batería aumenta las de fabricación; sólo mirando el ciclo completo se puede saber cuál es el balance.

Sin ciclo de vida, una mejora puede ser un espejismo. Una decisión es buena si reduce el impacto total, no sólo el de la fase que estás mirando.

2 // Aplicado al software

El software no tiene materias primas ni se transporta en camión, pero necesita hardware y energía en cada etapa. Adaptando el esquema anterior:

EL CICLO DE VIDA DE UNA APLICACIÓN tiempo 1 · DISEÑO y desarrollo 2 · DESPLIEGUE Y USO millones de ejecuciones · años 3 · MANTENIMIENTO · continuo 4 · RETIRADA o zombi lo que se decide aquí se multiplica aquí HARDWARE INDUCIDO servidores más grandes · móviles que se quedan cortos antes la fase que nadie planifica: apagar
Las cuatro fases del ciclo de vida de una aplicación. La fase de uso es la más larga y la que más consume, pero casi todo lo que ocurre en ella se decidió en la fase de diseño.
Fase Qué consume Ejemplos
Diseño y desarrollo Equipos del equipo, entornos de pruebas, integración continua Portátiles, servidores de CI, entornos de preproducción encendidos
Despliegue y uso Centros de datos, redes y dispositivos de los usuarios Peticiones, consultas, transferencias, procesado en el navegador
Mantenimiento Todo lo anterior, de forma continua Actualizaciones, copias de seguridad, monitorización, registros
Retirada Migración y borrado Exportar datos, apagar servidores, eliminar copias

Y hay una fase que no aparece en la tabla, pero que conviene no olvidar: el hardware inducido. Si tu aplicación exige un móvil potente, o un servidor mayor, está provocando la fabricación de ese hardware, aunque no sea tuyo.

Cuidado con una trampa habitual: pensar que la huella del desarrollo es la importante porque es la que ves. Los ordenadores del equipo y los servidores de pruebas cuentan, pero en una aplicación con muchos usuarios la fase de uso suele ser muchísimo mayor, porque se repite millones de veces. Lo que no significa que puedas descuidar el desarrollo: un pipeline de CI que compila todo en cada commit, o un entorno de pruebas encendido todo el fin de semana, también suman.

3 // Decidir una vez, ejecutar millones de veces

El rasgo más característico del software es que se diseña una vez y se ejecuta una y otra vez. Eso convierte cada decisión en un multiplicador:

  • Elegir un formato de imagen afecta a cada visita durante años.
  • Añadir una librería de 300 kB afecta a cada carga de página de cada usuario.
  • Consultar la base de datos sin índice afecta a cada petición que la usa.
  • Programar una tarea que se ejecuta cada minuto afecta a las 525.600 ejecuciones que tendrá al año.

Un equipo decide cargar en la página principal una librería de gráficos de 300 kB, aunque sólo la usa una sección que visita el 5 % de los usuarios. La web tiene 50.000 visitas diarias sin la librería en caché.

  1. Datos extra al día: 300 kB × 50.000 = 15.000.000 kB ≈ 15 GB.
  2. Datos extra al año: 15 GB × 365 ≈ 5.475 GB, unos 5,5 TB.
  3. Datos realmente necesarios: sólo el 5 % de las visitas usa la librería, así que bastarían unos 275 GB al año si se cargara sólo en esa sección.
Una decisión de cinco minutos genera más de 5 TB anuales de transferencia innecesaria. Cargar la librería sólo donde se usa elimina el 95 % de ese tráfico, y cada móvil se ahorra también interpretar código que no va a ejecutar.

Existe una observación irónica, la ley de Wirth, que dice que el software se vuelve lento más deprisa de lo que el hardware se vuelve rápido. Es una exageración, pero describe algo real: si cada versión de una aplicación pide un poco más, el hardware de los usuarios envejece antes. En el módulo 7 volverás sobre esto.

4 // Retirar también es diseñar

La última fase es la que menos se planifica. Las empresas acumulan software zombi: servicios que nadie usa pero que siguen desplegados, bases de datos de proyectos cerrados, entornos de pruebas olvidados, copias de seguridad de datos que ya no hacen falta.

Todo eso consume electricidad y ocupa hardware sin aportar nada. Por eso un ciclo de vida sostenible incluye, desde el principio, preguntas como:

  • ¿Cuándo dejará de ser útil esta funcionalidad y cómo la retiraremos?
  • ¿Cuánto tiempo necesitamos guardar estos datos?
  • ¿Quién es responsable de apagar este entorno cuando acabe el proyecto?

La huella de una aplicación se decide en el diseño, se multiplica en el uso y se olvida en la retirada. Mirar el ciclo completo es la forma de no optimizar lo que se ve y descuidar lo que más pesa.

Autoevaluación

El software no se extrae de una mina ni se fabrica en una planta. ¿Cómo puede tener un ciclo de vida con impacto ambiental?
A través del hardware y la energía que necesita en cada fase. Desarrollarlo usa ordenadores y servidores de integración; usarlo consume electricidad en centros de datos, redes y dispositivos; y sus requisitos deciden cuándo hay que comprar hardware nuevo. El impacto del software es indirecto, pero real.
¿Por qué las decisiones de diseño tienen tanto peso en la huella de una aplicación?
Porque se toman una vez y se ejecutan millones de veces durante años. Un cambio que ahorra muy poco en una petición se multiplica por cada usuario, cada visita y cada día que la aplicación está en producción. En la fase de uso no se decide casi nada nuevo: se repite lo que se decidió al diseñar.
¿Qué huella tiene un servicio que nadie usa pero sigue desplegado?
Toda la de sus servidores y ninguno de sus beneficios. Sigue consumiendo electricidad, ocupa hardware que podría usarse para otra cosa y, a menudo, genera copias de seguridad y registros. Por eso retirar lo que ya no aporta es una decisión de sostenibilidad, no sólo de orden.

Evaluación de esta unidad →