Autor: Juan Confalonieri

  • Montando mi propio rack de red

    Montando mi propio rack de red

    Desde hace un tiempo vengo invirtiendo dinero en montar mi propia infraestructura. Sin embargo, por cuestiones de espacio y tiempo, no había podido hacer algo concreto. Recientemente me he mudado a un departamento en el que puedo montar mi propio laboratorio sin mayores problemas.

    Mediante fui acumulando cosas y complejizando mi infraestructura de red, me di cuenta que necesitaba algo para poder acomodar todo y no tener todo disperso en un mueble. Para esto un rack suele ser de utilidad. Si bien tengo espacio en la oficina, no tengo lugar para montar un rack de 19′, la medida tradicional por así decirlo. Indagando en internet descubrí que existen los racks de 10′, una medida no tan común, pero que cumplía para el tamaño de mis dispositivos de red. El problema de esta es que no se consigue fácilmente, por lo menos en Argentina, y si los hay, son muy costosos. Quería una solución rápida, aunque sea momentánea, y saqué mi artista interior.

    Desde un principio no me convenció, no era practico ni estético, aunque admito que termicamente era muy bueno – un poco overkill el cooler de 140mm de alto caudal si –, me servia a corto plazo. Con el pasar de los días retome la búsqueda y la solución vino por otro lado, la impresión 3D. Las alternativas eran numerosas y espectaculares, pero tengo el limitante de que mi Biqu B1 no es capaz de imprimir piezas tan grandes. Tenia que ser algo modular y que se puedan dividir las piezas grandes para poder hacerlas en impresoras pequeñas. Finalmente di con este proyecto que cumplía a la perfección mis necesidades, con una comunidad que complementaba el trabajo del autor. Sabia que seria un modelo complejo y que a mi maquina le llevaría tiempo, pero le di para adelante. Dejo el link al modelo en Printables.

    Manos a la obra!. Decidí hacerlo en PETG por su resistencia al calor y mejores propiedades mecánicas que el PLA. A continuación pondré fotos – disculpen el desorden – del proceso he iré comentando algunas cuestiones

    Perfil de rack impreso en 3D

    Empece por lo mas fácil, los rieles. Mi idea era ver como salían y me dejaron conforme, aun no le encuentro la vuelta al PETG en mi impresora 3D, pero esta vez cumplió y decidí continuar.
    La idea era usar el cooler de 140mm que le habia puesto al intento de rack , pero el modelo del autor soportaba hasta 120mm, por lo que tuve que comprar nuevos.

    Un colaborador del proyecto diseño bulones plásticos, estaban buenos, pero la impresión tenia que ser perfecta. No confió en las tolerancias de mi impresora, los use de momento pero mas adelante compre bulones M6 de 20mm y tuercas para asegurarme de no tener problemas en el armado o en la resistencia de los mismos.

    Estructura base

    Iba tomando forma, pero aun faltaba bastante. Me quede sin gris, así que me toco usar azul, el cual tenia pensado para los detalles. Después de varios días de impresión de estructura, me toco reformar los paneles frontales para embeber el hardware de red. Actualmente dispongo de:

    • Router Mikrotik HEX Rb750GR3
    • Switch Linksys LGS308 administrable
    • Mini PC Dell Wyse 3290 (bloqueador de anuncios y DNS)
    • AP Huawei K562 Optixstar (no entra en el rack)

    Diseñar nunca fue mi fuerte, pero unos tutoriales en Fusion 360 me permitieron lograr mi objetivo

    Soporte 1U para mikrotik

    Una vez finalizadas todas las piezas empece con el armado integro, acá es donde me di cuenta que fue un acierto elegir bulones metálicos y no plásticos. Piezas a presión, quebraduras, pero bueno, parte del show. A esta altura ya buscaba funcionalidad y no estética.

    Estoy conforme con el resultado, me queda bastante por pulir, pero en términos funcionales, quedo en marcha. Tengo en los planes cambiar este AP por uno que soporte OpenWRT, un custom firmware para el router, aun no me decido cual.

    Rack terminado

    La idea de este post es que sea corto y comentarles brevente mi experiencia. Considero que es una hermosa experiencia con resultados muy satisfactorios, por lo que los invito a hacerlo. Mi hardware es chico, con esto es suficiente, para hardware mas grande, no queda mucha mas opción que un rack de 19′.

    Eso es todo. Un saludo!

  • Un punto de vista de los sistemas operativos (2/2)

    Un punto de vista de los sistemas operativos (2/2)

    Continuando con la segunda parte del post, vamos a hablar de GNU/Linux y MacOS. Si no leyeron la primera parte, los invito a ha hacerlos para tener un poco de contexto y entender la dinámica de esto, allí comento mi experiencia con Windows, sus ventajas, desventajas y reflexiones.

    GNU/Linux

    Mi recorrido en el mundo Linux GNU/Linux – para que no haya discusiones innecesarias – comenzó en la universidad. Empece usándolo ocasionalmente en un dual boot y, poco a poco, fui adoptándolo en mi día a día, hasta llegar al punto de usarlo como sistema operativo principal.

    Si bien, mi primer distribución fue Ubuntu, tuve mi periodo de distrohopping. Distrohopping es el termino popular para referirse al habito de cambiar constantemente de distribución GNU/Linux. Luego de probar un tiempo Ubuntu, mi recorrido siguió por Linux Mint, Manjaro, para finalmente recaer en Arch Linux, distribucion que, aunque es un poco compleja al principio, brinda una experiencia de “hazlo tu mismo” incomparable y eso me gusto mucho, junto con cuestiones como el gestor de paquetes pacman y los repositorios AUR de la comunidad.

    En lo que respecta a GNU/Linux en general, es un ecosistema con infinidad de posibilidades, extremadamente flexible y adaptable al gusto del usuario. Sin embargo es tan grande el mundo GNU/Linux que puede llegar a confundir un poco. Al igual que en el post anterior con Windows, haré un desglose de lo que me parece bueno y lo que no:

    – Adaptado a tus preferencias: GNU/Linux, en general, posee una oferta muy grande de entornos de escritorio, distribuciones base, ecosistema de aplicaciones, entre otros. Esto permite que el usuario elija lo que mas cómodo le resulte y que no este atado a algo que le lleve tiempo acostumbrarse. Por eso considero, que GNU/Linux es el sistema operativo más fácil de aprender.
    – Eficiencia: en términos generales es muy eficiente, comparándolo con otros sistemas operativos como Windows o MacOS.
    – Desarrollo de aplicaciones: si no programás en lenguajes como C# o Swift, considero que es muy cómodo para llevar a cabo esta actividad. La instalación de dependencias y paquetes necesarios es sumamente cómoda y la terminal de GNU/Linux es muy buena para gestionar el sistema o gestionar servidores.
    – Boot “Live”: poder probar un sistema operativo desde un pendrive sin instalarlo no tiene precio. Sin embargo, no lo vería tan necesario en todos los sistemas operativos que no tienen tanta diversificación.
    – Aprendizaje: en GNU/Linux se aprende mucho, sobre todo si se usa la terminal, aunque se puede prescindir de ella, dependiendo de la distribución.

    – Diversificación en general: esto es un gran problema para los usuarios que ingresan al mundo GNU/Linux. Hay tantas alternativas de entornos de escritorio, de distribuciones, de configuraciones – KDE reference – y de gestores de paquetes que llegan a confundir o abrumar al usuario.
    – Incompatibilidad de aplicaciones comerciales: muchas empresas tienen aplicaciones para GNU/Linux o brindan una solución web. Sin embargo, aplicaciones nativas ampliamente usadas como la suite Adobe son, en cierto punto, un impedimento para muchas gente para pasarse a GNU/Linux.
    – Esfuerzos dispersados: Cada distribucion, y a su vez, cada entorno de escritorio es un mundo, esto hace a GNU/Linux un entorno muy rico en posibilidades y adaptable a todo tipo de usuarios. Sin embargo, por mas que compartan el mismo kernel, la hetereogeneidad de todo lo demas es un problema en parte. Si bien esto es parte de la filosofia de GNU/Linux, quizas concentrando los esfuerzos las cosas podrian estar mas pulidas en general.
    – X11 o Wayland: estas son las principales alternativas de servidor gráfico que tenemos en GNU/Linux. X11 ya no se mantiene, esta obsoleto en parte, pero anda. Wayland, mas moderno y performante, pero anda a medias, aunque ha mejorado el ultimo tiempo. Las distribuciones se están pasando a Wayland por obvias razones, pero hay aplicaciones como Discord que aun dan problemas al compartir pantalla, aunque esto ultimo podría ser un post aparte.
    – Drivers: Esto no suele ser un gran problema, pero a veces da dolores de cabeza. Una laptop con GNU/Linux que tuve hace unos años me daba problemas con la placa de bluetooth y WiFi. La señal aumentaba y disminuía todo el tiempo, y si conectaba un mouse bluetooth, la velocidad de descarga se estancaba en 10 Mbps. Si bien la comunidad tenía drivers alternativos, no terminaban de solucionar a fondo el problema. Otro problema es que hay drivers libres y privativos en algunos casos, lo cual hace que el rendimiento no sea el optimo dependiendo de cual elijas.

    En resumen, que una aplicación te de problemas y otra no, sumado a otros peros como la incompatibilidad de algunas aplicaciones de uso diario o profesional hace que la experiencia en este sistema operativo no me cierre del todo. Todo en GNU/Linux tiene solución, aunque quizás no la mas práctica o cómoda. Sin embargo, conocer este ecosistema es muy importante para el mundo del desarrollo de software y de los servidores, así como también para el desarrollo tecnológico general.

    MacOS

    Debo admitir que mi manejo de este ecosistema es bastante básico aún. Recién este año empece a usar MacOS y mi opinión sera breve y hablare más en profundidad cuando tenga una opinión menos preliminar.

    A primera impresión es algo raro y me recuerda en parte a Gnome de GNU/Linux por su disposición y menú, de todos modos me gusta y me siento muy cómodo en el ecosistema. Como hice con lo demás, comentare lo que me gusta y lo que no:

    – Buena experiencia en general: todo está muy pulido y cuidado, buen rendimiento y buena gestión de recursos, aunque no tanto como GNU/Linux y con “peros” como describiré mas abajo.
    – Compatibilidad: Aunque no llega a los niveles de Windows, esta muy bien y tiene los programas comerciales mas usados.
    – Permisos: Esto es muy personal, me gusta el hecho de que me pida permiso para todo, en cada aplicación. Se puede tener un control muy granular de todo, aunque para alguna personas puede ser engorroso

    – Consumo de recursos confuso: no entiendo aún como es que funciona MacOS en cuanto a este apartado. Al cerrar tradicionalmente una aplicación, esta en realidad no se cierra del todo y sigue funcionando en segundo plano, se podria decir que es hasta raro y contra intuitivo para los que estamos acostumbrados a otra cosa. Otra cuestión es el consumo excesivo de RAM al arrancar, por lo que entiendo “cachea” mucho al arrancar, ya que a veces, al abrir y cerrar completamente aplicaciones, la RAM baja notablemente.
    – Gestión de ventanas: me resulta un poco molesto que una ventana maximizada se mueva a otro escritorio, quizás se puede configurar, pero no lo se todavía. Otra cuestión son las aplicaciones flotantes que no se abren en el escritorio con la aplicación maximizada.

    Al fin y al cabo, mi manejo de MacOS es muy básico y no puedo brindarles una opinión mas amplia. Si bien tengo bien claro lo bueno, lo malo no tanto. En MacOS encuentro lo mejor de los dos mundo (Windows y GNU/Linux), la compatibilidad de Windows – Si, solo eso – y las facilidades que te brinda GNU/Linux como la terminal para programar sobre todo, aunque claramente no es tanto como este ultimo, pero en mi día a día es suficiente.

    Conclusiones

    No creo que haya un sistema operativo mejor que otro, es relativo. Mi idea no es que se vayan pensando que odio Windows, que GNU/Linux no me convence del todo y que me encanta MacOS. Este ultimo, para mi, es novedad y aun no le he investigado/usado demasiado como para tener una opinión mas formada, quizás por eso me gusta tanto, por una cuestión de “magia”. Soy partidario de que, mediante mas aprende uno de algo, menos “mágico” y bueno te parece, creo que se entiende a que me refiero.

    Creo que si no tuviera mis horas semanales de videojuegos, podría prescindir totalmente de Windows, encuentro casi todo lo que necesito en mi día a día en MacOS. GNU/Linux para mi es muy importante y lo debería ser para toda persona metida en Sistemas, me ha enseñado mucho y lo sigue haciendo, quizás no tanto como antes, pero es mas por el hecho de no usarlo a diario por cuestiones antes nombradas.

    En resumen, las personas, en su mayoría, están acostumbradas a usar Windows, esto no es algo malo necesariamente, es lo mas difundido y eso es muy importante. Sin embargo, esta bueno conocer que hay otras alternativas, no necesariamente mejores, sino con otros enfoques en la filosofía y experiencia de usuario.

    Eso es todo. Espero que les haya gustado y les sea de utilidad. Un saludo!

  • Un punto de vista de los sistemas operativos (1/2)

    Un punto de vista de los sistemas operativos (1/2)

    Desde pequeño – 4-5 años – he tenido la suerte de poder usar una computadora. Si bien, no tenia Internet en casa hasta mucho tiempo después, mi único uso era jugar al emulador de Sega y a otros juegos retro, no más que eso. De pequeño me he mandado muchas “macanas” – como decimos acá en Argentina – en la computadora, desde dar “vuelta la pantalla” y ver a mi padre trabajando con el monitor patas para arriba, o crear usuarios en Windows “borrando los datos”, que en realidad estaban en la carpeta del usuario anterior y mi papa no los encontraba, pero entiendo su desesperación al no encontrar los registros del negocio y el posterior enojo conmigo.

    Juan pequeño

    El presente no está exento de esto, hace uno años, por equivocación, formatee un disco de 2TB con información por errarle el número de disco en el DISKPART, si bien no eran relevantes los datos que tenia y la computadora era mía, tuve que descargar muchas cosas nuevamente. Equivocarse es parte del aprendizaje. Resolver estos errores te da herramientas que complementan la formación.

    A lo largo de mi vida usando la computadora, he ido probando múltiples sistemas operativos en diferentes versiones. Mi idea con este post es compartirles mi opinión sobre mi experiencia de uso, problemas y también una opinión para cerrar, de todos los sistemas operativos que he probado y de los cuales tengo una opinión formada.

    Windows

    Mi primer sistema operativo, si mal no recuerdo la versión del año ’98, en la que solía jugar en mi casa. Windows es la puerta de entrada y lo que habitúa a usar la mayoría de los usuarios desde que tengo conocimiento.

    He usado Windows gran parte de mi vida, principalmente en la época pre-universitaria y lo sigo usando en mi PC principal más que nada, para lo que es gaming, es lo corriente y lo que anda.

    He pasado por varias versiones de Windows y tengo una opinión particular sobre el versionado. Creo que Microsoft lanza una versión buena, la siguiente es mala, la otra buena y así. Ejemplo XP es bueno, Vista es malo, 7 es bueno -> 8 y 8.1 son malos y así. Si bien estoy evaluando la regla porque Windows 11 no está mal pero hay cuestiones que no me cierran como los menús contextuales (click derecho) y la heterogeneidad de interfaces gráficas de configuración, aplicaciones y demás. En términos generales Windows no esta tan mal, voy a hacer un desglose entre lo que me parece bueno y lo que no:

    – Compatibilidad de aplicaciones: La mayoría de las apps comerciales y de uso cotidiano esta para Windows, por no decir todas, lo cual es muy bueno ya que no te deja afuera de nada.
    – Gaming: es lo seguro y todo anda sin mayores problemas. No hay otro sistema operativo que de menos problemas y sea igual de compatible que Windows.
    Compatibilidad de dispositivos y drivers: algo que me saco el sombrero es la compatibilidad con dispositivos, conectas una impresora o una licuadora y sale andando, sin mayores problemas. Si bien esto antes no era tan así, a partir de Windows 7 esto mejoro notablemente
    – Ecosistema de herramientas Office y Azure: claramente y por obvias razones, trabajar con herramientas tan difundidas como la suite de Office y los servicios en la nube de Azure es más fácil y da menos problemas en Windows.

    – Actualizaciones molestas: considero que las actualizaciones son muy molestas. Si bien soy partidario de mantener actualizados mis entornos, la mayoría de las personas busca evitarlas. Aunque este comportamiento lo observo en todos los dispositivos informáticos del usuario común. Quizás deberían encontrarle la vuelta, porque a veces demoran mucho tiempo las actualizaciones y no te garantizan la integridad post-instalación, causando pantallas azules que tenés que googlear para saber qué problema tenés, de ahí la portada de este post. Si tienes suerte, llegas a la pantalla azul, ocurre el caso que directamente el sistema no arranca.
    – Consumo de recursos: sinceramente es absurda la cantidad de recursos que consume en ocasiones. Hay veces que el equipo va al 100% y no terminas de saber porque es. En Windows hay mucha telemetría y no me sorprendería que haya “una cosa de cada color”, en cuanto a software.
    – Interfaz poco amigable: esto es un poco subjetivo, en lo personal creo que hay cuestiones que no están bien logradas como el menú de aplicación de Windows 11. Me animo a decir que el de Windows 10 estaba mejor. Mucha gente incluso busca formas de volverlo a como estaba antes, la gente estaba acostumbrada a usarlo así y un cambio asi es un poco contraproducente. Para el usuario de Windows, considero que hay sistemas operativos más fáciles para interactuar y aprender.
    – Obsolescencia programada: Si bien hasta Windows 10 no hubo mayores problemas, más allá del consumo de recursos incrementandose en cada versión, desde Windows 11 – con el requisito de los Chips TPM – , entre otros requisitos, muchas computadoras no tan antiguas han quedado afuera de la compatibilidad. Windows 10, que creería que es lo más usado a lo largo del mundo, tiene soporte hasta el 14 de octubre del 2025, lo cual, en materia de seguridad, no es bueno para los usuarios de estos equipos, ya que los expone a problemas de seguridad que no se resolverán. Si bien, quizás, el chip criptográfico TPM mejora la seguridad – según Microsoft– , son cuestiones que deben evaluarse antes de implementarse. De todos modos, así como las personas falsifican las licencias con activadores de dudosa procedencia, encuentran la forma de saltear estos requisitos bajo sus propios riesgos. Por eso en los compraventa encontramos computadoras de mas de 10 años con Windows 11.
    – Bloatware: en sencillas palabras, programas de relleno. Windows viene con mucho software innecesario preinstalado. Si bien puedes desinstalarlos manualmente, cosa que un muy molesta, en actualizaciones acumulativas, estos programas pueden volver a instalarse.
    – Instaladores complicados y/o engañosos: los .exe o .msi no son especialmente amigables. Muchos instaladores están lleno de opciones que debes ir aceptando para instalar, pero como si esto no fuera suficiente, debes ir rechazando instalar programas para no terminar con tu PC llena de bloatware como McAfee, entre otros.

    Van a creer que al final no soy muy amante de Windows, lo cual no está muy lejos de la realidad, pero bueno, conclusiones al final. Voy a dejar este artículo por acá, para que no sea tan denso de leer y apenas pueda les subiré la segunda parte. Un saludo!

  • Exportar volúmenes lógicos de Docker

    Exportar volúmenes lógicos de Docker

    En el tiempo que llevo usando Docker para desplegar servicios —tanto en desarrollo cómo en producción— siempre me pregunté cómo migrar los volúmenes lógicos (o volúmenes nombrados, según la terminología de Docker) entre entornos, evitando largos periodos de inactividad. Tras investigar un poco, encontré una solución satisfactoria y que no me ha dado problemas.

    Recomiendo experimentar sobre datos ficticios o tener un buen backup por si algo sale mal. Usa este instructivo bajo tu propia responsabilidad.

    El procedimiento consiste en encapsular el volumen lógico en un contenedor temporal. En lo personal prefiero usar contenedores con bases ligeras cómo puede ser Alpine. Migraremos un volumen lógico de un contenedor PostgreSQL, un ejemplo sencillo y extrapolable a la cantidad de servicios que uno tenga.

    La estructura desplegada de la que disponemos es la siguiente:

    services:
      postgres_db:
        image: postgres:16
        container_name: postgres_db
        restart: always
        environment:
          POSTGRES_USER: user
          POSTGRES_PASSWORD: password
          POSTGRES_DB: db
        ports:
          - "5432:5432"
        volumes:
          - db_data:/var/lib/postgresql/data
    volumes:
      db_data:

    Creación de contenedor temporal

    Lo primero que debemos hacer es detener el contenedor que utiliza el volumen a respaldar y no hacerlo “en caliente”. Para ello detenemos el contenedor:

    docker compose stop postgres_db

    Luego haremos un contenedor temporal basado en una imagen de Alpine para que haga de “wrapper” del volumen a respaldar, es decir, que contenga la información en su interior.

    docker run --rm \
      --volumes-from postgres_db \
      -v "$(pwd)":/backup \
      alpine sh -c 'cd /var/lib/postgresql/data && tar -czf /backup/db_data.tar.gz .'

    Este comando crea un contenedor temporal (no persistente) que se elimina automáticamente al detenerse. Utiliza los volúmenes de nuestro contenedor principal y ejecuta la cadena de instrucciones dentro de él.
    Al montar el directorio actual (<strong>$(pwd)</strong>) como volumen, podemos obtener en nuestra máquina el archivo comprimido con la información del volumen.

    La ubicación exacta de los datos depende de la aplicación que esté corriendo el contenedor. Normalmente, la página oficial de la imagen en Docker Hub indica cuál es la ruta de datos que debemos respaldar.

    Despliegue en el nuevo entorno

    En mi caso, el movimiento de volúmenes será de mi computadora a un servidor remoto. Para ello es de gran utilidad el comando scp, el cual usa SSH para el paso de archivos a un entorno remoto.

    scp db_data.tar.gz usuario@direccion_ip:~/tmp

    Una vez tengamos los datos en el servidor remoto, para restaurar el volumen debemos desplegar el mismo docker-compose.yaml. Primero desplegamos la aplicación y frenamos para que se cree el volumen y poder reemplazarlo posteriormente.

    docker compose up -d postgres_db
    docker compose stop postgres_db

    Ahora ejecutaremos nuevamente un contenedor temporal para poder extraer la información de él y reemplazar los datos en el volumen del contenedor previamente desplegado:

    docker run --rm \
      --volumes-from postgres_db \
      -v /tmp:/backup \
      alpine sh -c 'rm -rf /var/lib/postgresql/data/* && \
                  tar -xzf /backup/db_data.tar.gz -C \
                  /var/lib/postgresql/data && \
                  chown -R 999:999 /var/lib/postgresql/data'

    En este paso debemos eliminar los datos actuales del volumen y descomprimir la información en la ruta correspondiente. Luego es necesario asignar el UID y GID tal como se encuentran en un contenedor de PostgreSQL por defecto. Si los permisos no son correctos, el contenedor no podrá arrancar normalmente.
    Finalmente levantamos el contenedor normalmente:

    docker compose up postgres_db -d

    El ID de usuario (UID) y el ID de grupo (GID) del contenedor de PostgreSQL es 999 en ambos casos.

    Conclusiones

    Si bien este proceso cumple con lo que promete, factores como los permisos de los archivos finales y su ubicación en el contenedor final son cuestiones que deben tenerse en cuenta.
    Para el caso puntual de PostgreSQL, puede ser más seguro usar comandos como pg_dump pg_restore para tener más certezas sobre la integridad de los datos. Sin embargo esto solo sirve para PostgreSQL y la idea es encontrar un procedimiento lo más genérico posible que sirva para todas las ocasiones.

    Eso es todo por el momento. Un saludo!

  • Presentación y un poco sobre mi

    Presentación y un poco sobre mi

    Hola! Un gusto en saludarlos.

    Mi nombre es Juan Confalonieri, tengo 27 años al día de esta publicación y soy de Argentina. Estudio Licenciatura en Sistemas en la Facultad de Ciencias de Administración de la UNER (Universidad Nacional de Entre Ríos) y estoy en el ultimo año.
    Me gusta pasar tiempo de calidad con mi familia y amigos, escuchar musica, jugar algún que otro videojuego y un poco la cocina.
    Sin embargo, la idea principal de este blog es escribir sobre la temática que más me gusta, la tecnología en general y mis proyectos personales relacionados a ello, en principio.
    Tratare de escribir seguido, aunque sea una vez por semana. Tengo un par de ideas en mente y algo ya prehecho, pero tengo que pulir algunas cuestiones y terminar de pulir la configuración de la plataforma.

    Nada más de mi parte. Un saludo.