Categories
54cuatro

¿Y ahora MLOPS?

Quienes nos siguen dirán, ¿Otro nuevo Ops en familia? Y si, tenemos que contarles sobre #MLOPS.

Repasemos. #DevOps conjuga la unión de los equipos de Desarrollo con Operaciones. #DataOps va acerca de la integración de datos en pos de soluciones analíticas. #GitOps nos ayuda a con el despliegue continuo sobre plataformas de contenedores. Y ahora nos toca describir MLOPS.

¿Que es MLOPS?

El nombre viene de la conjugación de Machine Learning y Operaciones. Y su filosofía gira en torno a lo mismo que sus familiares *Ops, la de generar un espacio colaborativo, en este caso entre Científicos de Datos y Operaciones. Es importante destacar que hace un tiempo se puso de moda el termino #AIOPS, pero esta mas orientado a una implementación de Inteligencia Artificial a las operaciones de TI, de manera que podria ser confundible con MLOPS.

Empecemos a descubrir MLOPS.

MLOps Principles

¿Que soluciona MLOPS?

MLOps es un descendiente directo de DevOps, y continuando con el éxito busca resolver la integración de los equipos de operaciones (en este caso quienes operan los datos) con aquellos que requieren de esa data para generar informacion de valor.

MLOps incorpora al juego a los científicos de datos, quienes requieren obtener conjuntos de datos de manera automatizada desde donde poder desarrollar sus modelos analíticos.

¿MLOPS requiere de un Pipeline?

Correcto, MLOPS tiene su propio concepto de Pipeline, solo que el CI/CD, esta orientado a integraciones de datos, y junto con ello, capacidades de gobernanza, transparencia y protección de la informacion.

  • En CI ademas de probar y validar código y componentes, se deben validar datos, esquemas y modelos.
  • En CD ademas de desplegar un paquete, debe implementar todo un servicio de manera automática.

En resumidas fases podriamos mencionar que MLOPS requiere de 4 pasos fundamentales:

  • Ingestar datos hacia un almacenamiento.
  • Procesar los datos almacenados.
  • Entregar esos datos para ser entrenados dentro de modelos de #MachineLearning.
  • Entregar el output del modelo, dependiendo el caso de negocio requerido.
Gartner on ML pipeline
Esquema MLOPS propuesto por Gartner

¿Como comienzo mi camino hacia MLOPS?

Es importante destacar que la comunidad que impulsa MLOPS crece dia a dia. Y ese crecimiento lleva a tener mas opciones que simplifican la adopción de MLOPS. Tanto #AWS, #GCP, #Azure, #IBM y otros proveedores tienen su propio stack tecnológico para hacer frente a una implementación de MLOPS, y como todo, no existe un método único, pero si buenas practicas recomendadas a seguir.

Para empezar, debemos crear una cultura de automatización.

El objetivo de MLOps es automatizar los pasos completos del flujo de trabajo de ML sin intervención manual. A partir de ello debemos dividir las tareas en fases que al final de la historia se ejecuten como un pipeline. Estas tareas son:

  1. Adquirir los datos desde las fuentes que identifiquemos. Y dentro de esta fase de adquisición vamos a Catalogar los Datos, Ingestarlos a nuestro almacenamiento, Procesarlos para generar nuestra data correcta, y finalmente Entregarlos para su consumo.
  2. Desarrollar los modelos. En esta fase (quizás la mas importante) un científico de datos generara interacciones con distintos modelos analíticos, validando la data recibida, e identificando la performance de los análisis. En caso de que la data recibida no sea suficiente o de la calidad esperada, el pipeline debe ser reajustado en el paso 1. Pero si los modelos tienen buenos rendimientos se pasara a la siguiente fase.
  3. Despliegue de los modelos. Como mencionamos anteriormente, si un modelo tiene buenos rendimientos y sus outputs son confiables, esta listo para ser pasado a producción. Tener un modelo productivo permite integrarlo a nuestro software, dejar una API para consultas, alimentar un sistema, etc. Pero atención, el modelo requiere de cuidados, y es por eso que existe una ultima etapa.
  4. Monitoreo de modelos. Como vamos a tener corriendo todo de forma automatizada, es importante monitorear como es la performance de los modelos. Cualquier desvio en la cantidad y/o calidad de los datos que se reciben pueden alterar el funcionamiento de nuestro desarrollo. Y es por eso que en un modelo MLOPS, vamos a determinar un control para conseguir que nuestro pipeline siempre asegura la entrega de información de valor para el negocio.

Conclusión final

Para ejecutar un proyecto exitoso basado en ciencia de datos es imprescindible implementar MLOps y para ello se debe llevar a cabo una orquestación de las herramientas tecnológicas con las habilidades para integrarlas.

Consultas?

[popup_anything id=”2076″]
Categories
54cuatro

Usar Bases Relacionales para Analítica

Desafío planteado

El cliente nos indica que tiene 2 bases de datos, una Oracle 11g y otra MSSQL2016 donde se guarda informacion de dos sistemas corporativos de tipo BSS, y ademas junto con esa data necesitaban enriquecer la info con algunos archivos que reciben en formato CSV de algunos proveedores, y que para poder analizarlos ejecuta algunos procesos manuales, suben todo a una base de datos intermedia y desde ahí hacían tableros de BI.

Este proceso corría una vez por dia, involucraba la participación de una persona y no cumplía con los tiempos requeridos por el negocio.

Nuestro cliente quería evaluar cuidadosamente si nuestra propuesta de inteligencia empresarial hacia sentido para ellos, motivo por el cual propusimos hacer este desarrollo como PoC (prueba de concepto), sin involucrar el armado de un datawarehouse ya que contaban con uno on-premise y tampoco quería instalar servidores ni adquirir nuevas licencias, de manera que teníamos que desarrollar una solución consumiendo de servicios de Nube.

Solución Propuesta

Durante la charla propusimos hacer uso de servicios serverless en la nube, Funciones en #AWS o #Azure, donde un script se ejecute para extraer la info, procesarla y dejarla disponible para analizar. Una especie de #ETL #serverless.

Otra alternativa era armar una infraestructura de eventos con #Kafka o #NiFi. Pero como la solución tenia que ser bajo la premisa de no instalar equipamiento finalmente desistimos de esta opción.

El boceto cuando armamos la call de Preventa

Implementación

Lo primero que hicimos fue eliminar los procesos de ETL que corrían hoy con SSIS, y la base intermedia desde donde conectaban la herramienta de BI.

Posterior a eso, realizamos el desarrollo de código Python que se ejecuta sobre Azure Functions para tomar los CVS y Parquet de proveedores, extraer la información y llevarla a Data Lake Storage.

Otra parte corre en Azure Data Factory, un integrador de datos con conectores pre-compilados que nos servían para tomar la info desde las bases relacionales y llevar los datos de manera automatizada, simplificando mucho la extracción de la info y el movimiento hacia Azure Data Lake Storage donde almacenamos lo que llegaba. A eso le sumamos Azure #DataBricks donde corremos la preparación de los datos.

Databricks es una herramienta de Azure basada en #Apache #Spark que permite configurar de manera simple flujos de trabajo optimizados, dejando la data lista para que DBA, Data Scientist o incluso Analistas de Negocios, dispongan de la información para sus labores.

Finalmente toda la capa de visualización fue armada en PowerBI, desde donde concentrábamos reportes según el perfil del usuario visualizador.

Toda la solución lógicamente tiene componentes de seguridad, como Active Directory para la autenticación.

Entre el assessment, la planificación, y ejecución del proyecto fueron 5 semanas de trabajo donde obtuvimos como resultado un producto de analítica casi en tiempo real, con un costo de menos de 500 USD mensuales pero que generaba insights claros de negocios donde antes no existían.

Los resultados fueron excelentes porque dieron visibilidad de operaciones comerciales desconocidas. Esta buena recolección de resultados mostraron un ROI muy interesante que motivó avanzar en el proyecto a una Fase 2, que consistió en generar experimentos de Machine Learning organizados desde Databricks y que nos permitieron identificar los modelos con mejor rendimiento respecto al esquema de precios de la compañía.

La combinación de Azure Databricks y Azure Machine Learning nos permitieron generar un ciclo de vida de ML orientado a predecir compras, comportamientos de clientes, y generar una adaptación del esquema de pricing que significó un aumento en las ventas de la empresa.


[popup_anything id=”2076″]
Categories
54cuatro

Tutorial de Microsoft Azure

Este tutorial está destinado a que los principiantes aprendan todo acerca de #Azure. A través de este tutorial de Azure, comprenderás la arquitectura, varios productos de la suite Azure y conocer ventajas, migración de las instalaciones a la nube, administración y más.

Digamos que estás desarrollando una aplicación como Uber. Ya tiene esta aplicación lista en su computadora y el siguiente paso es hacer que esté disponible en Internet para que las personas puedan navegar e ir a este sitio web. ¿Cómo lo harías?

  • Primero. Tendrá que comprar un servidor, en el que cargará su aplicación, con todos los roles que se requieran (Webserver, Application Server, Database, etc) y/o comprar tantos servidores como roles requiera.
  • Segundo. Ademas debería disponibilizar entornos de desarrollo mas seguros y similares a producción que su notebook.
  • A continuación, deberá asegurarse de que su aplicación esté siempre disponible, contratando personas para administrar su servidor en que esta aplicación está alojada.
  • Y, por supuesto, las máquinas están destinadas a averiarse o quedar obsoletas; por lo tanto, deberá controlar el hardware del servidor, ya sea que esté actualizado o no, y esté listo para gastar algo de dinero si algo sale mal.
  • Finalmente, el aspecto más importante, a medida que su aplicación crezca en popularidad entre sus usuarios, sus servidores sobrecargarse con todo el tráfico. Tendrá que pensar en ampliar, manteniendo un control constante sobre el tráfico en su aplicación.

Parece factible? Bueno, lo anterior no solo requerirá mucho esfuerzo, ¡sino que también será extremadamente costoso!

Ahora, ¿te preguntas cómo resolverlo? Bueno, la respuesta es Cloud Computing.

¿Que es cloud computing?

Es básicamente el uso de servidores alquilados en Internet, en lugar de usar uno propio, se conoce como Cloud Computing.

Cloud Computing ha llevado a casi todas las nuevas empresas a cambiar a la nube; por lo tanto, no solo están ahorrando el costo inicial de iniciar un negocio con la infraestructura de TI correcta pero su aplicación ahora está siendo manejada por varios proveedores de la nube como Amazon, Microsoft, Google, etc.

El proveedor de la nube le cobrará en función de la cantidad de horas que utilizó sus servidores, puede configurar la redundancia en sus servidores lo que garantiza una alta disponibilidad de su aplicación, cualquier actualización de hardware o falla será manejada por su proveedor de nube evitando costos de mantenimiento significativos, y ademas puede configurar el autoescalado en su flota de servidores, es decir, siempre que haya un aumento en el tráfico de su aplicación, su proveedor de la nube escalará automáticamente sus servidores.

Existen 3 grandes jugadores en el mercado de nubes. #Amazon, #Microsoft y #Google. Amazon es el pionero y líder en market share con sus servicios #AWS. Microsoft tiene la mayor rentabilidad de servicios en nube por medio de #Azure. Y Google lidera el cuadrante de herramientas para trabajar con datos, ML y IA. En este tutorial vamos a trabajar con Azure.

¿Porque Azure?

Nuestra compañía tiene una orientación clara al uso de los datos para crear informacion que permita optimizar las decisiones de una empresa, mejorar los modelos operativos y redefinir las industrias, y en ese sentido, encontramos nuestra esencia muy acorde a las ideas de Satya Nadella, CEO de Microsoft y quien reconvirtió la compañía a este nuevo modelo. Azure nos asegura una gran cartera de servicios de Datos, tanto bases relacionales, NoSQL, Hadoop, como herramientas de Datalake, Machine Learning, IA e IoT.

La tecnología puede permitir que millones de personas participen en la sociedad de forma plena.

Satya Nadella.

¿Que es Azure?

Azure es una plataforma abierta y flexible que provee todos los servicios para la construcción rápida, despliegue y administración de soluciones basadas en la nube. Ofrece una amplia gama de servicios basados en uso, a través de aplicaciones, cómputo, almacenamiento y redes. Le permite construir aplicaciones usando cualquier lenguaje, herramienta o marco en un portal completamente automatizado de auto-servicio que habilita el aprovisionamiento de recursos escalables en minutos.

Microsoft define a Azure como “una creciente colección de servicios integrados en la nube, que los desarrolladores y los profesionales de TI utilizan para crear, implementar y administrar aplicaciones a través de nuestra red global de centros de datos”.

Azure tiene más de 20 categorías de servicios para ofrecer, hemos dividido los servicios de Azure en los siguientes dominios:

  • Cómputos
  • Almacenamiento
  • Base de datos
  • Seguridad
  • Administración
  • Varios

Cómputos: Son aquellos servicios referidos al despliegue de equipamiento para procesamiento, como las Virtual Machines que son equipos que llevan un sistema operativo Linux o Windows, y que permite trabajar con las mismas libertades que en un servidor físico. Dentro del servicio de Cómputos, se encuentran servicios de ejecución de tareas Batch y el Autoscaling.

Almacenamiento: Son aquellos servicios que permiten almacenar informacion, crear discos de VM, compartir filesystems, etc. Azure ofrece maquinas virtuales con distintos grados de performance para que su rendimiento sea mejor según los discos elegidos, como así también, discos mas performantes equivalen a precios mas elevados. Así también se debe considerar distintos tipos de storages para el almacenamiento de informacion de bases de datos, discos compartidos, etc.

Bases de Datos: Dentro de este titulo, vamos a englobar no solo bases de datos tradicionales como #MSSQL, #MySQL y #Postgresql, sino aquellas bases de tipo Key-Value, Documentales, de grafos, y columnares como CosmosDB, bases de cache como Redis, y los servicios de migración.

Seguridad: En la gama de servicios de seguridad, Azure posee una gran fortaleza propia del gran desarrollo de los servicios de Active Directory, que dentro del mundo cloud habilita servicios como controles de acceso de Roles, autenticacion multifactor, Single sign on, y servicios de encriptación. Por supuesto dentro de la suite de seguridad existen opciones de Firewall, WAF, protección DDoS/Threat y provisión de certificados.

Administración: Un factor muy importante de los servicios de nube, es poder gestionar distintos factores administrativos de forma simple y por medio de roles. Para ello en Azure existen distintos servicios como Portal, la consola donde se desplegan los servicios y aplicaciones; Billing API, una herramienta que permite controlar los gastos efectuados sobre la plataforma; Cost Management, que permite optimizar los costos y maximizar los beneficios de usar Azure; Resource Health, una excelente herramienta para monitorear el estado de los servicios contratados. Ademas Azure posee una calculadora muy simple e intuitiva para calcular los costos de nuevos servicios que quieran ser montados, que evitan sorpresas futuras.

Varios: Para finalizar, y que la entrada no se extienda demasiado, mencionar que solo vimos características principales porque este tutorial esta pensado para alguien sin experiencia en la plataforma; pero existe toda una gama de productos preconfigurados a través de un Marketplace, servicios de BigData y MachineLearning, integraciones DevOps, plataformas para el despliegue de aplicaciones Mobile y IoT. En entradas posteriores interiorizaremos mas sobre aplicaciones de Datos, DevOps, Containers y Serverless, mientras tanto pueden revisar las entradas de nuestro blog.

Empresas de todo el mundo están usando Azure para impulsar su infraestructura, ejecutan un servidor web / de aplicaciones para alojar sus sitios web, aplicaciones, mantener sus archivos de forma segura en la nube, usar una base de datos administrada o implementar archivos a escala global utilizando Content Delivery Network (CDN).

¿Por donde empezar?

Para una persona que quiere iniciarse en Azure, puede comenzar creando una cuenta en https://azure.microsoft.com/es-mx/free/ y familiarizando con la interfaz, ademas de analizar rutas de educación como https://docs.microsoft.com/en-us/learn/paths/azure-fundamentals/.

Ademas viendo la calculadora de costos de los servicios https://azure.microsoft.com/es-es/pricing/calculator aprender del Pago por Uso, del ahorro por reservas de instancias, pagar menos usando mas, comparativas de como ahorrar en servicios de bases de datos respecto a AWS, etc.


[popup_anything id=”2076″]
Categories
54cuatro

Orquestar la infraestructura con TERRAFORM

Una nueva forma de administrar tu plataforma

Que es #IaC

Infraestructura como Código es el concepto de administrar y manejar la infraestructura de la misma manera que se trata el código fuente de una aplicación.

IaC es un #ConfigurationManager?

IaC esta centrado en crear instancias y administrar los elementos de infraestructura necesarios
para ejecutar aplicaciones y las herramientas de CM se centran en instalar, configurar y mantener los componentes de software en la infraestructura existente.

Beneficios de #Terraform

ProductividadSeguridadEficienciaAgilidad
Reducir las tareas repetidas permite al personal enfocarse en actividades intelectualmente más desafiantesLas políticas de seguridad se pueden definir como código y la infra siempre estará segura.Genere su infraestructura con los tamaños adecuados a las necesidades. No gaste de mas.Desplegar más rápido y con menos errores

Diferenciales de Terraform

○ Soporte para múltiples nubes : es compatible con todas las nubes, desde #AWS hasta #Alibaba, y admite múltiples servicios dentro de cada proveedor. También es compatible con las soluciones IAC de los proveedores de la nube, como #ARM y #CloudFormation.
○ Facilidad de uso : el lenguaje de configuración de #Hashicorp (#HCL) es fácil de leer para los humanos (y de escribir), incluso si no es un experto en Terraform, podrá comprender lo que sucederá observando la configuración. Además, es fácil de instalar; es solo un archivo binario único, que representa una sencilla arquitectura de cliente donde los comandos se envían al destino y se extraen de un servidor central.


[popup_anything id=”2076″]