Como muchos en el viaje de Dev Ops y Machine Learning Ops, tengo corriendo en mi casa un home lab, y la semana pasada, por primera vez desde que me mudé, tuve una interrupción en el servicio de internet. Esto se debió a que hubo una reparación en la fibra óptica cerca de mi casa, y me quedé sin acceso a mi home lab por un par de horas. Como no podía hacer otra cosa, me dejó pensando un par de cosas:
La primera es que, aunque en mi home lab no tengo servicios críticos expuestos hacia otros, sí tengo partes importantes de mi vida, porque es ahí donde vive mi agente de OpenClaw, mis aplicaciones para llevar el track del ejercicio, las finanzas, mi second brain y algunos otros experimentos que tengo corriendo.
La segunda es que, puede ser interesante el experimento de tener una red de fallback para minimizar el downtime de mi servidor. Hasta ahora, mi candidato número uno es conseguir una antena de Starlink y contratar un plan.
Así que empecé a irme un poco en el rabbit hole de cómo configurar la redundancia del internet y me topé con que, primero que nada, necesito conseguir un router que pueda gestionar el failover, como un router Dual-WAN o con balanceo de carga. Y en segundo, me encontré que tengo que gestionar de alguna manera las direcciones IP, porque si mantengo mi configuración actual, en el momento en que mi home lab pase a la red de failover, las direcciones IP podrían cambiar, y la ubicación de los nodos de red y algunos servicios que estoy exponiendo hacia afuera de mi home lab podrían quedarse inaccesibles.
Así que empecé a investigar mis opciones para gestionarlo, y creo que voy a utilizar Tailscale por ahora.
Ya utilizo Tailscale inspirado en un vídeo donde Dax Raad, el creador de Open Code y el Serverless Stack. El utiliza una MacBook Air como un cliente ligero para conectarse por SSH a su workstation principal. Siempre me pareció muy atractivo porque en muchos momentos de mi vida no he tenido laptops muy poderosas, y aunque hoy en día tengo una laptop que me funciona para correr casi cualquiera de mis flujos de trabajo, existen ciertos servicios que tienen más sentido corriendo en un servidor que en mi laptop intermitentemente.
Así que ahora estoy utilizando Tailscale Serve, puedo configurar los servicios expuestos a través de la red de Kubernetes, y Tailscale se encarga de reenrutar el tráfico por debajo. Entonces, el servidor nunca cambia de IP dentro de la Tailnet y puedo seguir accediendo sin preocuparme por qué red está usando mi cluster para contestar.
Hasta ahora, esa solución me parece super elegante, no me queda duda de por qué muchas empresas están optando por usar Tailscale para el acceso seguro a sus servicios y en muchos casos para arquitecturas multicloud.