SlideShare una empresa de Scribd logo
1 de 23
BIZTALK
DEPLOYMENT
FRAMEWORK
(BTDF)
SANDER NEFS
CLASSIC DEPLOYMENT VS
BTDF
MSI
• Pro
• Commonly known by BizTalk developers
• Cons
• Manual deployment / package creation of (non) BizTalk
artefacts
• Custom scripts required for a lot of tasks
• No Automated deployment / logging  scripts required
• No standard approach to handle multiple server
deployment / bindings / redeploy / full server install etc
BTDF
• Pro
• Components already developed, available Highly
customizable / flexible
• Automated package creation of (all) artefacts, generated
Wix MSI
• Lot’s of online resources / documentation on- and offline
available
• Cons
• Learning curve to fully use capabilities
BTDF FEATURES
• Actively maintained / supported!
• Support for BizTalk Server 2006, 2006 R2, 2009, 2010 and 2013 and BizTalk ESB Toolkit 2.x on both 32- and 64-bit Windows
• Integration with Visual Studio 2005/2008/2010/2012 menus, toolbars and output window, plus
• Templated bindings file processing that automatically targets multiple runtime environments from a single bindings file
• Extensibility through user-defined MSBuild targets and tasks (e.g. Database deployment)
• Support for deployment of various BizTalk artifacts including:
• Messaging bindings / Orchestrations / Schemas / Maps / Pipelines / Custom components (DLL's) / Custom pipeline components / Custom functoids / Rules / and
vocabularies / IIS virtual directories / Single Sign-On (SSO) applications / BAM activities / ESB Toolkit itineraries / Configuration settings infrastructure including user-
friendly settings management spreadsheet,
• Full and Fast deployment modes to reduce development cycle time
• Automated packaging of entire application into standard Windows Installer MSI file
• Automated restart of one or more BizTalk host instances and IIS or selected AppPools
• Automatic addition of BizTalk application references
• Automation of the entire BizTalk application deployment and update processes
• Support for Windows XP, Vista and 7 and Windows Server 2003 through 2008 R2
• IntelliSense and Add New Project wizard
• NET API for settings access at runtime and custom ESB Resolver
• Detailed logging for informational and troubleshooting purposes
CONSIDERATIONS
ADMINISTRATOR
• BizTalk Administrator must learn a
new way of deployment /
administration!
• Full deploy of all projects can be
scripted (undeploy, deploy) fairly
easy
DEVELOPER
• Deployment is not based on Xml
config .Config instead of user setting
in VS.Net project file (if it deploys on
my machine…it does on yours…)
• .BTDF projects are not a known type
in VS.Net, add the files manually in
the solution
• Alignment of procedures with
Administrator is essential
General
 1 .Net Solution is typically mapped
to 1 BTDF Project which leads to
an BizTalk Application
BIZTALK
DEPLOYMENT
FRAMEWORK
Usage
HOW TO USE
DESIGN TIME RUN TIME
Deployment
MSI
Build
Server
VS.Net
BIZTALK
DEPLOYMENT
FRAMEWORK
Guidelines
HOW TO USE (BIZTALK 2013)
• Install the 5.1 beta 2 (latest at this moment)
• Open the BizTalk solution
• Create a new project ‘Deployment’ 
• Select the items to be part of the deployment
• Tick ‘Only write values different from default’ 
http://www.tfabraham.com/BTDFDocs/V5_0/
HOW TO USE (BIZTALK 2013)
• Nothing is shown?
• Create a ‘Deployment’ folder
• Add the items 
• Important files
• Deployment.btdfproj
• Configuration
• SettingsFileGenerator.xml (excel file)
• Contains all the settings
http://www.tfabraham.com/BTDFDocs/V5_0/
CONCEPTS
• SettingsFileGenerator
• Configure settings per environment
• Settings are stored in SSO
• MasterBindings
• Bindings are modified with macro’s (e.g. URI), the URI is dynamically
set based on the selected environment
• Approach: No Masterbindings  Each environment will have a
‘dedicated bindings’ file
• MSBuild is used to perform the actions (all settings can be overridden
CONCEPTS
• Deployment.btdfproj (xml config file)
• PropertyGroup (1) with solution name / BTS application name
• Settings per artefact type (deploy maps, schemas etc)
• PropertyGroup (2) with MSI file name guid etc
CONCEPTS
• Deployment.btdfproj (xml config file)
• Additional / Custom PropertyGroups per build type
• ItemGroup (actual configuration of artefacts)
DEDICATED BINDINGS (1-3)
• Open the Settingsfile
• Specify the Bindingsfile for the environment
DEDICATED BINDINGS (2-3)
• Add the BINDINGS in the Solution folder
• Define to use the bindingsFileName from Excel as a property
DEDICATED BINDINGS (3-3)
• Add the BINDINGS in the BTDF
‘ItemGroup’  Additional files element
2 STEP DEPLOY/UNDEPLOY
• Consider a multi-dependent solution with a
‘decoupled’canonical model
UPDATING A REFERENCED APP
• How to update the
Common?
• Replace common is
not possible
• Remove the
dependencies delete
apps
• Versioning (complex &
timeconsuming)
UPDATING A REFERENCED
APP(BTDF)
• Redeploy based on
already deployed
environment
• Most of the steps can
easily be automated
• Consistency in
deployment
BIZTALK
DEPLOYMENT
FRAMEWORK
HelloWorld Application – suggested starting point
LAB: ‘HELLOWORLD’
• Install the 5.+ BTDF version on your environment
• Start the tutorial:
• ‘Create a Deployment Project for the HelloWorld Application’
• Goals
• Learn to use the Deployment Framework for BizTalk's Add New Project wizard
• Customize a Deployment Framework project file in the Visual Studio editor using
IntelliSense
• Configure an XML bindings file for use with the Deployment Framework project
• Deploy the application as a developer using the Deployment Framework's Visual
Studio integration
• Build a Deployment Framework MSI for deployment to a BizTalk server
• Deploy the MSI to the local machine as if it were a BizTalk server
GUIDELINES - I
Choice: Disable starting of ports etc
<StartApplicationOnDeploy>False</StartApplicationOnDeploy>
<StartReferencedApplicationsOnDeploy>False</StartReferencedApplicationsOnDeploy>
<EnableAllReceiveLocationsOnDeploy>False</EnableAllReceiveLocationsOnDeploy>
Rationale: Starting applications is useful on dev/test not on accp/prod)
Note: These settings are part of the ‘standard’ settings, which to my knowledge cannot be overwritten, therefore you should
choose the safest option.
Choice: Always use masterbindings
Rationale: Standardisation, in all application you will use, there will be some ports that use masterbindings. If this is used from
the start all projects will have the same structure. In most of the case you will end up using them.
Choice: Do not use XmlEscape
Rationale: Xml Escape will modify the binding file (by unescaping the file using a adapterXpaths.txt file in the BTDF folder), the
configuration .txt file does not include all possible xml escaped values such as WCF adapter settings, inflicting manual
changes…which means customizations…which i do not favor.
Additionally this is a hassle when using Send ports filters and making modifications, as you have to manually change the
exported bindings from XmlEscaped to unescaped…..not really ideal.
Choice: SkipIIS/Host instance restart (include in manual)
Rationale: If (this needs to be though over) you have multiple applications, it’s likely that it’s not usefull to restart IIS/Host
instances as this would be done for each application.
GUIDELINES - II
Choice: Use SSO - Settingfiles
Rationale: Standardisation - All settings that are required in your application should be stored in SSO, the BTDF can retrieve them in various
components
Choice: Use project name <Deployment> instead of <projectname>.deployment
Rationale: Standardisation, this makes it very easy to script deployments when multiple applications are used
Choice: Only configure values that are overwritten
Rationale: This prevents very long configuration files. In most project the defaults are suitable, and once a settings is required (due to a
project type) adding the setting is fairly easy.
Choice: Create folder in Project ‘DeploymentTools’ and add all tools
Rationale: Once the BTDF project has been created, you need to add all files such as (bindings, settingsfile generator, tools etc), this allows
you to add this to TFS which enables co-developers to quickly build the project
Choice: Change the toolsversion (only after error: SDC 2006 error)
Rationale: If you receive an error on SDC Task (when using FILE tasks)
Original configuration
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Installer" ToolsVersion="4.0">
New configuration
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Deploy">
GUIDELINES - III
Choice: Do I need the BTDF?
Rationale: Yes , I think in most scenarios you do, you must wonder if the learning curve for a newbie is worth the
advantage. For example, a POC which lasts for a couple of days, the learning curve might not be useful.
Choice: We will need to define each project if there is more than 1 project of the same type
Rationale: the deployment framework assumes certain naming conventions and allows you to have a short .BTDF
project file (only deviations needs to be specified), however, if you have multiple projects, you need to specify them
all! (1 project .Schemas would mean no config, an additional project ‘External.Schemas’ would mean we need to
define both Schemas projects in an ItemGroup
Feature requests
· Undeploy ESB itineraries
· Ability (or documentation how) to overwrite default settings (using parameters) such as;
‘StartApplicationOnDeploy’
- Do not GAC pipelinecomponents

Más contenido relacionado

Último

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Último (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

Destacado

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 

Destacado (20)

Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 

BizTalk deployment framework

  • 2. CLASSIC DEPLOYMENT VS BTDF MSI • Pro • Commonly known by BizTalk developers • Cons • Manual deployment / package creation of (non) BizTalk artefacts • Custom scripts required for a lot of tasks • No Automated deployment / logging  scripts required • No standard approach to handle multiple server deployment / bindings / redeploy / full server install etc BTDF • Pro • Components already developed, available Highly customizable / flexible • Automated package creation of (all) artefacts, generated Wix MSI • Lot’s of online resources / documentation on- and offline available • Cons • Learning curve to fully use capabilities
  • 3. BTDF FEATURES • Actively maintained / supported! • Support for BizTalk Server 2006, 2006 R2, 2009, 2010 and 2013 and BizTalk ESB Toolkit 2.x on both 32- and 64-bit Windows • Integration with Visual Studio 2005/2008/2010/2012 menus, toolbars and output window, plus • Templated bindings file processing that automatically targets multiple runtime environments from a single bindings file • Extensibility through user-defined MSBuild targets and tasks (e.g. Database deployment) • Support for deployment of various BizTalk artifacts including: • Messaging bindings / Orchestrations / Schemas / Maps / Pipelines / Custom components (DLL's) / Custom pipeline components / Custom functoids / Rules / and vocabularies / IIS virtual directories / Single Sign-On (SSO) applications / BAM activities / ESB Toolkit itineraries / Configuration settings infrastructure including user- friendly settings management spreadsheet, • Full and Fast deployment modes to reduce development cycle time • Automated packaging of entire application into standard Windows Installer MSI file • Automated restart of one or more BizTalk host instances and IIS or selected AppPools • Automatic addition of BizTalk application references • Automation of the entire BizTalk application deployment and update processes • Support for Windows XP, Vista and 7 and Windows Server 2003 through 2008 R2 • IntelliSense and Add New Project wizard • NET API for settings access at runtime and custom ESB Resolver • Detailed logging for informational and troubleshooting purposes
  • 4. CONSIDERATIONS ADMINISTRATOR • BizTalk Administrator must learn a new way of deployment / administration! • Full deploy of all projects can be scripted (undeploy, deploy) fairly easy DEVELOPER • Deployment is not based on Xml config .Config instead of user setting in VS.Net project file (if it deploys on my machine…it does on yours…) • .BTDF projects are not a known type in VS.Net, add the files manually in the solution • Alignment of procedures with Administrator is essential General  1 .Net Solution is typically mapped to 1 BTDF Project which leads to an BizTalk Application
  • 6. HOW TO USE DESIGN TIME RUN TIME Deployment MSI Build Server VS.Net
  • 8. HOW TO USE (BIZTALK 2013) • Install the 5.1 beta 2 (latest at this moment) • Open the BizTalk solution • Create a new project ‘Deployment’  • Select the items to be part of the deployment • Tick ‘Only write values different from default’  http://www.tfabraham.com/BTDFDocs/V5_0/
  • 9. HOW TO USE (BIZTALK 2013) • Nothing is shown? • Create a ‘Deployment’ folder • Add the items  • Important files • Deployment.btdfproj • Configuration • SettingsFileGenerator.xml (excel file) • Contains all the settings http://www.tfabraham.com/BTDFDocs/V5_0/
  • 10. CONCEPTS • SettingsFileGenerator • Configure settings per environment • Settings are stored in SSO • MasterBindings • Bindings are modified with macro’s (e.g. URI), the URI is dynamically set based on the selected environment • Approach: No Masterbindings  Each environment will have a ‘dedicated bindings’ file • MSBuild is used to perform the actions (all settings can be overridden
  • 11. CONCEPTS • Deployment.btdfproj (xml config file) • PropertyGroup (1) with solution name / BTS application name • Settings per artefact type (deploy maps, schemas etc) • PropertyGroup (2) with MSI file name guid etc
  • 12. CONCEPTS • Deployment.btdfproj (xml config file) • Additional / Custom PropertyGroups per build type • ItemGroup (actual configuration of artefacts)
  • 13. DEDICATED BINDINGS (1-3) • Open the Settingsfile • Specify the Bindingsfile for the environment
  • 14. DEDICATED BINDINGS (2-3) • Add the BINDINGS in the Solution folder • Define to use the bindingsFileName from Excel as a property
  • 15. DEDICATED BINDINGS (3-3) • Add the BINDINGS in the BTDF ‘ItemGroup’ Additional files element
  • 16. 2 STEP DEPLOY/UNDEPLOY • Consider a multi-dependent solution with a ‘decoupled’canonical model
  • 17. UPDATING A REFERENCED APP • How to update the Common? • Replace common is not possible • Remove the dependencies delete apps • Versioning (complex & timeconsuming)
  • 18. UPDATING A REFERENCED APP(BTDF) • Redeploy based on already deployed environment • Most of the steps can easily be automated • Consistency in deployment
  • 20. LAB: ‘HELLOWORLD’ • Install the 5.+ BTDF version on your environment • Start the tutorial: • ‘Create a Deployment Project for the HelloWorld Application’ • Goals • Learn to use the Deployment Framework for BizTalk's Add New Project wizard • Customize a Deployment Framework project file in the Visual Studio editor using IntelliSense • Configure an XML bindings file for use with the Deployment Framework project • Deploy the application as a developer using the Deployment Framework's Visual Studio integration • Build a Deployment Framework MSI for deployment to a BizTalk server • Deploy the MSI to the local machine as if it were a BizTalk server
  • 21. GUIDELINES - I Choice: Disable starting of ports etc <StartApplicationOnDeploy>False</StartApplicationOnDeploy> <StartReferencedApplicationsOnDeploy>False</StartReferencedApplicationsOnDeploy> <EnableAllReceiveLocationsOnDeploy>False</EnableAllReceiveLocationsOnDeploy> Rationale: Starting applications is useful on dev/test not on accp/prod) Note: These settings are part of the ‘standard’ settings, which to my knowledge cannot be overwritten, therefore you should choose the safest option. Choice: Always use masterbindings Rationale: Standardisation, in all application you will use, there will be some ports that use masterbindings. If this is used from the start all projects will have the same structure. In most of the case you will end up using them. Choice: Do not use XmlEscape Rationale: Xml Escape will modify the binding file (by unescaping the file using a adapterXpaths.txt file in the BTDF folder), the configuration .txt file does not include all possible xml escaped values such as WCF adapter settings, inflicting manual changes…which means customizations…which i do not favor. Additionally this is a hassle when using Send ports filters and making modifications, as you have to manually change the exported bindings from XmlEscaped to unescaped…..not really ideal. Choice: SkipIIS/Host instance restart (include in manual) Rationale: If (this needs to be though over) you have multiple applications, it’s likely that it’s not usefull to restart IIS/Host instances as this would be done for each application.
  • 22. GUIDELINES - II Choice: Use SSO - Settingfiles Rationale: Standardisation - All settings that are required in your application should be stored in SSO, the BTDF can retrieve them in various components Choice: Use project name <Deployment> instead of <projectname>.deployment Rationale: Standardisation, this makes it very easy to script deployments when multiple applications are used Choice: Only configure values that are overwritten Rationale: This prevents very long configuration files. In most project the defaults are suitable, and once a settings is required (due to a project type) adding the setting is fairly easy. Choice: Create folder in Project ‘DeploymentTools’ and add all tools Rationale: Once the BTDF project has been created, you need to add all files such as (bindings, settingsfile generator, tools etc), this allows you to add this to TFS which enables co-developers to quickly build the project Choice: Change the toolsversion (only after error: SDC 2006 error) Rationale: If you receive an error on SDC Task (when using FILE tasks) Original configuration <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Installer" ToolsVersion="4.0"> New configuration <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Deploy">
  • 23. GUIDELINES - III Choice: Do I need the BTDF? Rationale: Yes , I think in most scenarios you do, you must wonder if the learning curve for a newbie is worth the advantage. For example, a POC which lasts for a couple of days, the learning curve might not be useful. Choice: We will need to define each project if there is more than 1 project of the same type Rationale: the deployment framework assumes certain naming conventions and allows you to have a short .BTDF project file (only deviations needs to be specified), however, if you have multiple projects, you need to specify them all! (1 project .Schemas would mean no config, an additional project ‘External.Schemas’ would mean we need to define both Schemas projects in an ItemGroup Feature requests · Undeploy ESB itineraries · Ability (or documentation how) to overwrite default settings (using parameters) such as; ‘StartApplicationOnDeploy’ - Do not GAC pipelinecomponents