Enrutado
Proxifier (driver de filtrado a nivel de kernel) enruta por PID. Un manager observa los procesos, los agrupa en buckets y regenera el perfil cuando cambia la topología.
Proyecto 02 · infraestructura / observabilidaden operación
Enrutado por proceso, failover automático y detección de instancias congeladas.
Orquestador de red por proceso para Windows: asigna cada instancia de una aplicación a una salida de red distinta (proxy o ISP local), hace failover automático cuando una salida cae, detecta instancias congeladas por imagen y se despliega solo desde git. Todo en PowerShell 5.1, sin inyectar código en la aplicación que administra.
Fig. 1 · Demo animada · datos simulados, modelo real
Cada sala es un bucket, cada pantalla una instancia. La franja superior muestra números reales que el equipo empuja a esta Pi cuando está en línea.
Fig. 2 · El problema
Cada instancia debe salir a internet por la misma salida siempre, aunque el proceso se reinicie. Si un proxy cae, sus instancias tienen que seguir funcionando sin intervención humana y volver solas cuando se recupere. El equipo se administra por escritorio remoto y a veces se reinicia solo por Windows Update, así que todo debe recuperarse sin nadie conectado.
Fig. 3 · Restricciones que hacen interesante el problema
La asignación instancia → bucket se persiste en un ledger por número de ventana, que sobrevive a los reinicios del proceso. El PID no.
Fig. 4 · Cómo está resuelto
Proxifier (driver de filtrado a nivel de kernel) enruta por PID. Un manager observa los procesos, los agrupa en buckets y regenera el perfil cuando cambia la topología.
Modo estricto: todo lo que no tiene regla se bloquea. Más una regla de firewall contra QUIC (UDP 443), por donde el navegador se fuga con la IP real.
Un vigilante marca un proxy caído tras dos fallas seguidas. Sus instancias se redistribuyen entre los sanos, nunca hacia el ISP. El ledger no cambia, así que al recuperarse vuelven solas.
Captura cada ventana desde el compositor de Windows, no desde la aplicación, y compara huellas de 64×36 en gris. Un cliente 3D vivo nunca produce dos cuadros idénticos; uno congelado sí.
El equipo sigue una rama deploy. Cada 10 minutos hace fetch; si hay commit nuevo detiene, resetea, verifica que todo sea ASCII y parsee, y arranca. Si falla, revierte al commit anterior.
Dashboard servido por el propio stack: instancias con bucket e IP de salida, ocupación, failover en curso, latencia de proxies 24 h. Lee JSON escritos de forma atómica.