Compartir a través de


CI/CD con carpetas de Git en Databricks

Utilice las carpetas de Git de Databricks en los flujos de CI/CD para mantener el trabajo bajo control de código fuente e integrarlos con los flujos de trabajo de ingeniería de datos. Para obtener información general más amplia sobre CI/CD con Azure Databricks, consulte CI/CD en Azure Databricks.

Flujos de uso

Automatización de carpetas de Git se centra en la configuración inicial de carpetas y en la API REST de Azure Databricks Repos para automatizar las operaciones de Git desde los trabajos de Azure Databricks. Antes de desarrollar la automatización:

  • Revise los repositorios de Git remotos que usará.
  • Elija los repositorios y ramas adecuados para cada fase (desarrollo, integración, ensayo, producción).

Hay tres flujos principales:

  • Flujo de administración: un administrador del área de trabajo de Azure Databricks crea carpetas de nivel superior para hospedar carpetas git de producción. El administrador clona un repositorio y una rama al crear cada carpeta y puede asignarles un nombre con fines (por ejemplo, "Producción", "Prueba" o "Ensayo"). Consulte Creación de una carpeta git de producción.
  • Flujo de usuario: un usuario crea un directorio de Git en /Workspace/Users/<email>/ desde un repositorio remoto, trabaja en una rama específica para el usuario y envía los commits al remoto. Consulte Colaboración mediante carpetas de Git.
  • Flujo de combinación: Después de hacer un push desde una carpeta de Git, los usuarios abren pull requests (PR). Cuando se combina un PR, la automatización puede integrar cambios en carpetas de Git de producción mediante la API de repositorios de Azure Databricks.

Colaboración mediante carpetas de Git

Colabore con otros usuarios mediante la extracción e inserción de cambios de la interfaz de usuario de Azure Databricks. Un patrón común es usar una característica o una rama de desarrollo para agregar el trabajo.

Para colaborar en una rama de funcionalidades:

  1. Clona tu repositorio de Git existente hacia el área de trabajo de Databricks.
  2. En la interfaz de usuario de carpetas de Git, cree una rama de funcionalidades desde la rama principal. Puede usar varias ramas de características según sea necesario.
  3. Edite cuadernos de Azure Databricks y otros archivos del repositorio.
  4. Confirme e inserte los cambios en el repositorio remoto.
  5. Otros colaboradores pueden clonar el repositorio en su propia carpeta de usuario. Trabajan en una rama, cambian cuadernos y archivos en la carpeta Git y, luego, confirman y hacen push al remoto.
  6. Cuando esté listo, cree una solicitud de incorporación de cambios en el proveedor de Git, revise con su equipo y combine en la rama de implementación.

Nota:

Databricks recomienda que cada desarrollador trabaje en su propia rama. Para resolver conflictos de combinación, consulte Resolución de conflictos de combinación.

Elección de un enfoque de CI/CD

Databricks recomienda conjuntos de recursos de Databricks para empaquetar e implementar flujos de trabajo de CI/CD. Si prefiere implementar solo código en el área de trabajo, puede usar una carpeta git de producción en su lugar. Para obtener información general más amplia sobre CI/CD, consulte CI/CD en Azure Databricks.

Sugerencia

Defina recursos como trabajos y canalizaciones en el origen mediante agrupaciones, luego cree, implemente y administrelos en carpetas git del área de trabajo. Consulte Colaboración en agrupaciones en el área de trabajo.

Creación de una carpeta git de producción

Las carpetas git de producción son diferentes de las carpetas de Git de nivel de usuario en /Workspace/Users/. Las carpetas de nivel de usuario son copias locales en las que los usuarios desarrollan y empujan cambios. Los administradores crean carpetas git de producción fuera de las carpetas de usuario, contienen ramas de implementación y son el origen de los flujos de trabajo automatizados. Solo deben actualizarse mediante la automatización cuando los PR se fusionan en ramas de implementación. Restrinja los directorios Git de producción al acceso solo para ejecución para la mayoría de los usuarios. Permitir que solo los administradores y las entidades de servicio de Azure Databricks los editen.

Carpetas de producción de Git asignadas a la rama principal en un repositorio remoto.

Para crear una carpeta git de producción:

  1. Elija el repositorio y la rama de Git para la implementación.

  2. Cree o use una entidad de servicio y configure una credencial de Git para que pueda acceder a ese repositorio.

  3. Cree una carpeta git de Azure Databricks para el repositorio y la rama en una subcarpeta en Workspace (por ejemplo, por proyecto, equipo o fase).

  4. Seleccione la carpeta, luego Compartir o haga clic con el botón derecho en Compartir (Permisos) en el árbol del Área de trabajo.

  5. Asignar niveles de permisos:

    • Puede ejecutarse para los usuarios del proyecto que necesitan ejecutar flujos de trabajo.
    • Pueda ejecutarse para cualquier principal de servicio de Azure Databricks que ejecute procesos automatizados en esta carpeta.
    • Opcionalmente, Puede ver para todos los usuarios del área de trabajo con el fin de facilitar el descubrimiento y el intercambio.

    Ventana de diálogo modal para compartir carpeta Git.

  6. Haga clic en Agregar.

  7. Mantenga la carpeta Git de producción sincronizada con la rama remota mediante una de estas opciones:

    • CI/CD externo: use herramientas como GitHub Actions para extraer las confirmaciones más recientes al fusionar una solicitud de incorporación de cambios con la rama de implementación. Para obtener un ejemplo, consulte Ejecución de un flujo de trabajo de CI/CD que actualiza una carpeta de Git.
    • Trabajo programado: si ci/CD externo no está disponible, ejecute un trabajo programado que actualice la carpeta Git. Use un cuaderno sencillo que se ejecute según una programación:
    from databricks.sdk import WorkspaceClient
    w = WorkspaceClient()
    w.repos.update(w.workspace.get_status(path="<git-folder-workspace-full-path>").object_id, branch="<branch-name>")
    

Para más información sobre la automatización con la API de Repos, consulte la documentación de la API REST de Databricks para Repos.