Artículo
· 16 feb, 2023 Lectura de 2 min

Rompe los límites del servidor

¡Hola, desarrolladores!

Sois expertos en IRIS y conocéis todos los trucos.
Las funcionalidades $ZF() y CPIPE no son nuevas para vosotros.
Así que también conocéis los límites de estas funcionalidades.
Ambos dan acceso a su entorno de servidor local. Y este es el final.
En muchos casos esto es perfectamente suficiente.
PERO :
Si IRIS se ejecuta en un contenedor Docker, está bloqueado y
aislado en ese contenedor. Este es el concepto básico del contenedor.
Puede ingresar al contenedor desde el exterior y recopilar datos.
Pero nada puede salir del contenedor sin una consulta. ¡Muy bien!
Esto hace que las funciones $ZF() y CPIPE sean casi inútiles.

¡Basta de quejarse! Habéis entendido el problema.
He pensado en una posible solución para escapar de esta prisión.
Pero debe tener la misma funcionalidad o mejor... ¿cómo mejor?
Desde IRIS/Caché nunca tengo más privilegios en el sistema host
que IRIS/Caché o mi terminal. Esta es una limitación incómoda,
especialmente en el contenedor Docker.

Mi solución se ve así:
Comienzo un programa esclavo donde quiero ejecutar mis comandos.
No un Espartaco, porque debe hacer exactamente lo que le digo. Y nada más.
Resulta que esto no solo es útil para los contenedores Docker, sino en general
para todas las situaciones en las que no estoy hablando con mi servidor host directo, 
sino con algún sistema que me está escuchando. 

La técnica específica:
He creado dos programas esclavos (en Python y C++) que escuchan en un puerto TCP.
Y un comandante en COS que envía las órdenes y puede estar esperando comentarios.
Dado que me estoy comunicando a través de TCP, el proceso esclavo puede estar en
cualquier lugar de la red en la medida en que lo permita el firewall.
Además, puedo otorgar a mis procesos esclavos exactamente los privilegios 
que considero correctos y necesarios, independientemente de IRIS/Caché. 
Ese fue un efecto secundario agradable y no planificado.

Los ejemplos para los programas esclavos y el comandante, así como los ejemplos,
también están disponibles en GitHub.

¡Espero que haya sido interesante! Podéis votar mi artículo en el 2º Concurso de Artículos Técnicos.

¡Saludos cordiales desde Viena!

Nota.- La traducción al inglés estará disponible en marzo cuando termine el concurso.

Comentarios (1)1
Inicie sesión o regístrese para continuar