(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
Infraestrutura como Código & DevOps
Infraestrutura como Código & DevOps 1 min

Azure DevOps Pipelines para dados: CI/CD de notebooks e pipelines ADF

João Barros 01 de September de 2025 1 min de leitura

Os Azure DevOps Pipelines aplicam as práticas de CI/CD ao mundo dos dados: cada commit a um notebook, pipeline ADF ou relatório Power BI passa por validação automática antes do deploy para produção.

CI Pipeline — validação de notebooks Python/PySpark

trigger:
  - main
  - develop

pool: { vmImage: ubuntu-latest }

stages:
  - stage: CI
    jobs:
      - job: ValidateNotebooks
        steps:
          - task: UsePythonVersion@0
            inputs: { versionSpec: "3.11" }

          - script: pip install pytest nbconvert flake8 pyspark
            displayName: Instalar dependências

          - script: flake8 notebooks/ --max-line-length=120 --ignore=E501
            displayName: Lint PySpark

          - script: pytest tests/ -v --tb=short
            displayName: Testes unitários

          - task: PublishTestResults@2
            inputs:
              testResultsFiles: "tests/results/*.xml"

CD Pipeline — deploy de ADF ARM templates

stages:
  - stage: DeployADF_Test
    condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
    jobs:
      - deployment: DeployADF
        environment: test
        strategy:
          runOnce:
            deploy:
              steps:
                - task: AzureResourceManagerTemplateDeployment@3
                  inputs:
                    azureResourceManagerConnection: 'AzureServiceConnection_Test'
                    resourceGroupName: 'rg-adf-test'
                    location: 'westeurope'
                    templateLocation: 'Linked artifact'
                    csmFile: '$(Pipeline.Workspace)/adf-arm/ARMTemplateForFactory.json'
                    overrideParameters: >
                      -factoryName adf-bconcepts-test
                      -KeyVault_properties_typeProperties_baseUrl https://kv-bconcepts-test.vault.azure.net/

Deploy de notebooks Databricks

          - task: DatabricksDeployScripts@0
            inputs:
              authMethod: ServicePrincipal
              SpId:       $(DATABRICKS_SP_ID)
              SpSecret:   $(DATABRICKS_SP_SECRET)
              TenantId:   $(TENANT_ID)
              DatabricksUrl: https://adb-xxx.azuredatabricks.net
              LocalPath:  notebooks/
              RemotePath: /Shared/Production/

Conclusão

CI/CD para dados reduz deploys manuais propensos a erros e garante que código testado chega a produção. Comece simples: lint + testes unitários no CI, deploy de ARM templates no CD. Adicione aprovações manuais antes do stage de produção.

Partilhar: