This post was originally published here

Historically, deploying BizTalk Server solutions across environments is or can be a complicated process depending how complex is your solution. There are many ways to deploy BizTalk artifacts for example:

  • Importing them as part of an application by using the Deployment Wizard (from an .msi file), importing them using BTSTask.exe – this is the default way to deploy across environments.
    • You can replace and use allow BTSTask, PowerShell scripts.
  • Or deploy them from Visual Studio – this is the default way to deploy to your development environment.

During the years, the BizTalk Server Community created an open-source deployment framework called Deployment Framework for BizTalk (BTDF) – https://github.com/BTDF/DeploymentFramework. The Deployment Framework for BizTalk is an easy-to-use toolkit for deploying and configuring your BizTalk solutions. In reality, BTDF is an MSBuild project with custom MSBuild tasks, and it can be customizable according to customer BizTalk project needs, and it is extensible. This framework brings new capabilities and advantages to deploying BizTalk Server solutions, but it also has limitations or disadvantages.

Azure DevOps and Azure Pipelines

Microsoft has introduced automated deployment of BizTalk Applications in BizTalk Server 2016 Feature Packs using Azure DevOps (previously called Visual Studio Team Services – VSTS). In BizTalk Server 2016 Feature Pack 1, automatic deployment and application lifecycle management (ALM) experience was introduced. The automatic deployment process has been improved with the release of BizTalk Server 2016 Feature Pack 2. These features were only available on the Enterprise edition of BizTalk Server 2016.

BizTalk Server 2020 brings all these functionalities out-of-the-box across all editions: Enterprise, Standard, Development, or Branch.

To accomplish this, we need basically 3 steps:

  • BizTalk Server: Add a BizTalk Server Application project in your Visual Studio solution.
    • We will not address this topic today.
  • DevOps: Create a build agent.
  • DevOps: Create a Build and release Azure Pipeline.

Today we will talk about starting to configure your Azure Pipeline to create a BizTalk Server Build Agent.

Create a Personal Access Token

personal access token (PAT) is created in DevOps. This token is your password and is used by the DevOps build agent to authenticate. The token is only shown when you create it. After that, it isn’t shown anymore. Once you create it, you should save it to another file in a rememberable location.

To accomplish that:

  • Sign in to Azure DevOps Portal (https://app.vsaex.visualstudio.com/) using your work or school account.
    • If you do not have an account, select Create new account, and enter a name. To manage your code, choose your personal preference between Git or Team Foundation Version Control. When finished, your new account is created, you will be able to access Azure DevOps Portal.
  • Select your DevOps organization and then click the top second right-side corner icon – User settings – and select User settings > Personal access tokens.
  • The Personal Access Tokens page will be presented a list of all existing personal access tokens.
    • If you don’t have an existing PAT for your agent, select Add, and on the Create a new personal access token page, enter the following configuration:
      • On the Name property, enter a name for your PAT, for example, BizTalk Build Agent.
      • On the Organization property, leave the default organization.
      • On the Expiration (UTC) property, set an expiration date, for example, 90 days.
      • In Scopes, select Show all scopes, and then select Agent PoolsRead & manage option and Connected serverConnected server.
  • Select Create to finish the PAT creation.
    • Important Note: You need to save the token value. You need it in future steps. If you don’t know the access token value and didn’t take note of it anywhere, it cannot be retrieved. In this case, you need to create a new PAT.

Install the Build Agent

The build agent is installed on the BizTalk development computer. If using deployment groups, the build agent is installed on all the BizTalk servers you want to deploy to. Also, use these same steps to add a build computer, which might be different than the BizTalk development computer.

The following steps show you how to install the build agent on a single computer:

  • Open your Azure DevOps organization and then select the Organization settings icon and then Agent Pools.
    • Optional you can choose a Project inside your Organization and then select the Project settings icon and select Agent Pools.
  • Open Agent pools page, select the Default (Azure Pipelines) agent.
  • On the Default agent page, select New agent.
  • On the Get the agent pop-up window, select your SO, and on the Download the agent section, select Download.
    • It is important for you to save the file to your Downloads folder – on your BizTalk Server Development machine since the scripts will be referencing that folder.
    • Depending on your SO, this will download a zip file, for example, vsts-agent-win-x64-2.188.3.zip, that you will need to create the agent on the BizTalk Server Development machine.
  • The first step is to create the agent on your BizTalk Server Development machine. To do that open Windows PowerShell as Administrator and type the following command:

PS C:> cd /

PS C:> mkdir agent ; cd agent 

PS C:agent> Add-Type -AssemblyName System.IO.Compression.FileSystem ; [System.IO.Compression.ZipFile]::ExtractToDirectory(“$HOMEDownloadsvsts-agent-win-x64-2.188.3.zip”, “$PWD”)

  • Note: The vsts-agent file version changes. Make sure the zip file name is the correct one.
  • The second step, as you also see in the picture is to configure the agent. To do that type the following command:

PS C:agent> .config.cmd

  • Enter the following details:
    • Server URL: Type https://dev.azure.com/{your-organization}.
    • Authentication Type: Enter PAT.
    • Personal access token: Paste your Azure DevOps token.
    • Agent pool: Click Enter for assuming the default value.
    • Agent name: Click Enter for assuming the default value.
      • Replace: Only displays if you have an existing agent.
    • Work folder: Click Enter for assuming the default value.
    • Run agent as a service: Enter Y.
    • User account: This value is up to you, but you may run into a permissions issue. Consider entering your current logged-on account, which is a local admin.
  • To validate if the agent was properly installed, Open services.msc to see the new service called Azure Pipelines Agent (<organization>.<agent pool>.<server>). The job should be running, otherwise type the following command:

PS C:agent> .run.cmd

Now, if we go back to our DevOps organization > Organization settings > Agent pools > Default (Azure Pipelines) > Agents, you will see your BizTalk Server Development server on the list:

The post BizTalk Server: Automation Deployment with Azure DevOps – Create a build agent appeared first on SANDRO PEREIRA BIZTALK BLOG.