In SQL Server 2012, Microsoft introduced a new deployment model in SSIS called the project deployment model. This new model has many benefits in terms of managing SSIS project deployments, executions, and configurations. Every new version of SQL Server also upgrades the SSIS Catalog with new features. In this article, I will describe SSIS environment design patterns that we can use to set up SSIS Catalog.
Shared Nothing
This is the most commonly used design pattern to set up SSIS Deployments. As the name suggests, each deployment environment (Dev, Test, Prod) has a separate SQL Server and SSISDB setup to deploy SSIS projects and configure them using SSIS Environments.
Characteristics
Name of the folders, projects, and environments are the same in all the deployments environments.
Easy to manage deployments and setup.
Easy to implement continuous deployment (CD) strategy using DevOps frameworks.
When to use
You have a dedicated SQL Server for each deployment environment to run SSIS workloads.
Workloads are critical and cannot share SQL server capacity with different deployment environments.
SSIS code is rapidly changing.
Shared Server
In this design pattern, the same SSIS project is deployed to different folders. Folder names reflect the target deployment environment (Dev, Test, Prod).
Characteristics
Folder names are different for different target environments.
Same projects and SSIS environments are deployed to different folders.
When to use
You have a single SQL Server for multiple target deployment environments.
Workloads are less critical and less resource-intensive.
Code is rapidly changing.
Shared Project
In this design pattern, multiple target environments (Dev, Test) share same SSIS project.
Characteristics
Each target deployment environment (Dev, Test, Prod) has its own SSIS Environment.
All the SSIS Environments have the same variables but different values based on the target deployment environment.
All environments reference to the project.
The environment is referred to in the scheduler or during the package execution time depending on the target environment (Dev, Test, etc.).
When to use
Workloads are less critical and less resource-intensive.
SSIS code is not changing frequently.
We have seen different SSIS environment design patterns we can use to set up SSIS catalog depending on the availability of the resources.
How to manage SSIS Catalog in different environments
The SSIS Catalog Migration Wizard helps you migrate full or part of the SSIS catalog to another SQL server. You can move the SSIS catalog to another server between any version of SQL Server (2012, 2014, 2016, 2017, 2019, Azure Data Factory/ Azure SQL Database, or Azure SQL managed instance). Read more about it here.