I believe being a software developer one of the primary goal is to help people to automate their manual process/task in their business/work to make them more efficient and productive.
And in the same way automating the BizTalk deployment process makes the team more efficient and productive.This reduces deployment time and also error during deployment, and adds stability to deployment process. Even for small environment we use should use automatic deployment process.
But here in this post I want to go a step back and discuss the process/approach to come up with automation deployment plan for your BizTalk Environment.
In my current job I do BizTalk Health Check for many customer and still I find most of them are using the manual deployment process. For one of the customer I have been assigned the task to help them to automate their BizTalk deployment process.
I can use one of the following approach to accomplish the task.
- Go through their last deployment or the current deployment (if there is any) and then create the script to automate it by using BTDF or PowerShell or something else. And once it’s complete and tested walk them through the script I have created.
- Now customer can use this for current deployment but what would happen for the next deployment which can be a
- Partial or full deployment
- Number of artifacts and application may increase\decrease.
- Chances are that they would be able to update the script for the changes or they can go back to their manual deployment if they are not able to update the script.
- They can again reach out to me or some other consultant to update the script as per the changes.
- Ask customer to explain me the current manual deployment steps. Check if deployment document exist else help them to create one. Idea here is to make them understand what exact task requires for their manual deployment and have them documented.
- Next thing would be to help them understand which all tasks in the document can be automated by using BTSTask commands . BTSTask can be used to perform most of the tasks that are found in the BizTalk Administration Console.
- Now I will ask them to create a script using BTSTask command-line tool for the task identified by referring the scripts available in SDK samples of BizTalk.
- This would give them clear picture of time and effort saved by using the scripts. For example if a deployment was taking 2 hours and after the above exercise they reduced it 1.5 hour, it’s a good value for the exercise they did.
- Now I can pitch in here and can add value by improving the script using whatever framework & technology which further reduce their deployment time and effort. For example deployment time form 1.5 hours to 1 hours and also without any further dependency on me for updating the script going forward (change/update is inevitable 🙂).
I always try to use the 2nd approach until unless customer is very much asking for the 1st one.
Feel free to share any other approach in the comment which has worked for you or can be better than above mentioned.