Technology•Sep 22, 2011
Worry-Free BizTalk Application Deployments with the Deployment Framework for BizTalk
Do you dread deploying BizTalk applications? If you are like most people who have dealt with deploying BizTalk applications, you have endured many a hardship. You probably have had to create your own scripts to undeploy and deploy new resources. Ensuring, of course, that related dependencies exist, required registry entries are in place and various services are restarted. Not to mention, making sure that your port bindings are correct for the destination environment.
If this sounds like you, you should consider making the strategic decision to employ the Deployment Framework for BizTalk by Thomas Abraham and Scott Colestock.
What is the Deployment Framework for BizTalk?
The Deployment Framework for BizTalk (BTDF) is a toolkit for easy deployment and configuration of your BizTalk applications. The toolkit generates custom MSBuild scripts that will deploy BizTalk resources in an ordered process. Since the installation utilizes MSBuild it is very easy to extend a standard deployment to perform additional tasks, such as adding/removing registry entries, create Business Rules Engine (BRE) vocabularies and policies, installing other resources or starting various services. The toolkit integrates directly with Microsoft Visual Studio to create the BTDF files and deployment installation.
The current version (5.0) supports BizTalk 2006 – 2010 solutions. BizTalk 2004 is supported by the previous version (4.0) of the BTDF.
Why do I want it?
There are many reasons why you should consider implementing the BTDF. However, we will focus on the three most common reasons.
(1) Consistent and Repeatable Process
Other than being a good practice, having a standard process for deploying applications could be required. If your organization has to comply with Sarbanes-Oxley (SOX) laws, Payment Card Industry (PCI) Data Security Standards (DSS) or other such regulations, you may be required to employ a standard process. The BTDF allows you to easily create this type of well-documented, consistent and repeatable process.
(2) Common Build for All Environments
A common pain point when deploying BizTalk applications is managing the port bindings for multiple environments. Oftentimes, an organization will have different port bindings for the development (Dev), quality assurance (QA) and production (Prod) environments. This can be difficult to manage when a change is needed. Although the change may work in Dev and QA, it might very well fail in Prod.
Through a master port bindings file and a Microsoft Excel spreadsheet, the BTDF creates a standard binding file dynamically for each environment. Therefore, if a change is needed, the master port bindings file may be all that is required to be changed. This greatly reduces the risk of untested changes being applied to Prod.
(3) Reduced Downtime
When considering application deployment, downtime is always a concern. Downtime can affect companies differently. Whether extended downtime means a poor customer experience, Service Level Agreement (SLA) penalties or loss of revenue, the outcome is the same, not good.
The BTDF can reduce the downtime associated with a BizTalk deployment by only interacting with the resources necessary for the dependent resources. During initial installation of a BizTalk application, shortcuts are created that will allow the application to be undeployed or redeployed. Likewise, the installation created by the BTDF will guide you step-by-step through the deployment process.
Where can I get it?
The BTDF is an open source, community supported solution and is currently available on the CodePlex website under “Deployment Framework for BizTalk (BTDF)”. You can download the .zip file containing the latest source code or simply download the installation .msi.
How do I implement it?
The deployment framework has a collection of moving parts and will take some time and effort to get it set up and configured correctly. However, once the framework is in place, deployments and redeployments will be a breeze.
Drive digital transformation with enterprise web and mobile applications through Microsoft Solutions
Explore Our Microsoft Consulting Services →
Before you begin the process of building out the deployment framework for your BizTalk solution you need to carefully think about the structure of your various BizTalk applications and the dependencies they will have with each other. If you are fortunate enough to be incorporating this framework at the beginning of your BizTalk development, then you can piggy back on top of the deployment framework Visual Studio project types included in the framework. When you begin to build your BizTalk solution make sure you think carefully about how you will deploy and undeploy the various pieces and parts so that you can avoid complicated dependencies which might complicate your deployment. If you will be adding this framework on top of existing solutions, some refactoring may be necessary if you choose to minimize your cross-application dependencies.
Create the Deployment Solution
Once you have defined your logical BizTalk applications, a BizTalk solution for each application should be created. Each of these solutions will include all of the BizTalk assets that need to be deployed, as well as the BTDF project files created using the BTDF project template. This specialized project type includes all the files necessary to build the MSI file which will encapsulate all the components needed to deploy your BizTalk solution. The main component of the project is an xml based build file in which you configure all the parts needed for your deployment. This configuration file contains the following:
A collection of true/false switches which indicate the steps to be taken during the build and deployment
The locations of the BizTalk artifact assemblies
A section for configuring specialized actions that need to be taken such as adding/removing registry entries, adding resource references, adding BRE vocabularies/policies, and so on
Define the Port Bindings
Next, you will populate an xml-based Excel spreadsheet matrix, that the BTDF created, which identifies all of the ports and their corresponding mapping to your various deployment environments. For example, if you have development, testing, and production environments then you are going to potentially have 3 different configuration settings, such as connection strings, for a single port. Once this spreadsheet is complete it will be fed into the deployment framework to automatically configure your ports during the deployment process.
The last step is to modify a single port bindings file with xml pre-processor directives which define the values to pull from the Excel spreadsheet matrix. Then, during the deployment process the framework will ask you which environment you are deploying to and the corresponding values from the Excel spreadsheet will be combined with the port bindings to create your ports.
Create the Deployment
Once everything is configured, your deployment process is as simple as building your latest source, generating a new installation .msi and executing the installation on the desired BizTalk environment.
And finally, if you need help analyzing your BizTalk applications, creating a deployment strategy or implementing a BTDF solution, Credera has the expertise to take the dread out of your BizTalk deployments.