2. Who am I
Bart Scheurweghs
BizTalk Architect @ CNEXT
BizTalk trainer @ CNEXT
VTSP @ Microsoft
bart@cnext.eu
3. Who are you ?
Developers ?
Architects ?
Operations ?
CXO ?
4. Purpose of this session
Another view on BizTalk deployment
How to get a BizTalk Application from DEV to TEST to PROD ?
How to maintain this ? How to handle change requests ?
5. What is Microsoft offering OOB?
MSI’s
Scripting using BtsTask, Powershell
6. What do you do ?
MSI’s ?
Scripting using BtsTask, powershell
BTDF ?
AIMS for BizTalk ?
Others ?
7. Technical diagram of my first BizTalk flow
Project A
rp_A
rl_A
Adapter
OrchestrationA
rpl_A
Document C
sp_A
Map_DocA-to-DocCommon
Document A
spl_C
Adapter
8. All involved objects and their dependencies
BizTalk.System
Demo.schemas.Common
Demo.ProjectA
Demo.schemas.DocumentA
Demo.PipeLines.PipeLineA
Demo.PipeLines.PipeLineC
Demo.Maps.MapsA
rp_A
sp_A
rl_A
SchemaA
SchemaC
Map_DocA_to_Common
BizTalk Assembly
Port
location
rpl_A
Bts Assembly Artifact
spl_C
BizTalk Application
9. The project grows
Project A
rp_A
rl_A
Adapter
OrchestrationA
rpl_A
Document C
sp_A
Map_DocA-to-DocCommon
Document A
spl_C
Adapter
spl_C and DocumentC are shared objects deployed in common BizTalk Application
Project B
rp_B
rl_B
Adapter
OrchestrationB
rpl_B
Document C
sp_B
Map_DocB-to-DocCommon
Document B
spl_C
Adapter
12. What do we want ?
1) 1 click deployment
2) Unit of Deployment as small as possible
3) Minimal redeployment / downtime
4) Functional process != BizTalk Application
5) Functional process != BizTalk artifacts only
-> the full picture = including : SQL, Webservices, helperclasses
6) Different environments
7) Multi node environments
8) Developer experience
9) Operator experience
10) Manager experience
13. Can we make this happen?
Probably not
But we have a goal and will try to
get there as close as possible
14. What about differences between
environments?
1) Message processing = testable through environments
2) What about message transport ?
16. What do we need ?
1) Object model
-> so we can generate an action list
2) Easy maintenance of object model
-> auto discovery
3) Object Store
-> to store all deployable objects for
every different environment
4) A tool able to generate an action list
5) A tool able to execute an action list
17. What have we done ?
1) Object model
-> Custom deployment database
2) Easy maintenance of object model
-> MMC snap in with connection to BizTalkMgmtDb
3) Object Store
-> All deployable objects are stored into the database
4) A tool able to generate an action list
->WPF application for the user
->custom build action for TFS build server
5) A tool able to execute an action list
->WCF service on every node in the environment
The less manual action the beter, idealworld 1 clickThe smaller the package the fasterIn case of common objects, take only the objectsneededto have a succesfulldeploy6) DEV-TEST-UAT-PROD8) Do not waste my time bydefiningdeployment scripts, I want to make new developments9) If we click this button, are we sureitwillworkafterwards ?10) Can we do this over en over again