Application Lifecycle Management for BizTalk solutions is quite challenging. Many community tools are available, but it’s not straightforward to combine them into one solution. In this session, Toon will focus on how to set up Continuous Integration for your BizTalk solutions, based on experience from the field. Some tips and tricks on automatic unit testing, build, deployment and integration testing.
3. Nice to meet you
ToonVANHOUTTE
Integration Architect
toon.vanhoutte@codit.eu
+32 479 905 115
@ToonVanhoutte
+9 years Microsoft Integration
Microsoft Certified Trainer
Specific interest in ALM & B2B
AS4 OASIS Committee Member
5. Scope
➔ Focused on Continuous Integration
➔ Technical side of BizTalk ALM
➔ Based on community software
➔ On premise, although cloud is very similar
➔ Not covered in this session:
➔ TFS details, branching, versioning strategy, automatic release notes,
load testing, test coverage, check-in policies, NuGet, SCRUM,…
5
6. I’m uncertain to change a
setting of this complex flat
file schema.
I’ll make a copy of this
pipeline component. It’s
used in too many flows.
When regenerating
schemas, I often forget to
update property promotion.
Deployment is too complex
for operation team, so I
spend a lot of time on that.
Old bugs are returning in
new releases. This
regression is unacceptable.
We can’t afford a long
downtime on production for
deployments.
We need faster release
cycles to fulfill the fast
changing business needs.
Existing pain points from the field
8. Continuous Integration
8
Methodology
Code Repository
Daily Check-In
Build Automation
Test Automation
Deploy Automation
Advantages
Early bug detection
Quality of delivery
Increased release cadence
Disadvantages
Initial setup
Extra cost: hard- & software
Continuous maintenance
Return on
Investment?
9. Bringing it all together
9
BTS
CIALM
No out-of-the-box BTS support in TFS
No out-of-the-box BTS deployment tool
Integration testing instead of unit testing
Customize build workflow
Buy, DIY or use community tools
Auto testing on deployed BizTalk environment
Granularity of deployment
Fine grained solution structure
10. Scenario
10
ERP
System
Receive Port
rl_Invoices.SQL
GenericXmlReceive
SQL Debatch
Orchestration
Router
Routing
Set Destination + DestinationType
Send Port
sp_Invoice_Codit.FILE
spl_CoditInvoice
FILE
Send Port
sp_Invoice_Microsoft.FILE
spl_MicrosoftInvoice
FILE
Transform
Create
Flat File
Set
FileName
Orchestration
Currency Converter
Transform
CreateConvert Request
Transform
Merge Convert Response
Send Port
sp_CurrencyConverter.WCF
PassThruTransmit
XMLReceive
WCF
WCF
Send Port
sp_Invoice_Northwind.FILE
PassTrhuTransmit
FILE
Currency
Converter
BizTalk.Demo.ALM.Core BizTalk.Demo.ALM.Invoicing
11. UnitTesting
Tests running on the codebase (without a deployed BizTalk application)
11
➔ Use UnitTests also to increase productivity (developer tools)
➔ Create data-driven UnitTests
➔ Create a least one UnitTest per bug
➔ Focus also on negative testing
➔ UnitTests are valuable for:
➔ .NET libraries
➔ Schemas
➔ Maps
➔ Pipelines
➔ Pipeline Components
13. UnitTesting
UnitTesting of a Map
13
➔ Use BizTalk MapTest Framework
➔ Create on base test (only 1 template file to maintain)
➔ Support for generated dates and GUIDs
➔ Define multiple test cases / variations within UnitTests
• Custom libraries called from the map
• Decision logic
• Looping logic
• Grouping logic
• Sorting logic
• Calculation logic
• …
14. UnitTesting
UnitTesting of pipelines and pipeline components
14
➔ Use Winterdom PipelineTester
➔ Generate pipelines on the flow
➔ Test on message content and context:
➔ Debatching
➔ Property promotion via schemas + disassembler
➔ Property promotion via custom components
➔ Transforms or content modifications within pipelines
15. Automated Build
15
Continuous build for UnitTesting
Source Control
Check-In
Branching
Labeling
1
Build Workflow
Get Code Base
Build
Unit Testing
2
16. Automatic Deployment
Several options available
16
➔ Standard BizTalk MSI + pre/post processing scripts
➔ PowerShell + Microsoft deployment libraries
➔ BizTalk Deployment Framework (here)
➔ MSBuild Extension Pack for BizTalk (here)
➔ BtsMsiTask (here)
➔ Codit DeployFx + ALM Suite (here)
17. BizTalk Deployment Framework
Features
17
➔ Create BTDF MSI during build (without deploy)
➔ Binding File Management via Excel
➔ Automatic deployment with PowerShell
➔ Versioning of MSI
➔ Deployment on BizTalk application level
➔ Fully extensible
18. Automated Build
18
Deployment build with versioning and deployment
Source Control
Check-In
Branching
Labeling
1
Build Workflow
Get Code Base
Build
Unit Testing
2
Build Workflow
Get Code Base
Versioning
Build
Unit Testing
Deployment
Auto Deploy
Import MSI (*)
Install MSI (*)
D/T/A/P
3 ACC
PROD