Skip to content

Microsoft Dynamics 365 On-Premise to Cloud Migration: SSIS vs Azure Data Factory vs ClonePartner

The Microsoft Dynamics 365 migration landscape is divided between self-serve toolsets (KingswaySoft/ADF) and managed frameworks (ClonePartner). While tools like ADF provide scale, managed frameworks prioritize data integrity and security by executing migrations within the client’s own VPC, addressing the inherent limitations of standard web API connectors in handling complex legacy CRM metadata.

Raaj Raaj · · 7 min read
Microsoft Dynamics 365 On-Premise to Cloud Migration: SSIS vs Azure Data Factory vs ClonePartner
TALK TO AN ENGINEER

Planning a migration?

Get a free 30-min call with our engineers. We'll review your setup and map out a custom migration plan — no obligation.

Schedule a free call
  • 1,500+ migrations completed
  • Zero downtime guaranteed
  • Transparent, fixed pricing
  • Project success responsibility
  • Post-migration support included

The transition from Microsoft Dynamics 365 on-premises to the Power Platform/Dataverse environment involves significant architectural shifts. The challenge lies in how different frameworks handle data integrity, API throttling, and security boundaries. This analysis evaluates three primary pathways: SSIS with KingswaySoft, Azure Data Factory (ADF), and the ClonePartner engineer-led framework.

Disclosure: ClonePartner authored this article and is one of the three tools evaluated. We have tried to present accurate trade-offs for all three approaches, but readers should weigh that context accordingly.

1. Technical Framework Overviews

SSIS + KingswaySoft (Integration Toolkit)

This approach utilizes SQL Server Integration Services (SSIS) as the engine, augmented by the KingswaySoft adapter. It is a client-side, heavy-infrastructure model.

  • Mechanism: Uses a high-performance wrapper around the Dynamics 365 Web API.
  • Data Handling: Excelled at handling complex CRM-specific data types (e.g., PartyList, StateCode/StatusCode).
  • Infrastructure Requirements: Requires a dedicated SQL Server environment or an Azure-SSIS Integration Runtime (IR).
  • Licensing cost: KingswaySoft is licensed per server. For a single-server SSIS deployment, expect a recurring annual license fee in addition to your SQL Server and IR infrastructure costs.

Azure Data Factory (ADF)

ADF is Microsoft's native cloud ETL service. It is a distributed, serverless data integration service.

  • Mechanism: Leverages the Copy Activity with a native Dynamics 365 connector.
  • Data Handling: Optimized for high-throughput "lift-and-shift" operations. ADF supports parameterized pipelines and mapping data flows for handling entity relationships, though complex CRM-specific logic (e.g., PartyList fields, StateCode transitions) often still requires custom JSON configuration.
  • Infrastructure Requirements: Fully managed; requires no local server overhead but relies on cloud-based execution units (Data Integration Units, or DIUs). ADF billing is based on DIU-hours consumed, pipeline runs, and activity runs — costs scale with dataset size and pipeline complexity.

ClonePartner Framework

The ClonePartner model focuses on VPC-integrated, scripted migrations rather than UI-based tools.

  • Mechanism: Custom-scripted migration logic deployed via a binary that runs within the client's own Virtual Private Cloud (VPC).
  • Data Handling: Specializes in migrations that preserve historical audit logs, activity feeds, and multi-select picklist metadata, including system-written fields (CreatedOn, ModifiedOn, OwnerID).
  • Infrastructure Requirements: Operates in-situ (on-premises or client-cloud), ensuring data remains within the security perimeter.

2. Dataverse API Throttling: The Constraint That Determines Throughput

Regardless of which tool you choose, all three approaches hit the same ceiling: Dataverse service protection limits. Microsoft enforces these limits to protect platform stability. The key limits are:

  • 6,000 API requests per 5-minute sliding window per user/connection (combined limit across all threads)
  • 52,000 API requests per 5-minute window across all users in an org (org-wide aggregate)
  • 1,000 concurrent requests per connection

These limits are documented in the Microsoft Dataverse service protection API limits documentation. Hitting them produces a 429 Too Many Requests response. Any migration tool that does not implement retry logic with exponential backoff will stall or corrupt data at scale.

How each tool handles throttling:

  • SSIS + KingswaySoft: Manual tuning of concurrency and batch size is required. The toolkit gives you control over thread count and batch depth, but the engineer must configure retry behavior explicitly. If not tuned correctly, a 429 mid-run can cause partial writes.
  • ADF: The native Dynamics 365 connector includes built-in retry logic for transient errors including 429 responses. However, the Copy Activity does not dynamically reduce concurrency under load — it retries at the same rate, which can produce sustained throttle loops on large datasets.
  • ClonePartner: Implements adaptive throttle detection that reduces request rate dynamically when 429 responses are detected and ramps back up after the window resets. This reduces wall-clock migration time on large datasets by avoiding sustained throttle loops.

3. Failure Modes: What Actually Breaks

Engineers do not search for "which tool is best." They search for "what happens when it fails." Here is what to expect from each tool under common failure conditions.

SSIS + KingswaySoft

  • Foreign key violation at mid-run: SSIS packages process records sequentially within a data flow. If a related record (e.g., a parent Account) has not yet been written when a child Contact is processed, SSIS will throw a foreign key error. The package stops at that row unless you have explicitly configured error-row redirection. Records processed before the failure are committed; records after are not. You must rerun from a checkpoint or reprocess the failed rows manually.
  • Plugin execution conflicts: KingswaySoft supports the BypassCustomPluginExecution flag via a service principal, which suppresses Dynamics plugins during write. This is useful for preserving CreatedOn/ModifiedOn but carries a risk: any plugin that enforces business rules (e.g., duplicate detection, required field logic) is also suppressed. If your plugins enforce data integrity rules, disabling them during migration can introduce inconsistencies you will not discover until post-migration QA.

Azure Data Factory

  • Partial write on throttle: The Copy Activity commits records in batches. If a throttle response occurs mid-batch and retry logic exhausts its attempts, ADF marks the activity run as failed. Records in the failed batch may or may not be written depending on where in the batch the failure occurred. ADF does not provide row-level success/failure reporting by default — you need custom logging to identify which records landed.
  • Complex relationship ordering: ADF does not natively manage cross-entity dependency ordering. If you are migrating Accounts, Contacts, and Activities in parallel pipelines, a Contact write can fail if its parent Account has not been committed yet. You must manually sequence pipelines using dependency triggers or Accept Failure modes, which adds pipeline complexity and debugging overhead.

ClonePartner

  • Scope limitations: The ClonePartner framework is optimized for Dynamics-to-Dynamics and CRM-to-CRM migration patterns. If your migration involves significant ETL transformation (e.g., restructuring the data model, merging entities, or splitting a single entity into multiple targets), the YAML-based configuration model requires more upfront mapping work and may be slower to iterate on than a full ETL tool like ADF for transformation-heavy projects.
  • Custom schema complexity: Migrations involving deeply customized Dataverse solutions — multiple publisher prefixes, managed vs. unmanaged layer conflicts, or circular entity dependencies — require schema analysis before the migration config is built. This is engineering work, not a self-service operation.

4. The Iteration Time: Visual Blocks vs. Declarative YAML

The most significant hidden cost in any migration is the Mean Time to Iterate (MTTI). Because data migrations are inherently non-linear, you will inevitably run 50+ test cycles before the final cutover.

The Problem with GUI-Based Tools (SSIS/ADF)

In SSIS or ADF, logic is "trapped" inside visual blocks.

  • The Workflow: To audit a transformation or fix a mapping error, an engineer must click through multiple layers of nested menus.
  • The Bottleneck: Checking out a block, verifying a long table mapping inside a GUI, and re-saving the package is a manual, high-friction process. If the migration crashes, triaging which specific "block" failed in a complex pipeline can take hours.

The YAML Advantage (ClonePartner)

ClonePartner replaces visual blocks with a human-readable YAML configuration file.

  • The Workflow: All entity mappings, relationship logic, and transformation rules are in a single text file.
  • The Efficiency: Config changes are faster to make than navigating nested GUI menus in SSIS or ADF. Because it's text-based, it enables Git-based version control. You can diff two migration versions to see exactly what changed, making peer reviews and debugging faster.

5. Decision Matrix: Feature & Performance Comparison

Technical Criterion SSIS + KingswaySoft Azure Data Factory ClonePartner
Execution Environment VM/SQL Server Azure Managed Cloud Client VPC (In-Situ)
D365 API Throttle Handling Manual retry configuration Built-in retry; fixed concurrency Adaptive rate reduction on 429
Security Boundary High (data stays local if VM is local) Data transits Azure shared infrastructure Data stays within client VPC
Complexity Management Scripting/UI mix UI-first; JSON for complex logic YAML config; engineer-customized
Failure Recovery Row-level error redirection (manual config) Activity-level retry; limited row-level logging Run-level checkpointing; row-level error logging
Cost Model Per-server license + SQL/IR infra DIU-hours + pipeline/activity run fees Service engagement fee
Best Fit Teams with existing SSIS/SQL infrastructure High-volume flat data; cloud-native teams High-security, complex-integrity, audit-log preservation

6. Comparative Strengths and Trade-offs

Integrity vs. Speed

Azure Data Factory is the most efficient choice for massive datasets where data structure is relatively flat. However, for legacy Dynamics environments with ten years of "technical debt" (nested relationships and custom plugins), SSIS + KingswaySoft or ClonePartner are technically superior due to their ability to maintain foreign key integrity across multiple passes.

Security and Data Residency

A critical distinction in migration architecture is the "Data Transit Path."

  • ADF moves data through Azure's shared infrastructure.
  • SSIS keeps data local if the VM is local.
  • ClonePartner is architected to prevent data exfiltration by running the migration binary inside the client's VPC, which is a significant factor for SOC2, HIPAA, or GDPR-governed environments.

Maintenance of Historical Context

Generic migration tools often struggle with "system-written" fields like CreatedOn, ModifiedOn, and OwnerID. While KingswaySoft offers a BypassCustomPluginExecution approach to preserve these fields, it requires manual configuration and carries the plugin suppression risks described above. The ClonePartner framework preserves these fields by default, treating the migration as a cloning operation rather than an import/export task.

7. Evaluation Framework: Selecting a Migration Path

To determine the appropriate methodology, organizations should evaluate their needs based on the following taxonomy:

  • Category A: High Volume/Low Complexity. Use Azure Data Factory to leverage cloud-native scale. Best for flat entity structures without deep relationship dependencies.
  • Category B: Existing SQL Infrastructure. Use SSIS + KingswaySoft if the internal team already manages SQL/SSIS stacks and has the engineering capacity to configure retry logic and error handling manually.
  • Category C: High Security/Complex Integrity. Use ClonePartner when data residency, audit log preservation, and zero-downtime cutover are the primary success metrics — and when the migration scope is Dynamics-to-Dynamics rather than a structural data transformation.

Frequently Asked Questions

When is the actual end-of-life deadline for Dynamics 365 on-premise?
For many organizations running Dynamics CRM 2016 (v8.2), mainstream support officially ended in January 2026. If you're on version 9.x, you have until January 2027 for mainstream support. After these dates, you stop receiving feature updates, and more importantly, you stop receiving security patches unless you're on a specific extended support plan.
Can I migrate my historical audit logs and activity feeds?
Most standard tools (like the basic ADF connector) struggle with read-only system fields. SSIS with KingswaySoft can do it with heavy configuration. ClonePartner is designed to preserve the "system state" by default, ensuring your historical CreatedOn dates and Audit Logs remain intact in the cloud instanc
What happens to our custom C# plugins and JavaScript?
The cloud version (Power Platform/Dataverse) has different API limits and security sandboxes. You can't just "copy-paste" custom code. You’ll need to refactor legacy C# plugins into modern Power Automate flows or cloud-compliant plugins. Our framework identifies these "at-risk" customizations during the initial audit.

More from our Blog