<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: DAB best practices suggestion in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/dab-best-practices-suggestion/m-p/160756#M54946</link>
    <description>&lt;P&gt;You can create Databricks Asset Bundles that are decoupled by domain, managed via multi target declarations within configuration and also driven by immutable, versioned artifacts stored securely within Unity Catalog Volumes. You can rely on explicit CI/CD gating and dynamic, scoped resource names rather than monolithic &amp;amp; hardcoded infrastructure definitions.&lt;/P&gt;&lt;H3&gt;&lt;U&gt;Bundle Structure &amp;amp; Domain Isolation&lt;/U&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Decoupled Domain Bundles -&amp;nbsp;You can group configurations into small focused bundles aligned to specific data products or business domains instead of monolithic setup.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Shared Lifecycles -&amp;nbsp;Ensure that a single bundle contains only the resources (jobs, pipelines, dashboards) that share a unified deployment lifecycle and ownership domain boundary.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Target Definitions -&amp;nbsp;You can maintain all target definitions (dev, uat, prod) within a single yml per bundle to guarantee environmental structural parity.&amp;nbsp;More details &lt;A href="https://docs.databricks.com/aws/en/developers/best-practices/" target="_blank"&gt;here&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;&lt;U&gt;Multi-Target Environment Strategy&lt;/U&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Development -&amp;nbsp;Configure for feature-branch agility. Implement dynamic resource renaming using built-in metadata expressions (such as ${workspace.current_user.short_name}) to enforce isolation within shared or personal workspaces. Route all computation to development catalogs and schemas.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Staging/User Acceptance Testing -&amp;nbsp;Trigger automated deployments on pull request merges to the main branch. This layer must run full integration suites and validation workflows against pre-production catalogs, mirroring production configurations identically.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Production -&amp;nbsp;Guard production workloads with manual approval workflows and strict role-based access control (RBAC) with the target production Unity Catalog environments.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;&lt;U&gt;CI/CD Orchestration (Azure DevOps)&lt;/U&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Pull Request Verification -&amp;nbsp;Enforce static analysis by running databricks bundle validate prior to any code merges to catch syntactical and structural anomalies early.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Continuous Deployment (UAT) -&amp;nbsp;Compile code, version artifacts, stage them directly into Unity Catalog volumes and execute target-specific deployments sequentially.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Release Management (Prod) -&amp;nbsp;Restrict production deployments to manual approval gates within Azure DevOps Environments. Re-use the identical, immutable artifacts verified in UAT to eliminate drift.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;&lt;U&gt;Artifact &amp;amp; Dependency Management&lt;/U&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Unity Catalog Volumes -&amp;nbsp;Store external dependencies (Python Wheels, JARs) inside secure, governed Unity Catalog Volumes rather than embedding large binaries directly into the bundle workspace.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Inter-Bundle Governance -&amp;nbsp;Model complex cross-bundle dependencies explicitly within Azure DevOps YAML pipeline tasks rather than nesting configuration files. Fail pipeline execution immediately if upstream assets are absent.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;</description>
    <pubDate>Sat, 27 Jun 2026 17:07:22 GMT</pubDate>
    <dc:creator>balajij8</dc:creator>
    <dc:date>2026-06-27T17:07:22Z</dc:date>
    <item>
      <title>DAB best practices suggestion</title>
      <link>https://community.databricks.com/t5/data-engineering/dab-best-practices-suggestion/m-p/160754#M54945</link>
      <description>&lt;P class=""&gt;We're currently setting up &lt;STRONG&gt;Databricks Asset Bundles (DAB)&lt;/STRONG&gt; with a &lt;STRONG&gt;CI/CD pipeline using Azure DevOps&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;Our planned development workflow is as follows:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Main branch → Developer creates a feature branch → Implement changes → Create a Pull Request → Senior developers review and approve → Merge into the main branch → Deploy to UAT → After UAT sign-off, deploy to Production.&lt;BR /&gt;&lt;BR /&gt;&lt;/STRONG&gt;I would like to hear suggestions specially the best practices as of now&lt;/P&gt;</description>
      <pubDate>Sat, 27 Jun 2026 16:13:18 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/dab-best-practices-suggestion/m-p/160754#M54945</guid>
      <dc:creator>DazzaiDe</dc:creator>
      <dc:date>2026-06-27T16:13:18Z</dc:date>
    </item>
    <item>
      <title>Re: DAB best practices suggestion</title>
      <link>https://community.databricks.com/t5/data-engineering/dab-best-practices-suggestion/m-p/160756#M54946</link>
      <description>&lt;P&gt;You can create Databricks Asset Bundles that are decoupled by domain, managed via multi target declarations within configuration and also driven by immutable, versioned artifacts stored securely within Unity Catalog Volumes. You can rely on explicit CI/CD gating and dynamic, scoped resource names rather than monolithic &amp;amp; hardcoded infrastructure definitions.&lt;/P&gt;&lt;H3&gt;&lt;U&gt;Bundle Structure &amp;amp; Domain Isolation&lt;/U&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Decoupled Domain Bundles -&amp;nbsp;You can group configurations into small focused bundles aligned to specific data products or business domains instead of monolithic setup.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Shared Lifecycles -&amp;nbsp;Ensure that a single bundle contains only the resources (jobs, pipelines, dashboards) that share a unified deployment lifecycle and ownership domain boundary.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Target Definitions -&amp;nbsp;You can maintain all target definitions (dev, uat, prod) within a single yml per bundle to guarantee environmental structural parity.&amp;nbsp;More details &lt;A href="https://docs.databricks.com/aws/en/developers/best-practices/" target="_blank"&gt;here&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;&lt;U&gt;Multi-Target Environment Strategy&lt;/U&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Development -&amp;nbsp;Configure for feature-branch agility. Implement dynamic resource renaming using built-in metadata expressions (such as ${workspace.current_user.short_name}) to enforce isolation within shared or personal workspaces. Route all computation to development catalogs and schemas.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Staging/User Acceptance Testing -&amp;nbsp;Trigger automated deployments on pull request merges to the main branch. This layer must run full integration suites and validation workflows against pre-production catalogs, mirroring production configurations identically.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Production -&amp;nbsp;Guard production workloads with manual approval workflows and strict role-based access control (RBAC) with the target production Unity Catalog environments.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;&lt;U&gt;CI/CD Orchestration (Azure DevOps)&lt;/U&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Pull Request Verification -&amp;nbsp;Enforce static analysis by running databricks bundle validate prior to any code merges to catch syntactical and structural anomalies early.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Continuous Deployment (UAT) -&amp;nbsp;Compile code, version artifacts, stage them directly into Unity Catalog volumes and execute target-specific deployments sequentially.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Release Management (Prod) -&amp;nbsp;Restrict production deployments to manual approval gates within Azure DevOps Environments. Re-use the identical, immutable artifacts verified in UAT to eliminate drift.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;&lt;U&gt;Artifact &amp;amp; Dependency Management&lt;/U&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Unity Catalog Volumes -&amp;nbsp;Store external dependencies (Python Wheels, JARs) inside secure, governed Unity Catalog Volumes rather than embedding large binaries directly into the bundle workspace.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Inter-Bundle Governance -&amp;nbsp;Model complex cross-bundle dependencies explicitly within Azure DevOps YAML pipeline tasks rather than nesting configuration files. Fail pipeline execution immediately if upstream assets are absent.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Sat, 27 Jun 2026 17:07:22 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/dab-best-practices-suggestion/m-p/160756#M54946</guid>
      <dc:creator>balajij8</dc:creator>
      <dc:date>2026-06-27T17:07:22Z</dc:date>
    </item>
    <item>
      <title>Re: DAB best practices suggestion</title>
      <link>https://community.databricks.com/t5/data-engineering/dab-best-practices-suggestion/m-p/160932#M54962</link>
      <description>&lt;P&gt;The workflow itself is solid. A few things worth tightening at each stage, based on running this in production with Azure DevOps:&lt;/P&gt;&lt;P&gt;At the PR stage, run &lt;FONT color="#FF0000"&gt;databricks bundle validate&lt;/FONT&gt; as a required check before merge is allowed. It catches wrong field names, broken resource references, and missing values before anything touches a workspace. Costs nothing to run and it's the cheapest gate in the whole pipeline.&lt;/P&gt;&lt;P&gt;For your dev target, make sure &lt;FONT color="#FF0000"&gt;databricks.yml&lt;/FONT&gt; has &lt;FONT color="#FF0000"&gt;mode: development&lt;/FONT&gt; with &lt;FONT color="#FF0000"&gt;default: true&lt;/FONT&gt;. This prefixes resource names with the username automatically, so a few people can deploy to the same dev workspace without stepping on each other. Skip &lt;FONT color="#FF0000"&gt;default: true&lt;/FONT&gt; and someone in a hurry will eventually run &lt;FONT color="#FF0000"&gt;bundle deploy&lt;/FONT&gt; with no &lt;FONT color="#FF0000"&gt;--target flag&lt;/FONT&gt; and end up somewhere they didn't mean to.&lt;/P&gt;&lt;P&gt;For UAT and prod, use &lt;FONT color="#FF0000"&gt;mode: production&lt;/FONT&gt; and deploy under a service principal, not a personal account. Two reasons this matters: deployed resources don't get orphaned if someone leaves the team, and your prod audit trail actually means something when someone asks who deployed what.&lt;/P&gt;&lt;P&gt;Worth testing deliberately before you need it - what happens if a deploy fails mid-run and you have to retry. There's a thread on this board right now about &lt;FONT color="#FF0000"&gt;--force-lock&lt;/FONT&gt; creating duplicate jobs after an Azure DevOps pipeline failure. Simulate that failure in dev before it happens for real in prod.&lt;/P&gt;&lt;P&gt;And keep validate as a gate at every promotion, not just at the PR. The bigger thing though is to promote the same validated artifact from UAT into prod rather than rebuilding from YAML at each stage - that's what actually guarantees prod matches what UAT tested.&lt;/P&gt;&lt;P&gt;Putting it together:&lt;/P&gt;&lt;P&gt;Feature branch → validate (PR gate) → review and merge → validate again → deploy to UAT under service principal → UAT sign-off → promote the same artifact to prod, don't rebuild from source → deploy to prod under service principal with manual approval&lt;/P&gt;&lt;P&gt;The part that matters most: validate early and often, but only ever promote one artifact forward instead of re-deploying from source at each stage. That's what keeps UAT and prod actually identical to what got tested.&lt;/P&gt;&lt;P&gt;Happy to go deeper on any of this if it's useful for what you're setting up.&lt;/P&gt;</description>
      <pubDate>Tue, 30 Jun 2026 10:11:16 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/dab-best-practices-suggestion/m-p/160932#M54962</guid>
      <dc:creator>savlahanish27</dc:creator>
      <dc:date>2026-06-30T10:11:16Z</dc:date>
    </item>
  </channel>
</rss>

