¿Dónde viven las aplicaciones?
¿Dónde viven las aplicaciones web?
Cuando comenzamos nuestro recorrido del aprendizaje en programación solemos trabajar de forma local. Tenemos nuestros archivos, sus instalaciones y dependencias. Nos peleamos con pantallas de error que nos indican la falta de alguna referencia.
Tiene sentido que nos enfoquemos en aprender de esta manera. Al final del día, absorber nuevos conceptos es una tarea compleja, y es mejor aprender en partes. Por eso a los estudiantes se los abstrae de las complejidades del mundo real para que se enfoquen en mejorar las tecnologías puntuales de su trabajo.
Pero una vez que ya dominamos las bases, es importante poder compartir nuestro trabajo con el mundo, y acá es donde para muchas personas la cosa se pone rara.
¿Dónde vive el código?
La primera instancia para compartir nuestro código suele ser un repositorio. Un respositorio es un espacio donde el código se versiona e indexa. Hoy en día la herramienta más utilizada es git, y se hace disponible a mucha gente a través de servicios cloud hosteados por las mismas empresas, como GitHub, Bitbucket y otros.
Estas herramientas nos permiten mantener nuestro código ordenado y listo para que otras personas lo revisen, descarguen a su local y prueben o incluyan sus propias modificaciones. ¿Qué pasa cuando queremos mostrar una versión funcional de una aplicación web? ¿Qué pasa cuando necesitamos que eso que vemos en nuestro local "esté vivo" en algún lugar?
¿Donde viven las aplicaciones web?
Ahī entra en juego la infraestructura. Por infraestructura (o cariñosamente, infra) nor referimos a toda la capa donde nuestro código se aloja y corre para poder ser utilizado en su forma final, como una aplicación.
A un nivel muy básico, los servidores no son otra cosa que computadoras que nos proveen de alojamiento en disco, poder de procesamiento, RAM y un sistema operativo a través del cual podemos darle a nuestro código las instrucciones generales para que corra y sea funcional.
Dos requisitos importantes para que nuestra aplicación pueda vivir en ellas es que deben estar continuamente encendidas y mantener una conexion constante a internet, para que nuestra aplicacion pueda ser accedida en cualqueir momento por sus usuarios (a este concepto se le conoce como operatividad o uptime)
Estas computadoras pueden estar ubicadas en la misma empresa que las utiliza, o pueden contratarse a traves de servicios cloud. La frase "la nube es la computadora de otra persona" hace referencia a eso. Companias como AWS ofrecen contratacion de servidores de forma remota, y nuestro codigo puede terminar alojado en un servvidor que fisicamente se encuentra a miles de kilometros de distancia nuestro.
Estos servidores, como mencionamos antes, estan conectados a internet y tienen una ip asignada, es decir un identificador ùnico a traves del cual accedemos a su contenido público. Muchas veces también se les asigna una url genérica, pero en cualquier caso siempre podemos asignarle una personalizada si tenemos comprado un dominio.
Y de este modo es como un servidor alojado en virgina se puede convertir en la casa de https: // tupáginapersonal .com
Dentro de los servidores cloud existen diferentes alternativas que permiten distintos grados de control. Tenemos soluciones como Herokku o Vercel, que nos ofrecen soluciones completamente transparentes al usuario, con un mínimo grado de configuración y soluciones más configurables como AWS o Digital Ocean que nos ofrecen opciones más robustas para alojar proyectos que necesitan escalar en el tiempo.
Si bien para trabajar en desarrollo no hace falta saber de infraestructura, tener este tipo de conocimiento te da más flexibilidad y posibilidades a la hora de manejar tus propios proyectos.
El viaje del código desde tu entorno de desarrollo local hasta ser una aplicación web accesible para el mundo entero implica una serie de pasos que van más allá de simplemente escribir y probar código. Se trata de entender la infraestructura en la que este código vivirá, cómo se mantiene operativo y accesible. Los servidores son, en esencia, la casa de nuestras aplicaciones web, y entender cómo funcionan y dónde viven nos permite no solo compartir nuestro trabajo con el mundo, sino también tomar decisiones más informadas sobre cómo escalar y mantener nuestras aplicaciones en el tiempo. Conocer sobre infraestructura es una capa más de expertise que nos empodera como programadores para llevar nuestras ideas más allá del editor de texto.
Sigamos en contacto: suscribite a Sin códigos, mi newsletter quincenal. También podés seguirme en redes para estar al tanto de todo mi nuevo contenido