Nuclio: Data Science Pipeline with Serverless Functions

Nuclio: Data Science Pipeline with Serverless Functions

Nuclio.io, es una interesante plataforma de código abierto (Open Source), gestionada sin servidores (Serverless), orientada a minimizar tanto gastos de desarrollo y mantenimiento como a automatizar la implementación de aplicaciones basadas en la ciencia de datos o #DataScience.

Nuclio Framework

Podemos ejecutar un entorno de Nuclio.io muy rápidamente, mediante #Docker:

docker run -p 8070:8070 -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp nuclio/dashboard:stable-amd64

Aunque si lo preferimos, en su GitHub podemos encontrar los pasos para ejecutarlo en Kubernetes.

Como punto importante, antes casi de empezar, la documentación de Nuclio.io es algo a tener en consideración ya que es completa y extensa.

¿Serverless?

De Serverless hemos hablado bastante por aquí… por ejemplo un buen artículo fue: “OpenFaaS, Serverless Functions Made Simple for Docker & Kubernetes.”. Aunque seguramente, el servicio más conocido es: Lambda de AWS. Lambda construye automáticamente una aplicación en contenedores, la implementa en un clúster de producción y proporciona tanto su monitorización, como su registro, escalado y actualizaciones automáticas. Otros beneficios de serverless son un modelo de pago por uso de menor costo y su integración nativa con los recursos y eventos de la plataforma.

Nuclio.io fue diseñado desde el principio como un proyecto de código abierto que aborda la creación de aplicaciones de #DataScience como, a la vez, elimina la complejidad del desarrollo y las operaciones. Nuclio.io proporciona un rendimiento extremo, soporta cargas de trabajo intensivas en datos y estados y maximiza la eficiencia de las GPUs.

A diferencia de Lambda, por ejemplo, Nuclio.io utiliza un motor de ejecución concurrente de alto rendimiento (que soporta hasta 400.000 eventos por proceso). Actualmente es el único framework sin servidor con soporte para GPU y acceso rápido a archivos, lo que permite acelerar el rendimiento del código de aprendizaje automático y maximizar la utilización de CPUs y GPUs (utilizando un modelo de pool de recursos) para que el código se ejecute mucho más rápido en Nuclio.io.

Nuclio Architecture

¿Dónde y cómo podemos utilizar Nuclio?

De proyectos de #DataScience tenemos de muchos tipos, aunque, me agradaría destacar algunas posibilidades como son:

  • Data collectors, ETL, stream processing
  • Data preparation and analysis
  • Hyper parameter model training
  • Real-time model serving
  • Real-time data preparation

Si, cierto, quizás algunas de las propuestas no son 100% #DataScience, estarían mas cerca de procesos de ingeniería de datos pero: ¿Cuánto rato pasa un Data Science a preparar los datos?.

La creación de un proyecto es realmente simple, una vez dentro podremos desplegar nuestro código y mantener un control de versiones sin problema.

Nuclio Dashboard Project

Podremos definir, por ejemplo, con que se conectará… siendo Apache Kafka una opción o AWS Kinesis, etc…

Nuclio Dashboard Triggers

Como también, su configuración, aprovechando al máximo los recursos y añadiendo variables, de tipo “value”, “secret” o “configmap”.

Nuclio Dashboard Triggers

Me parece también interesante es la posibilidad que, automáticamente, la configuración publique la aplicación que hemos lanzado, sea mediante Python, NodeJS, GO, etc… y esté disponible mediante navegador y/o API:

Nuclio HTTP access

Como a su vez, se creen tantos contenedores como aplicaciones tengamos… realmente, hace independiente cada aplicación/proceso y nos permite, sea mediante Docker o Kubernetes, por ejemplo, poder aplciar seguridad por separado u otros criterios.

Nuclio HTTP access

Para terminar, creo es muy interesante compartir la idea esencial del proyecto, ya que detrás está iguazio.com, empresa focalizada en la aceleración de la ciencia de datos desde la exploración hasta la producción y dispone de una buena Plataforma de Servicios para ello. Espero en breve poder comentar de ellos.

Autor: Joakim Vivas

comments powered by Disqus