Articulo: Una Terminal Tonta para Desarrollo

A pesar de que no he hablado mucho más sobre este tema, la verdad es que sigo necesitando un entorno ligero y remoto para avanzar con mis cosas. En esta ocasión ya toca revivir un viejo recurso del que hace mucho no se habla y que ahora se ha convertido en una amenaza: los terminales tontos.

Este es un post de categoría Desarrollo y Proyectos

Puedes encontrar todos los artículos en orden cronológico en la etiqueta YogaBook

Introducción

Para comenzar, he de decir que la crisis de los componentes tecnológicos está en pleno auge. Efectivamente, los precios se han disparado y han aparecido toda clase de conjeturas. Llamémosle «Ronda 2» a la situación en la que se intenta convertir la computación personal al modelo de «Hardware como Servicio». Algo que las empresas ya exploraron con plataformas como Google Stadia (muerto en 2023), OnLive (en 2015) y el más conocido LiquidSky (en 2019).

El objetivo de estas ofertas era darte acceso a un hardware potente que no puedes o no necesitas conseguir. Pagando una suscripción, tendrías acceso a equipos con los que podrías jugar desde cualquier parte, siempre que tengas internet.

Por supuesto, aunque murieran grandes como Google Stadia, eso no significa que el cloud gaming haya muerto. Xbox Live todavía existe y GeForce Now, de Nvidia, sigue trabajando sin problemas. Pero claro, esto era algo de un nicho muy preciso: videojuegos.

Tensando la cuerda

Como ya lo he mencionado en otro momento, las empresas no pueden sostenerse vendiendo productos duraderos y las computadoras tienen una vida útil larguísima últimamente. El hardware de estos días, incluso el más ligero, ya rinde como el mejor que lo que se consideraba poderoso en su tiempo. Por ejemplo, el Intel N100 de mi LarkBox ya es tan potente como el Intel Core i7-6700K de sexta generación. Equipado con una SSD NMVE y 12GB de RAM, este equipo iba sobrado para tareas de oficina, multimedia y algunas un poco más pesadas, antes de la crisis de la RAM.

De haber seguido este camino, las computadoras serían muy duraderas, pues el hardware ya es capaz de lidiar holgadamente con la tendencia del desarrollo en la que el software está cada vez menos optimizado. Esto significaría que la LarkBox podría durar muchos años sin despeinarse. Por supuesto, equipos más modernos y poderosos tendrían expectativas superiores aún. De hecho, las computadoras de mi trabajo son i7 de octava generación. De hace 9 años ya y sigue rindiendo perfectamente para lo que se la compro. Como es evidente, para una empresa significa que en un momento dado, es una sola compra en 9 años.

Esta situación también afecta al software. Y de forma normal, un programa bien hecho también es una sola venta en muchos años (en algunos casos, en muchas décadas), por lo que los desarrolladores muchas veces también venden servicios mensuales como mantenimiento o actualizaciones, para poder seguir ganando dinero de forma regular. Por esta razón, apareció el Software como Servicio (SaaS).

El Software como Servicio permite que desarrolles tu programa una vez y puedas cargar el peso del desarrollo, infraestructura y mantenimiento en muchos clientes, siendo esto una fuente de ingresos regular y estable. Una situación que no se puede hacer vendiendo computadoras, hasta que llegamos a la época del Cloud PC.

Microsoft ofrece ahora Windows 360, que permite usar una instalación de Windows en la nube, de tal manera que se puede consumir como si fuera Netflix. Te conectas a internet y accedes a todos tus archivos y programas en la nube.

 

Y ahora viene la IA y patea el tablero

Había cierto equilibrio entre el software evolucionando al SaaS y el Cloud PC orientado al entorno empresarial, pero la llegada de la inteligencia artificial fue un trastorno completo que todo el mundo está tratando de aprovechar sin saber muy bien cómo. Mientras las empresas más tradicionales buscan despedir a los empleados, otras están buscando el fin definitivo del hardware. Por supuesto, es imposible que sea definitivo, pero sí que quieren aprovecharlo para girar el mercado un poco más hacia el Cloud PC.

Debido a los altos precios del hardware, la gente está tratando desesperadamente de ahorrar. O compran equipos de bajo costo o directamente no los compran. Por supuesto, según la ley de oferta y demanda, si hay mucha demanda y poca oferta, el precio sube. Pero la situación está llegando a un punto en el que los altos precios también están reduciendo la demanda, por lo que la disponibilidad de equipos también se va a reducir. Es la oportunidad perfecta para experimentar.

La segunda vida de los terminales tontos

Por supuesto, hay un problema que todavía queda por resolver. El hardware esta caro hasta para los terminales tontos. Actualmente la Larkbox sigue costando poco, con un incremento ligero, debido a que es producido en masa con componentes baratos, pero la versión larkbox X 100U ya registra un precio de hasta el doble de lo que tenia originalmente. Esto es porque usa memorias DDR4 a diferencia de la LPDDR5 que de la versión con Celeron n100. Ignoro si se llegara a este equilibrio antes de la explosión de la burbuja, pero sus efectos se seguirían sintiendo largo tiempo luego de tal explosión. Por ahora vemos situaciones raras en las que a los usuarios domesticos se nos ve como parásitos de la tecnología, con acusaciones por las propias empresas de inteligencia artificial, de que es un desperdicio que nosotros tengamos memorias RAM, así que, para ser sinceros, lo ideal seria hacer lo contrario a lo que quieren, comprando masivamente para que se queden ellos sin recursos… si nosotros tuviéramos dinero ilimitado y si no se nos hubiesen adelantado comprando la producción de las empresas en un 100% hasta por un año entero…Así que la realidad es que… solo nos queda esperar a ver como se desarrolla la cosa y aguantar.

Aun así, sigo pensando que esto es curioso pues, es una segunda vida para los terminales tontos. y es el mejor momento para esto. Todos los días usamos uno y es perfectamente capaz de aprovechar las capacidades del Cloud… y me niego a darles el gusto jajaja.

Mas sobre los terminales tontos

Una terminal tonta (también conocida como terminal boba o gregaria) es un dispositivo de hardware que carece de capacidad de procesamiento propio y de almacenamiento local. Su única función es servir como interfaz de entrada y salida para que un usuario pueda interactuar con una computadora central o servidor remoto, el cual realiza todo el procesamiento de datos y ejecuta los programas.

Características principales

  • Sin hardware de procesamiento: No cuenta con una CPU potente ni con memoria RAM para ejecutar aplicaciones de forma independiente.
  • Sin almacenamiento local: No posee disco duro ni unidades de estado sólido; por lo tanto, no guarda archivos ni sistemas operativos localmente.
  • Componentes mínimos: Consiste básicamente en una pantalla, un teclado, un mouse y los puertos necesarios para conectarse a la red o al servidor.
  • Dependencia total: Si se desconecta de la computadora central, el dispositivo queda completamente inútil, ya que no puede funcionar por sí solo.

Diferencias clave: Terminal Tonta vs. Computadora Personal (PC)

Característica
Terminal Tonta
Computadora Personal (PC)
Procesamiento
Se realiza al 100% en el servidor remoto.
Se procesa localmente mediante su propia CPU.
Almacenamiento
Inexistente; todo se guarda en la nube o servidor.
Local (Disco duro / SSD).
Costo
Muy económico y requiere bajo mantenimiento.
Más costoso debido a sus componentes internos.
Seguridad
Alta; al no guardar datos, es inmune a robos de información local.
Vulnerable si no se protegen los archivos locales.
Autonomía
Nula; requiere conexión constante.
Puede trabajar de forma completamente independiente.

Evolución y uso actual

Originalmente, en las décadas de 1970 y 1980, eran monitores de tubo (CRT) que solo mostraban texto en verde o fósforo blanco mediante líneas serie.
Hoy en día, este concepto ha evolucionado hacia los Thin Clients (clientes ligeros) o soluciones de virtualización (como los servicios de NComputing). Se utilizan frecuentemente en entornos controlados como bibliotecas públicas, centros educativos, laboratorios, centros de llamadas (call centers) y oficinas administrativas para reducir costos de infraestructura informática. (observación: aunque se supone que todo esto se habla como un modelo de ahorro y seguridad, en la práctica y aquí en el tercer mundo, solo una vez vi terminales tontos en mi vida; en mi universidad. No duraron nada porque los profesores no fueron capacitados en su uso. En la práctica y al menos hasta que se demuestre lo contrario, sigue siendo más viable comprar un equipo completo)

Terminal tonto: LarkBox + YogaBook + Infinix Smart 8

Actualmente cuento con un plan de datos miserable de Movistar (ahora Tigo) por lo que cuento con 500 MB al día para navegar por internet. Pero ya tengo desplegado mi servidor en la LarkBox en casa, la cual tiene potencia suficiente para muchas cosas. Así que con mi Smart 8 sí que puedo gestionar algunas cosas que necesito, como ver logs, iniciar tareas, descargar cosas, etc. Sin embargo, esto no es viable para programar aunque tiene potencia suficiente como para permitirme hacer un juego en Godot. Mira tú.
Hace poco reviví la Lenovo YogaBook. Una máquina hermosa, pero con un hardware tan limitado que prácticamente abrir la ventana del navegador y una terminal ya ocupa todos sus 4GB de RAM. Y eso que he aplicado zram y otras optimizaciones. La calidad de la pantalla de esta máquina es increíble, así que quería aprovecharla. Entonces sumé los elementos que tengo y esto es el resultado:

  • LarkBox: Celeron N100 (equivalente a i7 de sexta generación) con 12GB de RAM y 1TB de NMVE.
  • Infinix Smart 8: pantallita y solo 3GB de RAM
  • Lenovo YogaBook: Pantallota pero solo 4GB de RAM

Por supuesto, había material para un servidor y dos terminales tontos.

Probando límites

Una de mis primeras intuiciones era aprovechar un contenedor de Docker para desplegar una instancia de Code-Server. Este es un IDE web que permite editar código en un navegador usando VSCode en línea. Esto es una maravilla, pues funciona todo, incluso las extensiones. Pero tenía problemas:

  • Datos: Consumía muchos datos debido a la edición en tiempo real (Smart 8, YogaBook)
  • Pantalla: Ocupa mucho espacio para una pantalla vertical (Smart 8, YogaBook)
  • RAM: Ocupa mucho espacio el navegador, así que hay cuelgues constantes (Smart 8, YogaBook)
  • Límites de lo que se puede desarrollar: Para desarrollo de scripts y algunas pruebas y correcciones está bien. Pero es muy caótico para sistemas más complejos como Flutter. De hecho, compite por las configuraciones de mi máquina principal con VSCode, por lo que muchas veces se desconfigura. Además, no se pueden abrir el entorno de depuración y depurar Flutter por Web implica un gasto de 250MB de datos en cada recarga. (Smart 8, YogaBook)

Por esta razón, queda desechado Code-Server. Entonces apareció la opción de una terminal tonta. En realidad, ya tenía la mayoría de la infraestructura montada:

  • Un puente: Wireguard para que todos los dispositivos se vean por internet de manera segura
  • VNC server y cliente: Elijo TightVNC por ser el que permite crear un escritorio virtual. (véase nota luego de la lista)
  • Servicio de escritorio: OpenBox con Tint2. La verdad no estoy satisfecho con esta selección, pero es ligera y sirve por ahora.

Tienes que recordar que el servidor VNC consume hartos datos, así que lo ideal es bajarle al consumo reduciendo la calidad y maximizando la compresión. Esto lo hago para poder aprovechar la ventaja de VNC de que puede actualizar solo las áreas que se actualicen, por lo que el consumo de datos es mínimo. También, al crear un servidor VNC, este se puede escalar libremente y dejar corriendo incluso al desconectarte, evitando que pierdas tu trabajo.

Ten en cuenta que cuando ejecutas un programa en VNC en el mismo usuario que tu equipo normal, puede causar conflictos, por lo que te recomiendo cerrar los programas que quieras abrir en tu sesión de VNC.

Una improvisada «Tarifa Plana»

Este modelo de desarrollo tiene la extraña ventaja de tener un consumo de datos predecible, con lo que puedes controlar tu consumo sin sorpresas. Esto implica:

  • Uso de recursos remotos: Tanto el celular como la YogaBook cuentan con recursos limitadísimos. Usarlos como terminal tonto implica contar con el poder de cómputo de la LarkBox completo. Esto son 4 núcleos de CPU y 12GB de RAM.
  • Conservar la sesión de trabajo: Al cerrar el visor o perder la red, no se pierde la sesión de trabajo. La puedes recuperar exactamente donde la dejaste, incluso desde la propia máquina local. Es un entorno de escritorio completo y virtual.
  • Tarifa Plana: Claro, depende de si tienes un plan de datos de tarifa plana en casa. Pero puedes ver la app en ejecución en tiempo de depuración sin el consumo de datos que implica visualizar la web. Flutter permite un modo web para depurar, pero por la cantidad de elementos que transmite, puedes comerte tranquilamente 250MB entre cada recarga de la página. Esto no se nota en el cliente VNC pues todo el trabajo lo hace la PC remota y tú solo ves el resultado.

Y quedan más ventajas, como administrar archivos, descargar, almacenamiento extendido, etc. Es muy útil, pero claro, depende completamente de si tienes un buen internet. Una sesión optimizada de VNC puede gastar 250MB por 4 horas de trabajo continuo, por lo que puede ser una ventaja importante.

Conclusiones

Al final del día, hay muchas soluciones que aparecen como respuesta a una necesidad. Y me he valido de recursos que ya tengo disponibles para poder avanzar en mis proyectos desde lejos de mi computadora y de manera segura. Aun así, me llama la atención como ha nacido esta segunda era de los terminales tontos. Me sigue pareciendo una fantasía por cuanto dependen de una conexión permanente a Internet y no vivimos en un entorno que permita tal cosa, pero aprovechar recursos en lugar de conseguir nuevos, siempre es bienvenido.

El articulo me quedo mas extenso de lo que esperaba así que a modo de experimento, dejo un pequeño glosario.

  • Cloud PC: Se refiere a la capacidad de usar una instalación de sistema operativo en la nube.
  • SaaS (Software as a Service): Modelo de negocio donde el software se ofrece a través de la nube mediante suscripción.
  • Docker: Tecnología utilizada para empaquetar aplicaciones y sus dependencias en contenedores.
  • Code-Server: Un entorno de desarrollo integrado (IDE) basado en navegador.
  • VNC (Virtual Network Computing): Protocolo utilizado para acceder y controlar remotamente un escritorio.
  • Wireguard: Un protocolo de red VPN.
  • Thin Clients: Dispositivos de computación ligera diseñados para conectarse a un servidor.
  • zram: Una técnica de compresión de memoria.

Únete a mi red poniendo la URL de tu blog. Aprender más

 
Interlan
Interlan
@interlan.ec@interlan.ec

Este es mi sitio personal y profesional, donde publico mis actividades, experimentos y servicios que he ido desarrollando durante mi crecimiento profesional.

166 publicaciones
0 seguidores

Descubre más desde Interlan

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Fecha de publicación


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.