Desplegando un mismo Notebook en múltiples Azure Databricks con Azure DevOps

Hay ocasiones en las que queremos extender las capacidades de un Notebook de Jupyter desarrollado sobre Visual Code a través de un repositorio de Azure DevOps a más de un Azure Databricks Workspace.

Esto guarda relación con la puesta en funcionamiento del concepto Data Mesh, pues si en este ejemplo, el Notebook contuviera un proceso de transformación de un conjunto de datos vinculados a un dominio, sólo podríamos diseminarlo de un modo automático trabajando coordinadamente con el equipo de DevOps, que configuraría los pipelines de despliegue para que una vez realizada, aprobada e integrada la Pull Request, el despliegue del nuevo código se subiera a los distintos Databricks. Para ello, además de las piezas mencionadas anteriormente, necesitaríamos el complemento de Azure Databricks de Data Thrist Ltd. para Azure DevOps. Disponible aquí

Aquí podemos ver la extensión instalada sobre mi organización alb3rtoalonso

Visual Code
Como he mencionado antes, he clonado el proyecto de Azure DevOps y he creado un nuevo fichero con extensión .ipynb como se puede observar en la imagen de abajo. Tras subirlo a la rama develop voy a usarlo para crear una pipeline de despliegue que obre el milagro de incluir ese nuevo notebook en dos Azure Databricks distintos.

Azure DevOps Repos
Compruebo que el nuevo notebook está presente en la rama develop y me preparo para crear la pipeline de despliegue para distribuir el nuevo componente.

Azure DevOps Pipelines
Comienzo con la creación de la pipeline, para ello elijo comenzar desde cero, vinculo el repositorio y la rama donde he subido el nuevo notebook.

Tras pulsar sobre continuar, comienzo con la configuración de las tareas también desde cero. Incluyo «databrick» en la celda del buscador y me aparecen todas las tareas disponibles en el componente que os mencioné al comienzo. Selecciono la segunda tarea: «Databricks Deploy Notebooks«

Azure Databricks
Compruebo que en ambos Azure Databricks Workspace no hay ningún Notebook en la carpeta de Shared. Para muestra un botón, bueno dos 😉

El primero para el dbs-databricks-dev

Y la segunda comprobación para el dbs-databricks-01-dev

El siguiente paso es obtener un token por cada uno de los Workspace de cara a poder conectar Azure DevOps con cada uno de ellos. Para ello, sirve con pulsar sobre Settings y de nuevo sobre User Settings para acceder a esta pantalla. Luego sólo queda pulsar sobre generar el nuevo token, darle nombre e indicar el valor de días para los que quieres habilitar su uso. El valor por defecto es 90 y así lo dejamos.

Azure DevOps Pipelines
Regresamos al pipeline que estamos configurando e incluimos ambos tokens.

Una vez completado el proceso, sólo nos queda guardar y correrlo. Veamos qué nos dice el proceso de ejecución.

El proceso ha concluido correctamente y por lo tanto en nuestros dos Azure Databricks Workspace deberemos disponer de nuestro recién desplegado Notebook. Comprobemos

Pues sí, vemos que está presente tanto en el primero

Como en el segundo de nuestros Workspace

TIPS
Importante que en Visual Code crees una carpeta sobre la que incluir los notebooks a exportar, pues al componente hay que pasarle ese path. Si previamente creamos una actividad «Copy Files«, podremos elegir la ruta de la carpeta sobre la que deseemos trabajar. Que en nuestro caso era la de «notebooks»

CONCLUSIÓN
Uno de las soft skills más apreciados por la organizaciones es el de perseguir el modo de ser más eficiente. Es por eso, por lo que afrontar los desafíos con un enfoque de mente abierta es una buena estrategia. Pero para ello, debes estar preparado para aprender, pero sobre todo, debes estar dispuesto a encajar elegantemente feedback y aproximaciones localizadas en tus antípodas de tus compañeros, partners, comunidad,…

Hoy en esta entrada he presentado un sencillo caso de uso que, visto desde el prisma de ser eficiente, te evita andar «copiando y pegando» n veces un conjunto de instrucciones de un Workspace a otro. Por que cuando son dos, bueno… pero y, ¿Cuándo son 20?

Dedica un rato de tu día a día a pensar cómo hacer más eficiente esos procesos a los que te enfrentas a diario. Muy probablemente ni tan siquiera te lo has planteado, pues cuando llegaste, las heredaste y si alguien, en algún momento, preguntó el porqué, seguro que como contestación recibió la típica frase de: «las cosas siempre se han hecho así,…» Pues eso, dejemos de darlo todo por bueno y tengamos pensamiento crítico.

NOTAS:
En esta ocasión tuve que solicitar que me habilitaran la opción de usar paralelismo en el proyecto privado de mi organización de Azure DevOps, como bien indicaba el mensaje destacado en color rojo.

Tras completar el formulario al que enlazaba el mensaje de error, tuve que esperar unos tres días hasta poder lanzar el proceso de despliegue.

Publicado por alb3rtoalonso

Soy un enamorado del poder de los datos. Entusiasta de la mejora y formación continua.

Un comentario en “Desplegando un mismo Notebook en múltiples Azure Databricks con Azure DevOps

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: