En este artículo explicamos qué es Azure Databricks y cuáles son sus costos y beneficios. Además, damos un detalle de qué variables tener en cuenta al momento de armar un presupuesto para evitar sorpresas en la facturación.
¿Qué es Azure Databricks?
Azure Databricks es el servicio de Databricks hospedado en la nube de Microsoft Azure. Recordemos que Databricks es una plataforma como servicio de nube que engloba gran parte de las herramientas que necesitamos para trabajar con datos.
Algo importante a tener en cuenta es que Databricks gestiona por nosotros toda la infraestructura necesaria para su funcionamiento. Si bien esto es transparente para el usuario o para el desarrollador, en el detrás de escena se necesitan físicamente de máquinas virtuales en las que crear, ejecutar y finalizar los clusters (conjunto de computadoras que actúan en conjunto como una entidad única). Es allí donde entran en escena los proveedores de la nube —como Microsoft— que alojan el servicio por nosotros y gestionan toda la infraestructura.
¿Cuáles son los beneficios de usar Azure Databricks?
1. Respaldo de Microsoft
Uno de los proveedores de nube más grandes del mercado da respaldo en cuanto a fiabilidad y disponibilidad de los servicios.
2. Seguridad
Azure Databricks está nativamente integrado con Microsoft Entra ID (antes Azure Active Directory), uno de los servicios más sólidos de administración de identidad y acceso. Esto facilita la seguridad de los usuarios que accederán al servicio y a la auditoría de todas las transacciones y operaciones. Permite, por ejemplo, la autenticación de los usuarios a Databricks a través de su usuario de Entra ID.
3. Integración
Azure Databricks está muy integrado en el ecosistema Azure. Esto facilita la integración de Databricks con los demás servicios, como pueden ser:
- Azure Key Vault: Es un servicio de manejo de secretos, en el que podemos guardar claves, contraseñas y cualquier valor sensible que no deba ser expuesto en el código de desarrollo. Se accede directamente desde Azure Databricks, leyendo el valor y utilizándolo para las conexiones necesarias, sin que el usuario pueda acceder a conocer el valor del secreto.
- Azure Data Lake Storage Gen2: Azure Databricks permite la conexión directa con el servicio de almacenamiento de Azure. Se puede leer y escribir sobre el Storage sin dificultad.
- Azure Data Factory: Posee una integración directa con Azure Data Factory (ADF), el servicio de orquestación de Azure. Esto permite ejecutar notebooks de Databricks de forma sencilla invocándolas desde un pipeline de ADF.
- Synapse Analytics: Azure Databricks posee un conector para realizar la conexión a Synapse, permitiendo la fácil lectura de los datos almacenados allí.
- PowerBI: Puede conectarse fácilmente a Azure Databricks. Sólo hace falta configurarla como un origen de datos adicional y pasar las credenciales correspondientes. Luego es posible importar datos o realizar consultas, también es fácil el manejo de seguridad a través de Microsoft Entra ID.
Algunos servicios en la nube de Azure
¿Cómo empezar a usar Azure Databricks?
Comenzar a usar Azure Databricks es muy sencillo, sólo necesitamos una cuenta en Azure y crear el servicio desde el portal. En este link se indica el paso a paso para comenzar.
Es importante aclarar que llevar Azure Databricks a un entorno productivo puede implicar una serie de configuraciones adicionales. En especial en cuanto a la gestión de la seguridad y de los permisos de usuarios, la configuración de secretos o parámetros y la conexión a fuentes externas (como puede ser el servicio de almacenamiento de Azure Data Lake Storage Gen2).
¿Cuál es el costo de Azure Databricks?
Azure Databricks funciona en la nube, por ende, no requiere de una gran inversión inicial. Es un servicio que no incluye ningún costo fijo, sólo se paga por tiempo de uso del cluster. De esta manera, es una buena alternativa para empezar si tenemos un proyecto de datos pequeño porque el costo va a escalar a medida que se incorporen más procesos.
Si estamos empezando en la nube de Azure, podemos acceder a un crédito de USD 200 con el que comenzar a trabajar sin ningún costo adicional más un año en el que algunos servicios serán totalmente gratuitos. Esto suele ser suficiente para explorar los servicios principales y para realizar algunas pruebas de ingesta y procesamiento de datos.
Para más información sobre estos créditos se puede consultar acá.
⚠️ Hay que tener cuidado al crear recursos en Azure y no apagarlos. Muchos de estos servicios se cobran por hora de uso y si los dejamos encendidos el costo se irá acumulando con el tiempo y podemos llegar a tener una factura importante sin darnos cuenta. Por eso, luego de realizar alguna prueba, siempre es recomendable asegurarse de que los recursos creados queden apagados y/o eliminados.
También recomendamos configurar alertas dentro de Azure, a partir de las cuales podremos definir el presupuesto que deseamos. De esta manera, recibiremos notificaciones en caso que se supere dicho umbral y tendremos acceso a un servicio de administración de gastos en el cual podremos observar en detalle en qué servicios hemos consumido nuestro presupuesto.
Ahora bien, ¿qué precio tiene exactamente usar Azure Databricks?
Como explicamos, se cobra por hora que el cluster está encendido, pero hay varios factores para determinar este costo. Para tener una idea, podemos comenzar a trabajar con clusters pequeños que consuman menos de USD 0,5 por hora hasta clusters muy grandes que pueden llegar a costar más de USD 100 por hora.
¿Qué factores determinan el precio de Azure Databricks?
El precio exacto que vamos a pagar dependerá principalmente de cuatro factores:
1. El tipo de cluster
Principalmente podemos diferenciar los clusters a utilizar en dos grandes tipos:
- Interactivo (o All-Purpose Compute), este es un cluster que se debe crear previamente por el usuario. Se enciende a demanda y se mantendrá prendido hasta tanto no se lo apague. Se puede y se recomienda configurar el apagado automático luego de cierto tiempo sin uso. Es el cluster ideal para realizar tareas como desarrollo de nuevo código, análisis exploratorio de datos o consultas analíticas.
- Job-cluster (o Jobs Compute), este es un tipo de cluster que se utiliza para la ejecución de una única notebook en particular. En este caso, Databricks gestiona la totalidad de la creación y del borrado del cluster una vez que termina la ejecución de la notebook, por lo que no debemos preocuparnos por apagarlo una vez finalizado. Este tipo de clusters es el recomendado por Databricks para la ejecución de procesos en entornos productivos que se repetirán con cierta frecuencia o serán llamados desde un pipeline. Los Job-clusters son más económicos que los interactivos, suelen tener un costo menor al 50% que los primeros.
2. El tamaño de la instancia
Al crear el cluster, se va a provisionar con instancias, que son en definitiva el hardware sobre el que va a correr nuestro cluster. Este hardware varía según la instancia elegida y hay que considerar tres factores: memoria RAM, disco duro y procesador.
Como es de esperar, a mayor cantidad de recursos que contenga la instancia, mayor será el costo a pagar por hora de la misma.
El valor de cada uno de estos factores no se considera de forma individual. Azure Databricks utiliza una unidad de costo llamada “DBU”, que combina los tres factores en una única unidad. Lo importante es saber que, a mayor cantidad de hardware que tenga nuestro cluster, mayor será el valor de DBU por hora que estaremos pagando.
3. Máquinas virtuales
Es importante considerar que además de los “DBU”, en todas aquellas instancias que no sean Serverless, hay también un costo asociado a las máquinas virtuales de Azure que se necesitan para levantar nuestro cluster. Estas máquinas virtuales tienen su propio grupo de recursos y son administradas por Databricks, que las genera al momento de encender el cluster. El costo de las máquinas virtuales va también asociado a las necesidades de hardware, mientras mayor sea el tamaño de la instancia, mayor será el costo de las máquinas virtuales.
4. Cantidad de instancias
Así como podemos seleccionar el tamaño, también podemos seleccionar cuántas instancias queremos que contenga nuestro cluster, esto determinará el número de nodos del mismo. Podemos comenzar con clusters pequeños de un único nodo y escalar a medida que sea necesario.
5. Zona geográfica
Además de las consideraciones previas, Azure Databricks tiene un costo según la zona donde generemos el cluster, ya que cuenta con ubicaciones alrededor del mundo y estas tendrán un mayor o menor costo según la escala de infraestructura con la que cuente Azure en esa zona. Por ejemplo si estamos trabajando desde América del Sur, una instancia pequeña en “Brazil South” nos costaría USD 0.642/hora, mientras que la misma instancia en “US East” nos costaría USD 0.756/hora. Tengamos en cuenta que la elección de la zona geográfica también dependerá de la ubicación del origen de los datos y del destino, ya que esto va a impactar también en los tiempos y costos de transmisión de los datos a través de internet. Si las bases de datos a las que nos vamos a conectar están en Europa, probablemente sea conveniente buscar alguna instancia de esa zona para reducir la latencia.
Si se les interesa conocer más en detalle el costo del servicio, pueden consultar el siguiente link.
Conclusión
En Datalytics somos Solutions Partner en Data & AI de Microsoft y partners certificados en Databricks, esto abarca todas las competencias referidas al trabajo con datos. A partir de toda nuestra experiencia con esta tecnología, podemos concluir que Azure Databricks es una plataforma de la que se habla mucho en los últimos años y continúa en crecimiento constante, por lo que es importante conocer de qué se trata para cualquiera que trabaje o tenga interés en el mundo de los datos.
Como explicamos, dar los primeros pasos en Databricks y en el entorno de Azure es sencillo y tendremos el costo inicial bonificado. Por lo tanto, animamos a quienes estén interesados a dar sus primeros pasos y a probar esta tecnología, después de todo, no hay mejor forma de aprender que haciendo. 😉