Puesta en Producción

De tu Máquina a la Web: Compartiendo tu Aplicación con el Mundo.

¿Por qué Desplegar?

Hemos construido una aplicación funcional en nuestra máquina local. Podemos ejecutarla, interactuar con ella y ver los resultados. Pero su verdadero poder se desata cuando otros pueden hacer lo mismo sin necesidad de tener R, RStudio o nuestro código fuente instalado.

La "Puesta en Producción" o "Despliegue" (Deployment) es el proceso de tomar nuestra aplicación y alojarla en un servidor web, haciéndola accesible a través de una URL, como cualquier otra página de internet. Este es el puente final que conecta nuestro análisis con los usuarios finales, convirtiendo un script en un verdadero producto de datos.

Nuestra Plataforma: `shinyapps.io`

Existen muchas formas de desplegar una aplicación Shiny, desde servidores propios hasta complejos servicios en la nube. Sin embargo, para empezar, usaremos la opción más sencilla y directa: shinyapps.io.

Es un servicio ofrecido por Posit (la empresa detrás de RStudio) que está diseñado específicamente para alojar aplicaciones Shiny. Su plan gratuito es perfecto para portafolios, prototipos y los proyectos de este curso. Nos permite publicar nuestras aplicaciones directamente desde RStudio con solo un par de clics.

Taller Práctico: ¡A Producción en 5 Pasos!

Vamos a tomar la aplicación que construimos en la lección anterior y la publicaremos en la web.

Paso 1: Crear una Cuenta Gratuita

El primer paso es registrarse en la plataforma. Visita la página de `shinyapps.io` y crea una cuenta nueva. Elige el plan gratuito ("Free"), que es más que suficiente para nuestros objetivos.

Crear mi cuenta en shinyapps.io

Paso 2: Instalar `rsconnect`

Para que RStudio pueda comunicarse con tu cuenta de `shinyapps.io`, necesitas un paquete especial llamado `rsconnect`. Abre tu consola de R (en RStudio) y ejecuta el siguiente comando para instalarlo.

install.packages('rsconnect')

Paso 3: Conectar tu Cuenta

Este es el paso clave de configuración. Una vez que hayas iniciado sesión en tu dashboard de `shinyapps.io`, ve a la sección Account Tokens. Verás un botón que dice "+ Add Token". Al hacer clic, te mostrará un comando para copiar.

Este comando contendrá tu "token" y "secret" personales, que son como tu usuario y contraseña para la API. Cópialo y pégalo en tu consola de R. Se verá algo así:

# Tu comando será único y contendrá tus credenciales
rsconnect::setAccountInfo(name='tu-nombre-de-usuario',
			  token='TU_TOKEN_PERSONAL',
			  secret='<TU_SECRET_PERSONAL>')

Al ejecutarlo, tu RStudio quedará permanentemente conectado a tu cuenta de `shinyapps.io`.

Paso 4: ¡Desplegar la Aplicación!

Con tu archivo app.R abierto en RStudio, busca el botón azul con el logo de Shiny en la esquina superior derecha del panel del editor. Tiene un tooltip que dice "Publish Application".

Haz clic en él. Te aparecerá una ventana para confirmar qué archivos quieres subir (normalmente RStudio detecta app.R y los datos que lee). Dale un nombre a tu aplicación (ej. `mi-primer-dashboard`) y haz clic en "Publish".

Se abrirá una ventana de "Deploy" que te mostrará el progreso. RStudio empaquetará tu código, lo subirá a los servidores de `shinyapps.io` e instalará las librerías necesarias. Cuando termine, ¡tu aplicación estará viva en una URL pública!

Nota para usuarios de Visual Studio Code

Si usas VS Code con la extensión de R, no tendrás el botón de "Publish". ¡No hay problema! El proceso se hace desde la terminal de R integrada. Simplemente asegúrate de que tu terminal esté en la carpeta raíz del proyecto y ejecuta el siguiente comando:

# Despliega la aplicación en el directorio actual
rsconnect::deployApp()

Este comando hace exactamente lo mismo que el botón de RStudio.

Paso 5 (Opcional pero Recomendado): Gestión de Dependencias

`shinyapps.io` es inteligente y usualmente detecta qué paquetes necesita tu app (como `shiny`, `readr`, `ggplot2`). Sin embargo, en proyectos más complejos, es una buena práctica gestionar las dependencias explícitamente con un paquete llamado `renv`.

`renv` crea una librería de paquetes aislada para tu proyecto, asegurando que siempre se usen las versiones correctas. Para inicializarlo en tu proyecto, simplemente ejecuta en la consola:

# Instalar renv si no lo tienes
install.packages('renv')

# Inicializar renv en tu proyecto actual
renv::init()

# Después de instalar nuevos paquetes, toma una "foto" de las dependencias
renv::snapshot()

Esto crea un archivo `renv.lock` que `shinyapps.io` usará para recrear el entorno exacto, garantizando la máxima reproducibilidad. ¡Este es un pilar fundamental de MLOps!