This session focuses on the all PaaS solution of Azure SQL DB/Managed Instance (MI) + SSIS in Azure Data Factory (ADF) to lift & shift, modernize, and extend ETL workflows. We will first show you how to provision Azure-SSIS Integration Runtime (IR) – dedicated ADF servers for running SSIS – with SSIS catalog (SSISDB) hosted by Azure SQL DB/MI, configure it to access data on premises using Windows authentication and Virtual Network injection/Self-Hosted IR as a proxy, and extend it with custom/Open Source/3rd party components. We will next show you how to use the familiar SSDT/SSMS tools to design/test/deploy/execute your SSIS packages in the cloud just like you do on premises. We will finally show you how to modernize your ETL workflows by invoking/scheduling SSIS package executions as first-class activities in ADF pipelines and combining/chaining them with other activities, allowing you to trigger your pipeline runs by events, automatically (de)provision SSIS IR just in time, etc.
28. 3rd Party Extensibility – Implementation
Azure-SSIS IR node
Container
ISV Setup1. Specify Product Key in setup script ISV Activation Server
2. Get Activation Key by submitting Cluster ID + Product Key
Local Store
(e.g. Registry)
3. Write Activation Key
SSIS Executor
ISV Extension
4. Read Activation Key and
validate it with Cluster ID
Setup
Runtime
4. Get Cluster ID
4. Report on Node Count (Optional)
SSIS Runtime
2. Activation Key
36. Source: SQL Server + SQL Agent Destination: Azure SQL MI + MI Agent Destination: Azure SQL DB + ADF
Storage Types Package Assessment Package Migration Job Migration Package Migration Job Migration
SSISDB • DMA (Coming Soon)
• SSDT (Coming Soon)
• After importing to file
systems/file
shares/Azure Files via
SSDT
• SSISDB to SSISDB via DMS • SQL Agent to MI Agent via
DMS (Coming Soon)
• SQL Agent to MI Agent via
PowerShell/T-SQL/C# script
• Recreate in MI Agent via
SSMS
• SSISDB to SSISDB via
DMS/SSMS (Coming Soon)
• Deploy to SSISDB via
SSDT/SSMS
• SQL Agent to ADF via SSMS
(Coming Soon)
• SQL Agent to ADF via
PowerShell/T-SQL/C# script
• Recreate in ADF via
SSMS/ADF portal
37. Source: SQL Server + SQL Agent Destination: Azure SQL MI + MI Agent Destination: Azure SQL DB + ADF
Storage Types Package Assessment Package Migration Job Migration Package Migration Job Migration
SSISDB • DMA (Coming Soon)
• SSDT (Coming Soon)
• After importing to file
systems/file
shares/Azure Files via
SSDT
• SSISDB to SSISDB via DMS • SQL Agent to MI Agent via
DMS (Coming Soon)
• SQL Agent to MI Agent via
PowerShell/T-SQL/C# script
• Recreate in MI Agent via
SSMS
• SSISDB to SSISDB via
DMS/SSMS (Coming Soon)
• Deploy to SSISDB via
SSDT/SSMS
• SQL Agent to ADF via SSMS
(Coming Soon)
• SQL Agent to ADF via
PowerShell/T-SQL/C# script
• Recreate in ADF via
SSMS/ADF portal
File Systems • DMA (Preview)
• SSDT (Coming Soon)
• Deploy to file shares/Azure
Files via
dtinstall/dtutil/manual copy
• Keep in file systems to
access via VNet/Self-Hosted
IR
• SQL Agent to MI Agent via
DMS/SSMS (Coming Soon)
• SQL Agent to ADF via
PowerShell/T-SQL/C# script
• Recreate in ADF via
SSMS/ADF portal
• Deploy to file shares/Azure
Files via
dtinstall/dtutil/manual copy
• Keep in file systems to
access via VNet/Self-Hosted
IR
• Same as above
38. Source: SQL Server + SQL Agent Destination: Azure SQL MI + MI Agent Destination: Azure SQL DB + ADF
Storage Types Package Assessment Package Migration Job Migration Package Migration Job Migration
SSISDB • DMA (Coming Soon)
• SSDT (Coming Soon)
• After importing to file
systems/file
shares/Azure Files via
SSDT
• SSISDB to SSISDB via DMS • SQL Agent to MI Agent via
DMS (Coming Soon)
• SQL Agent to MI Agent via
PowerShell/T-SQL/C# script
• Recreate in MI Agent via
SSMS
• SSISDB to SSISDB via
DMS/SSMS (Coming Soon)
• Deploy to SSISDB via
SSDT/SSMS
• SQL Agent to ADF via SSMS
(Coming Soon)
• SQL Agent to ADF via
PowerShell/T-SQL/C# script
• Recreate in ADF via
SSMS/ADF portal
File Systems • DMA (Preview)
• SSDT (Coming Soon)
• Deploy to file shares/Azure
Files via
dtinstall/dtutil/manual copy
• Keep in file systems to
access via VNet/Self-Hosted
IR
• SQL Agent to MI Agent via
DMS/SSMS (Coming Soon)
• SQL Agent to ADF via
PowerShell/T-SQL/C# script
• Recreate in ADF via
SSMS/ADF portal
• Deploy to file shares/Azure
Files via
dtinstall/dtutil/manual copy
• Keep in file systems to
access via VNet/Self-Hosted
IR
• Same as above
MSDB • DMA (Coming Soon)
• SSDT (Coming Soon)
• After exporting to file
systems/file
shares/Azure Files via
SSMS/dtutil
• MSDB to MSDB via
DMS/SSMS (Coming Soon)
• Export to file systems/file
shares/Azure Files via
SSMS/dtutil
• Same as above • MSDB to User-Defined DB via
DMS/SSMS (Coming Soon)
• Export to file systems/file
shares/Azure Files via
SSMS/dtutil
• Same as above
39. Source: SQL Server + SQL Agent Destination: Azure SQL MI + MI Agent Destination: Azure SQL DB + ADF
Storage Types Package Assessment Package Migration Job Migration Package Migration Job Migration
SSISDB • DMA (Coming Soon)
• SSDT (Coming Soon)
• After importing to file
systems/file
shares/Azure Files via
SSDT
• SSISDB to SSISDB via DMS • SQL Agent to MI Agent via
DMS (Coming Soon)
• SQL Agent to MI Agent via
PowerShell/T-SQL/C# script
• Recreate in MI Agent via
SSMS
• SSISDB to SSISDB via
DMS/SSMS (Coming Soon)
• Deploy to SSISDB via
SSDT/SSMS
• SQL Agent to ADF via SSMS
(Coming Soon)
• SQL Agent to ADF via
PowerShell/T-SQL/C# script
• Recreate in ADF via
SSMS/ADF portal
File Systems • DMA (Preview)
• SSDT (Coming Soon)
• Deploy to file shares/Azure
Files via
dtinstall/dtutil/manual copy
• Keep in file systems to
access via VNet/Self-Hosted
IR
• SQL Agent to MI Agent via
DMS/SSMS (Coming Soon)
• SQL Agent to ADF via
PowerShell/T-SQL/C# script
• Recreate in ADF via
SSMS/ADF portal
• Deploy to file shares/Azure
Files via
dtinstall/dtutil/manual copy
• Keep in file systems to
access via VNet/Self-Hosted
IR
• Same as above
MSDB • DMA (Coming Soon)
• SSDT (Coming Soon)
• After exporting to file
systems/file
shares/Azure Files via
SSMS/dtutil
• MSDB to MSDB via
DMS/SSMS (Coming Soon)
• Export to file systems/file
shares/Azure Files via
SSMS/dtutil
• Same as above • MSDB to User-Defined DB via
DMS/SSMS (Coming Soon)
• Export to file systems/file
shares/Azure Files via
SSMS/dtutil
• Same as above
SSIS Package
Store
• Same as above • SSIS Package Store to ADF
Package Store via DMS/SSMS
(Coming Soon)
• Export to file systems/file
shares/Azure Files via
SSMS/dtutil
• Same as above • SSIS Package Store to ADF
Package Store via DMS/SSMS
(Coming Soon)
• Export to file systems/file
shares/Azure Files via
SSMS/dtutil
• Same as above
43. Why Should You Care? Better TCO & ROI!
Source: The Business Value of Microsoft Azure SQL Database Services, IDC, Mar 2015
The Total Economic Impact of Microsoft Azure SQL Database Managed Instance, Forrester Consulting, Sep 2018
44. Why Should You Care? Get AHB by BYOL!
Maximize the value of on-premises SQL
Server license investments by migrating
SSIS in ADF/Azure-SSIS Integration Runtime (IR) Editions
SQL Server with Software Assurance
45. Why Should You Care? Huge Opportunity!
Source: Worldwide Database Server Forecast, IDC, Dec 2016
Worldwide Database Server Forecast
Modernizing
opportunity
with SQL
Server
37% of all units
run Microsoft,
>50% of them
run 2008/R2
or older versions
Non-Relational
Open Source
PaaS & IaaS
Microsoft
Oracle
IBM
SAP
New SQL
Other
MySQL
No
SQL
46. Why Should You Care? Do The Math!
Source: Feb 2019 snapshot of active SSIS instances extrapolated from SSIS 2016/2017 telemetry & CSS case volume for SQL 2008-2017
SSIS 2008-2017 on
premises/Azure VMs/AWS VMs
(100%)
SSIS 2008-2017 on premises
(88%)
SSIS 2008/R2 EOS w/o SSISDB
(13%)
SSIS 2012-2017 w/ SSISDB
(21%)
Total Addressable Market
Present Lift & Shift
Target
Immediate
Target
Past Target
48. How Should You Care? Fear is a Great Motivator!
Fear of missing out
Separation of storage/DB engine from compute/ETL engine
High Availability (HA) via multi-node cluster
Disaster Recovery (DR) via standby SSIS IR in a paired region
Dynamic scalability (in/out/up/down)
49. Fear of losing investments
Too many SSIS packages to convert from using OLEDB connection via Win Auth to using ADO.NET connection via AAD Auth w/ ADF
managed identity
Too many SSIS packages to convert from package deployment model w/o SSISDB to project deployment model w/ SSISDB
Too many SSIS jobs scheduled by 3rd party orchestrators (e.g. Active Batch, Control-M, etc.) invoking dtexec
Too many packages using absolute paths w/ hard-coded drives (e.g. C:)
SQL MI Agent doesn’t support SSIS environment/32-bit runtime/property override
SQL MI Agent can’t invoke dtexec to execute SSIS packages stored in MSDB/file system/package store
Network configuration/policy is too complex/strict to access on-premises data via VNet
Custom setup w/ script is too complex/error-prone
How Should You Care? Fear is a Great Motivator!
Fear of missing out
Separation of storage/DB engine from compute/ETL engine
High Availability (HA) via multi-node cluster
Disaster Recovery (DR) via standby SSIS IR in a paired region
Dynamic scalability (in/out/up/down)
50. How Should You Care? Fear is a Great Motivator!
Fear of losing investments
Too many SSIS packages to convert from using OLEDB connection via Win Auth to using ADO.NET connection via AAD Auth w/ ADF
managed identity
– Support OLEDB connection via AAD Auth w/ ADF managed identity, switch at run time via property override
Too many SSIS packages to convert from package deployment model w/o SSISDB to project deployment model w/ SSISDB
– Support file shares/Azure Files to store packages, turn SSISDB from a blocker into an upsell
Too many SSIS jobs scheduled by 3rd party orchestrators (e.g. Active Batch, Control-M, etc.) invoking dtexec
– ADF-enable dtexec to invoke Execute SSIS Package activities in ADF pipelines
Too many packages using absolute paths w/ hard-coded drives (e.g. C:)
– Create scripts that replace absolute paths w/ UNC paths, or regenerate ADF-friendly SSIS packages using BIML
SQL MI Agent doesn’t support SSIS environment/32-bit runtime/property override
– Achieve feature parity w/ SQL Server Agent
SQL MI Agent can’t invoke dtexec to execute SSIS packages stored in MSDB/file system/package store
– ADF-enable SQL MI Agent to invoke Execute SSIS Package activities in ADF pipelines
Network configuration/policy is too complex/strict to access on-premises data via VNet
– Support Self-Hosted IR as proxy for Azure-SSIS IR to access on-premises data
Custom setup w/ script is too complex/error-prone
– Support custom setup w/o script
Fear of missing out
Separation of storage/DB engine from compute/ETL engine
High Availability (HA) via multi-node cluster
Disaster Recovery (DR) via standby SSIS IR in a paired region
Dynamic scalability (in/out/up/down)
51. How Should You Care? Fear is a Great Motivator!
Minimizing fear of losing investments
– No more lift & shift blockers
Rebalancing your risks/fears
Maximizing fear of missing out
Separation of storage/DB engine from compute/ETL engine
High Availability (HA) via multi-node cluster
Disaster Recovery (DR) via standby SSIS IR in a paired region
Dynamic scalability (in/out/up/down)
ADO.NET/OLEDB/Storage connection via AAD Auth w/ ADF managed identity
AKV support on Execute SSIS Package activity
SSIS ADF connectors (80+)
PQ Source
DQS migration to cloud alternatives running on SSIS in ADF
More cloud-first/cloud-only features, etc.
54. https://www.slideshare.net/SandyWinarko/embrace-and-extend-firstclass-activity-and-
3rd-party-ecosystem-for-ssis-in-adf-108683267
Documentations
Provisioning Azure-SSIS IR Using UI: https://docs.microsoft.com/en-us/azure/data-factory/tutorial-deploy-ssis-packages-azure
Using PSH: https://docs.microsoft.com/en-us/azure/data-factory/tutorial-deploy-ssis-packages-azure-
powershell
Using ARM template: https://docs.microsoft.com/en-us/azure/data-factory/create-azure-ssis-
integration-runtime#azure-resource-manager-template
Provisioning Azure-SSIS IR using Azure
SQL DB w/ VNet service
endpoints/Managed Instance to host
SSISDB
Using UI/PSH: https://docs.microsoft.com/en-us/azure/data-factory/create-azure-ssis-integration-
runtime
Joining a VNet: https://docs.microsoft.com/en-us/azure/data-factory/join-azure-ssis-integration-
runtime-virtual-network
Provisioning Azure-SSIS IR using AAD
Auth w/ ADF managed identity
Using UI/PSH: https://docs.microsoft.com/en-us/azure/data-factory/create-azure-ssis-integration-
runtime
Enabling AAD Auth: https://docs.microsoft.com/en-us/azure/data-factory/enable-aad-authentication-
azure-ssis-ir
Provisioning Azure-SSIS IR inside a VNet
to access data on premises
Using UI/PSH: https://docs.microsoft.com/en-us/azure/data-factory/create-azure-ssis-integration-
runtime
Joining a VNet: https://docs.microsoft.com/en-us/azure/data-factory/join-azure-ssis-integration-
runtime-virtual-network
Monitoring Azure-SSIS IR Using UI/PSH: https://docs.microsoft.com/en-us/azure/data-factory/monitor-integration-
runtime#azure-ssis-integration-runtime
55. Documentations
Configuring Azure-SSIS IR Using UI/PSH: https://docs.microsoft.com/en-us/azure/data-factory/manage-azure-ssis-
integration-runtime
Configuring Azure-SSIS IR to use Enterprise
Edition
Using UI/PSH: https://docs.microsoft.com/en-us/azure/data-factory/how-to-configure-azure-
ssis-ir-enterprise-edition
Configuring Azure-SSIS IR to use custom setup Using UI/PSH: https://docs.microsoft.com/en-us/azure/data-factory/how-to-configure-azure-
ssis-ir-custom-setup
Configuring Azure-SSIS IR for high
performance
Using UI/PSH: https://docs.microsoft.com/en-us/azure/data-factory/configure-azure-ssis-
integration-runtime-performance
Configuring Azure-SSIS IR for disaster recovery Using UI/PSH: https://docs.microsoft.com/en-us/azure/data-factory/configure-bcdr-azure-ssis-
integration-runtime
Deploying projects/packages to run on Azure-
SSIS IR
Using UI/PSH: https://docs.microsoft.com/en-us/sql/integration-services/lift-shift/ssis-azure-
deploy-run-monitor-tutorial?view=sql-server-2017
Connecting SSMS to SSISDB: https://docs.microsoft.com/en-us/sql/integration-services/lift-
shift/ssis-azure-connect-to-catalog-database?view=sql-server-2017
Validating projects/packages: https://docs.microsoft.com/en-us/sql/integration-services/lift-
shift/ssis-azure-validate-packages?view=sql-server-2017
56. Documentations
Connecting to data stores using Win Auth on
Azure-SSIS IR
Using 4 methods: https://docs.microsoft.com/en-us/sql/integration-services/lift-shift/ssis-azure-
connect-with-windows-auth?view=sql-server-2017
Connecting to file shares and processing files
on Azure-SSIS IR
Using local file system/file shares: https://docs.microsoft.com/en-us/sql/integration-services/lift-
shift/ssis-azure-files-file-shares?view=sql-server-2017
Using Win Auth: https://docs.microsoft.com/en-us/sql/integration-services/lift-shift/ssis-azure-
connect-with-windows-auth?view=sql-server-2017
Running packages on Azure-SSIS IR Using SSMS/ADF/other methods: https://docs.microsoft.com/en-us/sql/integration-services/lift-
shift/ssis-azure-run-packages?view=sql-server-2017
As Execute SSIS Package activities in ADF pipelines: https://docs.microsoft.com/en-
us/azure/data-factory/how-to-invoke-ssis-package-ssis-activity
As Stored Procedure activities in ADF pipelines: https://docs.microsoft.com/en-us/azure/data-
factory/how-to-invoke-ssis-package-stored-procedure-activity
Scheduling package executions on Azure-SSIS
IR
Using SSMS/ADF/other methods: https://docs.microsoft.com/en-us/sql/integration-services/lift-
shift/ssis-azure-schedule-packages?view=sql-server-2017
Using SSMS: https://docs.microsoft.com/en-us/sql/integration-services/lift-shift/ssis-azure-
schedule-packages-ssms?view=sql-server-2017
As Execute SSIS Package activities in ADF pipelines: https://docs.microsoft.com/en-
us/azure/data-factory/how-to-invoke-ssis-package-ssis-activity
As Stored Procedure activities in ADF pipelines: https://docs.microsoft.com/en-us/azure/data-
factory/how-to-invoke-ssis-package-stored-procedure-activity
57. Documentations
Scheduling Azure-SSIS IR provisioning on
demand/just in time
Using Web activities: https://docs.microsoft.com/en-us/azure/data-factory/how-to-schedule-
azure-ssis-integration-runtime
Cleaning up package execution logs in SSISDB Using Elastic Jobs: https://docs.microsoft.com/en-us/azure/data-factory/how-to-clean-up-
ssisdb-logs-with-elastic-jobs
Developing premium/licensed components for
Azure-SSIS IR
Using Cluster ID: https://docs.microsoft.com/en-us/azure/data-factory/how-to-develop-azure-
ssis-ir-licensed-components
Procuring 3rd party components for Azure-SSIS
IR
Partner list: https://blogs.msdn.microsoft.com/ssis/2018/04/27/enterprise-edition-custom-setup-
and-3rd-party-extensibility-for-ssis-in-adf/
Repeat the mantra: Lift & Shift – Modernize – Extend.
Continuous and increased product investments for different customer cohorts.
Typical SQL Server estate including primary Value-Added Services (VAS), excluding secondary ones (MDS/DQS).
Full compatibility lift & shift for DB + ETL engines.
Full compatibility lift & shift vs. partial lift & shift/complete replacement.
SSIS in ADF as glue between disparate resources on premises and in the cloud.
Pop quiz: What is AWS ETL service called?
ADF complements/fills gaps in SSIS and vice versa.
We have cloud alternatives of DQS built as extensions running on SSIS in ADF.
2017 is our break-out year.
Preserved skillsets by ensuring that traditional on-premises tools can still be used in the cloud.
Transformed ADF into a first-class job scheduler for Azure SQL DB.
Splicing SSIS Excel connectors as gap fillers.
Lift & shift motivation/migration drive from the economic/financial angle for enterprises.
Lift & shift motivation/migration drive from the economic/financial angle for enterprises.
Pop quiz: If you have on-premises SQL Server license for 100 cores and you’ve traded in 50 cores for Azure SQL DB/MI, how many cores can you use for SQL on IaaS/SSIS in ADF?
Lift & shift motivation/migration drive from the business opportunity angle for System Integrators (SIs) and DB/BI consultancies.
Lift & shift motivation/migration drive from the business opportunity angle for System Integrators (SIs) and DB/BI consultancies.
Lift & shift motivation/migration drive from the timing angle for all.
Pop quiz: What kind of insect is in my photo?
Lift & shift motivation/migration drive from the risk/fear angle (pros & cons) for enterprises.
Pros = fear of missing out.
Lift & shift motivation/migration drive from the risk/fear angle (pros & cons) for enterprises.
In the past, pros = fear of missing out < cons = fear of losing investments.
We’ve addressed/are addressing each fear of losing investments.
Now, pros = fear of missing out > cons = fear of losing investments.