This blog post is to go along with my Integration Monday talk: http://www.integrationusergroup.com/biztalk-continuous-integration-continuous-deployment/ and is designed to start people thinking about Continuous Integration and Continuous Deployment for their BizTalk Solutions, later post will cover the methods and tools.
What is Continuous Integration & Continuous Deployment
CI & CD mean a number of thing to different people and technologies, for BizTalk I think CI & CD means 3 things: Automating Build, Testing and Packaging, Making Release an easily repeatable process and Reducing Human involvement.
If we look at the 1st one, Automating Build, Testing and Packaging, these 3 components have never been real easy with BizTalk, you can manually do each of these on a BizTalk developer workstation, but automating all or part of this process has taken a great deal of effort. At Mexia we have chosen to use the BizTalk Deployment Framework (BTDF) from Codeplex because it goes a very long way towards fixing the problems with BizTalk packaging and deployment, which we will look at in later posts.
The 2nd item to me is the hardest one with BizTalk if you have not automated the process, if one developer creates a deployment package (without BTDF) and then another developer creates another deployment package, it is very likely that they will be slight differences and the quality of the deployed code will suffer, I myself have even had these type of issues when the process to create a deployment package becomes more than a couple of pages of instructions, it is very prone to errors. With BTDF (or the tool of your choice) and automation this can become an easily repeatable process with consistent outcomes.
The final item it something that most BizTalk project teams with be acutely aware of, losing a developer for part or all of a day to do a release or even to make some simple configuration changes, which has a flow on effect with the team falling behind in the work for the next delivery milestone. Again if tools are used to remove the release configuration from the developers responsibility and the automating of the package creation the developers can concentrate on what developer do, develop.
Why Continuous Integration & Continuous Deployment
Many of the reason for Why do CI & CD are also defined in What is CI & CD, but I think the greatest reasons for spending the time to setup CI & CD are: consistency of delivery, reduced time to deliver and getting the developers out of the configuration loop. The easier that the build, test, package and deploy process is the more often teams will be willing to do releases, which will benefit everyone involved in the project.
The bottom line is the easier the process to more often it will be done and the more often it is done the better the quality of the final solution.
This post is designed to be the 1st of a series around BizTalk CI & CD, the next post will be hands on with the tools, below is the list of what I plan to cover in this series of posts, I will update the lists with links as I publish those posts:
- Continuous Integration with Visual Studio Team Services (VSTS)
- Continuous Deployment with Visual Studio Team Services (VSTS)
- Continuous Integration with Team Foundation Server (TFS) 2015 Update 1
- Continuous Integration with Team City
- Continuous Deployment with Octopus Deploy
Thanks for your time and I look forward to helping people on their BizTalk CI & CD journey