November 7, 2021

The horrible azure devops ui

Disclaimer: I read the docs, I know this is just complaining and not giving feedback, but man, this UI still is horrible. So… Let’s put into situation, there was a connection update between devops and bitbucket and suddenly most of our pipelines stopped working. They told me to change the connection in the yaml file and that didn’t work. I know that there are three parts involved in a pipeline for sure: Read more

October 1, 2020

Jugando con Data Factory

Sorprendentemente, hasta ahora, no había tenido la posibilidad de trabajar con data factory, sólo lo había usado para algunas migraciones de datos. Sin embargo, tras estabilizar un proyecto y consolidar su nueva etapa, necesitábamos simplificar la solución implementada para migrar datos. Una representación sencilla de la arquitectura actual sería: En un flujo muy sencillo sería esto: La etl escribe un fichero csv con spark en un directorio de un blob storage. La primera function filtra los ficheros de spark que no son part- y se encarga de notificar a una function que actúa de gateway para el batch con qué fichero queremos enviar, el nombre original, el path y el nombre que queremos darle. Esta function de gateway se encarga de realizar las llamadas necesarias a la api de Azure para generar una tarea en el batch. El batch se encarga de comprimir el fichero y enviarlo al sftp del cliente, recuperando las credenciales según el tipo de fichero que se trate. Este proceso nos permitía trabajar con dos versiones del proyecto en lo que hacíamos la migración a la nueva versión. Ahora que la nueva versión ya está consolidada y hemos conseguido además que el cliente utilice un formato de compresión que podemos escribir directamente desde spark sin recurrir al batch, es el momento de cambiar la arquitectura de transferencia de datos. Read more

May 30, 2020

Acceso al keyvault mediante certificados

En el proceso de migración de una aplicación de webjob a azure batch, nos encontramos con la problemática de gestionar los secretos. El servicio de batch se encarga de recoger una aplicación de un storage y hacer ejecuciones de ella (tasks) en unas máquinas concretas (pool). Para poder gestionar los secretos de la aplicación, estos estaban guardados en keyvault. Y teníamos que acceder de forma segura a ellos. Por eso optamos por utilizar la autenticación vía certificado. La idea de este tutorial es reproducir los mismos pasos que he usado yo para poder usar este certificado. Read more

February 24, 2020

Límites en azure functions para procesos de larga duración

Estas últimas semanas he tenido que implementar ciertas mejoras en un proyecto. El objetivo era muy simple, conectar el proyecto a una aplicación de datawarehousing existente, y de forma externa, realizar agregados y luego aplicar cierto procesamiento para un servicio en particular. Además había una serie de requisitos extras: El procesamiento iba a ser reutilizado por otro proyecto. Y requería comprimir y cifrar archivos grandes. La primera parte tenía que simplemente, Había una deadline muy cercana para este proyecto. Con todas estas limitaciones, la solución propuesta fue esta: Read more

2017-2026 Adrián Abreu