Tag Archives: Migration vs Upgrade

Planning Migration to BizTalk 2020 – Why and how?

Watch the Video – Migration to BizTalk 2020 – Why and How?

As BizTalk 2020 is out most of the customers have either started migration to planning to migrate.

In this short blog, I will try to give a broader picture of planning BizTalk Migration and answer most basic questions.

So, let’s start with the most mammoth question first –

Question 1 – Why to Migrate?

There are many reasons to Migrate and can be broadly summarized as below –

  1. Avail Microsoft Support
    • BizTalk 2016 Mainstream Support Ends – 1st November 2022
    • All other previous versions like 2013R2, 2013 or 2010 etc. are long out of mainstream support
    • Upgrade to latest software version of OS, VS, SQL & BizTalk
  2. Enhance BizTalk Environment
    • For better infrastructure, performance, topology – HA/DR
  3. New features
    • BizTalk 2020 is loaded with new features of Hybrid Integration, Improvised Security (TLS1.2, GDPR compliance), Better Monitoring etc.
    • Feature packs – Get new features faster, without waiting for new versions
    • New Features for Developers and Administrators
  4. Move to Cloud
    • Ability to run on Azure VM as IaaS

Question 2 – What are my Migration Options?

a) Migrate to Azure –

Migration from BizTalk to Logic Apps/Azure Integration Services –

FeaturesBizTalk ServerAzureCapability/Description
Message RoutingBizTalk MessageBoxAzure Service Bus Queues & Topics, Event GridUse Topics and subscriptions, Event-driven approach
SchemasBizTalk SchemasLogic Apps along with Integration AccountSchemas can be uploaded to Integration Accounts or converted to JSON Schema and used
MappingBizTalk Mapper, XSLT, C#Azure Integration AccountUpload map(XSL file) to integration account
PipelinesBizTalk Pipeline and pipeline componentsLogic Apps along with Function AppLogic App for workflow and Function App for pipeline component logic
AdaptersOut-of-the-box adapters (application and protocol)Logic AppConnectors
OrchestrationBizTalk OrchestrationLogic AppDefine Workflow definition
RulesBizTalk Rule Engine (BRE)Function AppCreate custom Azure Functions to perform BRE like operations
BAMBizTalk Activity MonitoringLogic App, OMSTracked-properties, OMS portal. Specially Log Analytics for Logic Apps is very helpful
EDI Parties, Aggreement, PartnersBizTalk EDIAzure B2B integration using Logic Apps and Integration AccountUse Integration accounts to manage EDI Parties, Aggreements, Partners, upload certificates, maps, schemas etc.
API (REST, SOAP)Bindings in adapters (WCF)API ManagementAPI Management offers OpenAPI Swagger, WSDL and many other API related functionalities. API Logic can be written in Logic Apps and Function App
OperationsBizTalk Admin ConsoleAzure Portal, OMS, ARM-templates, PowerShell, CLIManaging Azure Services
MonitoringBizTalk Health MonitorAzure Monitor, Application InsightsAuzre OMS offers complete monitoring solution. Can also use Serverless360.
ArchivingBizTalk databases (Archive)Azure Storage, Application Insights, Log AnalysisLogging & Tracking

Refer below articles for more detail –

Migration BizTalk to Azure

https://www.serverless360.com/blog/migrating-biztalk-to-azure

b) Migrate to BizTalk Server 2020 –

  • In-Place Upgrade
  • Migrate to New Environment
    • As-Is Migration
    • BizTalk Server Migration Tool
  • Migrate and Improve
    • Traditional Migration of every solution
    • Possible enhancement of code, removing/replacing deprecated items

Let’s understand these options in detail –

In-Place Upgrade

Upgrading of the existing BizTalk Server 2016 Infrastructure to BizTalk Server 2020(In House Upgrade).

In-Place Upgrade Pros & Cons –

Advantages –

  • Extremely minimal efforts and time to upgrade
  • One click upgrade of BizTalk within the existing infrastructure.

Disadvantages –

  • Can only be done with N-1 Version
  • High Risk of Failure – Big stack to upgrade, must be compatible
    • OS, SQL, VS, BizTalk, 3rd Party softwares etc.
  • As-Is Upgrade – No change to infrastructure or code.
  • Code changes later will require upgrade to new VS, rebuild etc.
  • This approach is only suitable for small businesses with simpler integration

Migration – Parallel New Setup

Advantages –

  • Migration can be done in phases
  • Can scale up infrastructure
  • No downtime as we will have parallel environments
  • Can do the enhancements like replace deprecated features, code enhancements etc.

Disadvantages –

  • Requires a lot of efforts as all the applications need to be rebuilt, deployed and tested
  • Time taking, costly and lots of monotonous activities

Question 3 – I chose Migration to parallel environment. Can it be automated?

Option 1 – Migration Options – BizTalk Migration Tool(MSIT)

Microsoft’s internal team has provided a tool which assists heavily in as-is migration.

Refer https://docs.microsoft.com/en-in/archive/blogs/biztalk_server_team_blog/announcing-biztalk-server-migration-tool

Migration Tool Features –

Traditional Migration –

High Level Steps involved –

  • Recreate BizTalk Servers 2020 environment with desired (supported) Hardware & Software’s.
  • Application Level Migration
    • Uprade to Latest Visual Studio
    • Change of .Net Framework
    • Incorporate references and 3rd Party Softwares
    • Rebuild Code
    • End to End Testing
  • Possible Enhancements if any

Question 4 – Can we automate BizTalk Traditional Migration?

Yes, you can create One click Upgrade & Migration of thousands of BizTalk Solutions following below steps –

Major Operations to Automate –

  • Upgrade to Latest Visual Studio using Command line –

devenv {SolutionFile|ProjectFile} /Upgrade [/Out OutputFilename]

  • Rebuild Solutions – Use VS command line –

devenv SolutionName /Rebuild [SolnConfigName [/Project ProjName [/ProjectConfig ProjConfigName]] [/Out OutputFilename]]

  • Change DotNet Framework Version for all Projects – Specially helpful for class libraries – Pipeline components, custom functoids, custom adapters, Helpers

Replace TargetFrameworkVersion section in project files (.btpproj) with target framework

<TargetFrameworkVersion>DotNetTargetFramework</TargetFrameworkVersion>

  • Add BTDF Project or BizTalk Deployment project to solution

Use a template Deployment Folder with all the required files, update it with proper values at runtime

Refer below article for detailed implementation –

BIZTALK AUTOMATED MIGRATION

https://prashantbiztalkblogs.wordpress.com/2020/08/28/biztalk-automated-migration/

Question 5 – What’s New in BizTalk 2020?

I’m sure many of you must be already aware of the new features, so I’m bringing this topic in the end. It’s better to refer MS Official articles for more detail. I will just provide a brief summary.

Refer – What’s New in BizTalk Server 2020

https://docs.microsoft.com/en-us/biztalk/install-and-config-guides/whats-new-in-biztalk-server-2020

Support for newer platforms –

  • Visual Studio 2019
  • Windows Server 2019, Windows Server 2016, Windows 10
  • SQL Server 2019, SQL Server 2017, SQL Server 2016 SP2
  • DotNet Framework 4.7.2 or above
  • Office 2019, Office 2016

Hardware and Software Requirements for BizTalk Server 2020

New Office 365 Adapters – SMTP & POP3 Adapters are deprecated and replaced by Office 365 Adapters
– Adapter for Mail – Send and receive messages using Office 365 e-mail
– Adapter for Schedule – Set and update appointments using Office 365 schedules
– Adapter for Contact – Define people and groups using Office 365 contacts

Note – A new BizTalk TMS service will run in BizTalk application server, which will be responsible to get token for every office 365 account and cache it.

Better Integration with Azure – Hybrid Integration
– Logic Apps Adapter
– Service Bus Adapter
– Event Hubs Adapter
– Integration with API Management
– Publish Orchestration/Schema endpoints via APIM
– Publish APIs to external, partner & internal developers to unlock the potential of their data and services
– Adapter for Blob Storage
– Read and write binary files in Azure Blob Storage

Deployment and Administration Enhancements –

  • Design and Deploy with VSTS
    • Aplication Lifecycle Management to deploy and update BizTalk Server instances using Visual Studio Team System (VSTS)
  • Backup to Blob Storage
    • Backup BizTalk Server database job log files to Azure Blob Storage
  • Advanced Scheduling
    • Set up recurrence on BizTalk Server receive locations with greater precision using time zones, months, weeks, and days

Security Enhancements –

  • Transport Layer Security 1.2
    • Securely deploy BizTalk Server using TLS 1.2 authentication and encryption
  • SQL Server Encrypted Data
    • Read and write to SQL Server always encrypted columns using BizTalk Adapter for SQL Server

Enhanced Administration

  • REST APIs
    • Manage BizTalk environments using standard RESTful Web services APIs. Can create BizTalk 360 like portal yourself.
  • Read-only Operator Role
    • Facilitate dev ops model, provide production stamp without ability to update anything
  • Group Managed Service Accounts
    • Extend windows GMSA support to BizTalk operations and services
    • No need to change passwords anymore with GMSA
  • Audit Log
    • Making BizTalk further secure by maintaining audit trails of all management operation – One of the most important feature for auditing

Enhanced Analytics and Reporting

  • Application Insights
    • Send BizTalk tracking data to Application Insights for extensible analytics – understand Trends on usage, performance, custom business metrics
  • Event Hubs
    • Send BizTalk Server tracking data to Event Hubs
  • Power BI
    • Analyze & report BizTalk tracking data using Power BI. Use operational data templates for visualizations and dashboards

Few Other Important Enhancements –

  • XSLT 3.0 Support
    • Out of box wiring to work with Saxon XSLT3.0
  • SQL Availability Group support for BAM DTS Package via SSIS Catalog
    • Helpful for HA of BAM DBs
  • Partially disabled receive locations
    • Allows Fault Tolerance
  • Throughput improvements for Dynamic Send Ports with Ordered Delivery
  • Support for SSO Affiliate applications in SFTP adapter

Deprecated Features

ProgramStatusReplacement
POP3 and SMTP adaptersDeprecatedOffice 365 adapters
Support for ACS authentication in adaptersRemovedSAS authentication
SOAP adapterDeprecatedWCF-BasicHttp Adapter
Old SQL adapterRemovedWCF-SQL Adapter
BPEL supportDeprecatedNone
JDE OneWorld adapterDeprecatedNone
OWC redistRemovedNone
BAM PortalDeprecatedNone
WCF-NetTcpRelay adapterDeprecatedNone
SamplesRemovedRemoved from BizTalk Server installation.

Hope this article helps you in you BizTalk Migration Planning.

Feel free to contact me in case of any query. Thanks.

Contact Me:- 

@Gmail@Facebook , @Twitter, @LinkedIn @MSDNTechnet, @My Personal Blog 

Related Blog – BizTalk Migration Tool Demo

BizTalk Automated migration Tool | Prashant BizTalk And Azure Integration Blogs (wordpress.com)

Contact Me –

Check out my other blogs –

Logic Apps Secure SQL Connection String in Azure Key Vault

While using SQL Connector in Logic Apps we don’t get a straightforward way to fetch/store connection string in Key Vault or in config. By default, the connection string we provide goes and sits in the Configurations as shown in the pics below and is in plaintext format. The regular process to use SQL Connector -…

Save Full File in SQL table Column (varbinary) and read the contents back in t

What if you needed to save full file as-is to a SQL Server table column. I ran into a similar scenario and had to save CSV Files in a table. For this we created a table with a column of type “varbinary” CREATE TABLE [dbo].[TableWithCompleteFiles]([SNo] [int] IDENTITY(1,1) NOT NULL,[FileName] varchar NULL,[FileContent] varbinary NULL) ON [PRIMARY]…

Export SQL Table content as CSV File to a File Location

Recently, I got a request to save the contents of the table to a File. Wroking Command – Above commands will fail with below error – Msg 15281, Level 16, State 1, Procedure xp_cmdshell, Line 1 [Batch Start Line 43]SQL Server blocked access to procedure ‘sys.xp_cmdshell’ of component ‘xp_cmdshell’ because this component is turned off…



Advertisement

BizTalk Server Migration from 2010 to 2013 R2- Why & How

This document is intended to give an overview of why & how migration from BizTalk Server 2010 to 2013 R2 can be accomplished. It also attempts to aggregate known issues or probable challenges which can erupt during this process.

Why to Migrate

Mainstream Lifecycle of BizTalk 2010 is going to end on 1/12/2016 post which Microsoft Support is limited and for extended support you will have to purchase Extended Support within 90 days of mainstream support end (which can be missed easily).

BizTalk Version Mainstream Support End Extended Support End
BizTalk Server 2010 1/12/2016 1/12/2021
BizTalk Server 2013 7/10/2018 7/11/2023
BizTalk Server 2013 R2 7/10/2018 7/11/2023

Read more about Lifecycle Information for Microsoft Server Products Support

There are lots of disadvantages of being in extended support:

  • Non-Security hotfix support will require extended hotfix agreement, purchased within 90 days of mainstream support ending
  • You incident support will be chargeable
  • You cannot make warranty claims
  • You cannot request design changes and feature requests

You probably do not want to run your business on limited support, so it’s better to upgrade if your current version is already in extended support or your mainstream support is coming.

Planning Migration

Microsoft always claims that the upgrade will be seamless and will not affect anything. However, there is always a big risk of something going wrong. Because the stack we are upgrading has lots of things like Operating System, .Net Framework, SQL, BizTalk etc. so we need to be super careful.

Upgrade vs. Migration

Two approaches can be considered:

· Upgrading of the existing BizTalk Server 2010 Infrastructure to BizTalk Server 2013 R2(In House Upgrade)

· Building a new BizTalk Server 2013 R2 Infrastructure to co-exist with the existing BizTalk Server 2010 Infrastructure to allow for gradual migration of BizTalk Applications

Benefits of In-House Upgrade

This allows you to upgrade BizTalk within the existing infrastructure. For ex- If you have a standalone BizTalk Server 2010 server, you can upgrade Operating System, SQL, BizTalk etc. just by clicking on the installer and proceeding with Upgrade option.

For more details refer In-house BizTalk Upgrade or Upgrading to BizTalk Server 2013 from BizTalk Server 2010-2009

UpgradeImage

Disadvantages of In-house upgrade

· As many softwares like Windows OS, SQL, Visual Studio, BizTalk etc. needs to be upgraded, there is higher risk of failure.

· Generally we would like to upgrade/enhance the hardware as well (better CPU, RAM, OS to 64bit etc.) which is not possible in this case.

This approach is only suitable for small businesses with simpler integration.

Migration

Here the BizTalk environment must be recreated on an operating system supported by BizTalk Server 2013 R2 and later all other upgraded applications needs to be deployed.

Steps to perform Migration

1) Recreate BizTalk Servers 2013 R2 environment with desired and supported Hardwares and Softwares.

BizTalk Server 2013 R2 Supported Softwares

Microsoft Windows Windows Server 2012 R2, Windows Server 2012, Windows 8.1, Windows 7 SP1.
Internet Information Services (IIS) The version that comes with the operating system. KB 224609 lists the versions.
Microsoft .NET Framework .NET Framework 4.5
Microsoft Visual Studio Visual Studio 2013
Microsoft SQL Server SQL Server 2014 or SQL Server 2012 SP1

Refer Hardware and Software Requirements for BizTalk Server 2013 and 2013 R2 for more details.

Follow How to install & Configure BizTalk Server 2013 R2 document for installing and configuring BizTalk.

2) Upgrade existing BizTalk Applications to latest version

a) Copy all the existing projects(folders) to newly created BizTalk 2013 R2 Servers

b) Open each solution one by one which needs to be migrated in Visual Studio 2013, this will automatically open a migration wizard. Make sure Target Framework is .Net Framework 4.5 for all projects. Finally a “Migration Report” will be generated, as shown in pic below. Go through the report to see if it has any error message.

MigrationPopUp

Migration Report

c) Ensure to change the .Net Framework versions for all related class libraries (helper class/dlls) manually to .NET 4.5 versions, by default Helper classes (Class Library) will not be upgraded.

HelperClass.NetFramework

d) Rebuild all the applications and fix any build errors.

e) Upgrade/Replace any obsolete method with their latest version. Ex- Use “System.Configuration.ConfigurationManager.GetSection” instead of “System.Configuration.ConfigurationSettings.GetConfig”.

f) You may also have to upgrade/modify your code to incorporate changes occurred in Standard External Libraries.

Ex-In our case we were using older version of “Microsoft Enterprise Library” dll which was later upgraded to 6.0 which made us to change our implementation/code as well.

g) Ensure to modify deprecated Adapters. For example SQL & SOAP adapters are deprecated in BizTalk 2013 R2, so they must be replaced by their corresponding WCF Adapters.

Note: – Deprecated doesn’t mean non-availability, it means that though you are able to use these adapters in current version of BizTalk but in future version they might get removed. Microsoft even may deny providing support. Ex- SQL adapter was deprecated with BizTalk Server 2009 was released and is now unsupported in BizTalk Server 2010 onwards.

Read here for more details.

h) Take necessary steps for upgrading any other dependencies if required.

Later these applications can be used for regular deployment in any BizTalk environments.

Note: – All Applications should be thoroughly tested in all Pre-PROD environments.

Ideally Migration Effort is minimal as most of the work is done by the wizard, but BizTalk being a middleware depends on many external systems like Databases, SAP, SFTP etc. and so the main cost/effort is of Thorough Testing.

Also, if you decide to perform Code Refactor/Enhancement efforts will be increased accordingly. For example- If you have any SOAP Web Service (.asmx) and you want to upgrade it to WCF (.svc) it will need extra efforts.

Hope it helps.

Contact Me:- 

@Gmail@Facebook , @Twitter, @LinkedIn @MSDNTechnet, @My Personal Blog