An Azure service for ingesting, preparing, and transforming data at scale.
Hi SYN
For your scenario, the recommended enterprise approach is to use Infrastructure-as-Code (IaC) and CI/CD-based deployments rather than directly moving Azure resources between subscriptions. This provides better repeatability, governance, rollback capability, and environment consistency.
Below is the recommended approach for each component:
1. Azure Data Factory (ADF)
- Enable Git integration only on the Dev Data Factory.
- Use ARM templates/Bicep generated from the collaboration branch for deployments.
- Deploy selectively to Production using CI/CD pipelines (Azure DevOps or GitHub Actions) with parameterized configurations for linked services, Key Vault references, and triggers.
- For selective deployment of pipelines, organize workloads modularly (for example by domain/project/folder) rather than manually moving pipelines individually.
- Microsoft recommends ARM/Bicep-based deployment over direct resource moves for ADF promotion scenarios.
2. Azure SQL Database
- Use SSDT/SQL Database Projects with DACPAC/SqlPackage for schema deployment (tables, procedures, views, functions).
- Treat schema deployment separately from data movement.
- Use ADF Copy Activity, BCP, or export/import mechanisms for selective data migration.
- Avoid using geo-replication for selective object movement, as it replicates the full database.
3. Logic Apps
- Deploy Logic Apps using ARM templates/Bicep/Terraform with environment-specific parameters.
- Store connection references and secrets externally through Key Vault.
- Direct “resource move” operations are better suited for full-resource migration, not selective workflow promotion.
4. ADLS Gen2
- Use AzCopy (
azcopy sync) or ADF Copy Activity for incremental synchronization between environments. - For ongoing synchronization, orchestration through ADF pipelines is preferred.
5. Azure Key Vault
- Maintain separate Key Vaults per environment (Dev/Prod).
- Use deployment parameterization and environment-specific secret references.
- Use backup/restore only when specific secrets/keys need migration.
6. Dev ↔ Prod Synchronization
- Enterprise best practice is primarily one-way promotion (Dev → Test → Prod) to avoid configuration drift.
- If Prod → Dev synchronization is required for testing or hotfix validation, automate it carefully and avoid manual copying.
7. CI/CD & Automation Recommended architecture:
- Source control repository (Git)
- IaC templates (ARM/Bicep/Terraform)
- Azure DevOps or GitHub Actions deployment pipelines
- Environment-specific parameter files
- Automated validation and deployment stages
8. Minimizing Downtime
- Use deployment slots/staged rollouts where applicable.
- Disable ADF triggers during deployment and re-enable afterward.
- Use online-compatible database schema changes.
- Schedule production cutovers during low-traffic windows.
9. Production Best Practices
- Separate subscriptions/resource groups per environment
- RBAC separation and least privilege access
- Key Vault-backed secrets/configuration
- Centralized monitoring/logging
- Azure Policy and tagging governance
- Resource locks for critical production assets
10. Move vs Recreate + Deploy
- Azure resource move operations are typically “all-or-nothing” and are best suited for full-resource relocation.
- For selective deployment, repeatability, auditing, rollback, and long-term maintainability, recreate + deploy through IaC/CI/CD is the preferred enterprise model.
References:
- CI/CD in Azure Data Factory
- Move Resources Across Resource Groups or Subscriptions
- Deploy Azure SQL Database with DACPAC/SqlPackage
- Logic Apps ARM Template Deployment
- AzCopy Synchronization
- Azure Key Vault Backup and Restore
Please let us know if you have any additional questions.