Antecedentes
Para muchas empresas la utilización de modelos de Machine Learning es un elemento fundamental de ventaja competitiva, por esto se vuelve especialmente importante encontrar formas de poner a disposición de sus usuarios la posibilidad de usar estas herramientas.
Sin embargo el proceso de “democratizar” estos modelos enfrenta importantes barreras; su la complejidad implica que en muchos casos se requiere de usuarios con un nivel importante de conocimiento técnico y por otro lado el costo de ponerlos a disposición de todos los usuarios implica costos de desarrollo y el pago de plataformas especializadas.
R & R Shiny
RShiny es una herramienta poderosa para generar productos de datos desde R, ya sean visualizaciones o modelos predictivos. Este paquete tiene una excelente integración con RStudio lo que hace que sea relativamente sencillo crear una aplicación y ejecutarla localmente. Igualmente R Studio ofrece alternativa de pago para despligue de aplicaciones en la nube. Cada una de estas alternativas tiene sus ventajas y desventajas.
Alternativas de Despliegue (Deployment)
1. shinyapps.io: Servicio manejado por RStudio que permite publicación de Apps con un manejo transparente del proceso de DevOps con solo unos cuantos clicks. Servicio limitado en términos de recursos.
2. Shiny Server Open Source: Plataforma para generar un servidor web dedicado para el hosting de aplicaciones en R Shiny (on-premise). Sólo soporta un poceso de R por App.
3. RStudio Connect: Plataforma de publicación, producto comercial de RStudio y con muchisimas funcionalidades. Costosa en escenarios de prototipado.
4. Shinyproxy: Desarrollo Open-Source. Java en el lado de servidor y utiliza docker. Es una herramienta poderosa con características empresariales pero Open Source.
Veredicto
RStudio Connect es la alternativa más completa en términos de funcionalidad y simplificación de los procesos de desarrollo, pero con licenciamiento de ~USD$10.000/anual se vuelve una barrera, más aún si estamos empezando a prototipar una herramienta específica. Ante esto propongo el siguiente “Stack” Open Source como una alternativa inicial a RStudio Connect.
“Stack Open Source”
Shiny Es un paquete de R para generar aplicaciones Web directamente con R
Shinyproxy Es un paquete de R para generar aplicaiones Web directamente con R
Keycloak Es un poderoso producto de software de código abierto para el manejo de autenticación y autorización de usuarios
Docker Docker es una plataforma de software que permite crear, probar e implementar aplicaciones rápidamente. Docker empaqueta software en unidades estandarizadas llamadas contenedores que incluyen todo lo necesario para que el software se ejecute, incluidas bibliotecas, herramientas de sistema y código.
Hospedaje (Hosting)
Existen múltiples alternativas para hacer el hosting de una aplicación, las 3 más populares son AWS, Azure y GCP. Otras menos conocidas como Digital Ocean también son viables. AWS es una de las opciones más populares y más recomendada, nos permite no solo hacer el hosting si no adicionalmente escalar recursos en caso de ser necesario.
Conclusiones
R Shiny es una herramienta ideal para generar y compartir productos de datos y aunque existen opciones de pago disponibles que nos simplifican el trabajo de hacer el deployment de estos productos a nuestros usuarios, igualmente es posible hacerlo utilizando herramientas open source que nos permiten hacer un prototipado de nuestros productos e incluso hacer despligues profesionales.