Pluralsight’s BizTalk Learning Path

I am excited to be part of creating the cofficia Pluralsight BizTalk Learning Path

This consists of just over 34 hours of hard core BizTalk training brought to you by Mall Milner, Mohamad Halabi, Dan Toomey, and I. 

Learning path course sequence:

BizTalk 2006 Fundamentals
Advanced BizTalk Server 2010
Intro to BizTalk Server 2013 Enterprise Service Bus (ESB) Toolkit
BizTalk Server 2013 from Ground Up: An End to End Scenario
What’s New in BizTalk Server 2013
Using Functoids in the BizTalk 2013 Mapper

Total – 34h 15m

So if you find yourself not being able to sleep at night or on 3 long 12 hour flights around the world, it is well worth the 34 hours to master your BizTalk skills

Remember: you can always watch Pluralsight courses in up to 2x speed.  That would cut the time down to almost 17 hours!

I still have a few no credit card required, 30-day unlimited free trial Pluralsight memberships available!   If interested, just fill out the form here http://www.biztalkguru.com/30-day-pluralsight-free-trial-request/

Build a Multi-Server, Configured, BizTalk 2013 R2 Domain in Windows Azure IaaS in less than 1 hour!

Build a Multi-Server, Configured, BizTalk 2013 R2 Domain in Windows Azure IaaS in less than 1 hour!

A little over 2 years ago I released a set of PowerShell scripts for auto creating a full Multi-Server BizTalk 2013 Domain inside Azure IaaS.  I spent 100’s of hours on these scripts to get them working correctly.  You can view my session at TechEd 2013 US online for more details.

I have made updates to these scripts and updated them to support BizTalk 2013 R2 and SQL 2014.  These scripts will automatically created a clean isolated 2 BizTalk Server 2013 R2 Domain using SQL 2014.  All domain user accounts are auto created.  BizTalk group and host settings are created.  The only manual intervention that is needed is to log into each server and run a PowerShell script.  In less than an hour you can have a fully configured BizTalk 2013 R2 Domain!  And since it is scripted, you can create a clean environment from scratch anytime you need one.

Note: Running these scripts will created Virtual Machines inside Windows Azure.  You will be charged for the Virtual Machines.  Make sure you understand the costs before running these scripts.

Why not use an Azure Resource Manger Template for this?  Great question!  I tried.  I spent about 40 hours trying to port these scripts into an Azure Resource Manger Template with no success.  I was unable to get the BizTalk and SQL Servers to join the domain.  Azure Resource Manger PowerShell has a new set of commands that I could of used, but they are in the process of changing – so for now keeping the scripts as-is seemed the best course of action.

You can review and download the updated scripts on MSDN – Automatic Multi-Server BizTalk 2013 R2 Domain Creation PowerShell Scripts for Azure IaaS.  If you like the scripts please rate them with a 5-star.

To run the scripts inside Visual Studio 2013 / 2015 do the following:

  1. Download them from MSDN – they are inside a Visual Studio 2013 Solution
  2. Open Visual Studio as an Administrator and open the Solution
  3. Update 3 values inside variables.ps1  It is the top 3 variables in the file.
  4. Update the top variable inside MAIN_MASTER.ps1 It is the first variable in the script.
  5. Right-click on MAIN_MASTER.ps1 and select "Execute As Script".  Wait about 45 minutes. 
  6. Log into BizTalk 02, open C:\BizTalk_Provisioning\ReadMe.docx.  Follow the instructions.  Do not close the Remote Desktop session.  The PowerShell window will open and close right away.  See details below.
  7. Log into BizTalk 01, open C:\BizTalk_Provisioning\ReadMe.docx.  Follow the instructions.  Wait about 10 minutes. Note that you have to run the last command twice.  See details below.

To run the scripts through PowerShell IDE dot he following:

  1. Download them from MSDN – they are inside a Visual Studio 2013 Solution
  2. Open Main_Master.ps1 and variables.ps1 inside PowerShell IDE, make sure to open PowerShell IDE as an Administrator
  3. Update 3 values inside variables.ps1
  4. Update the top variable inside MAIN_MASTER.ps1
  5. Run MAIN_Master.ps1 as an Administrator
  6. Once complete, Log into BizTalk 02, open C:\BizTalk_Provisioning\ReadMe.docx.  Follow the instructions.  Do not close the Remote Desktop session.  The PowerShell window will open and close right away.   See details below.
  7. Log into BizTalk 01, open C:\BizTalk_Provisioning\ReadMe.docx.  Follow the instructions.  Wait about 10 minutes. Note that you have to run the last command twice.  See details below.

This download contains the following scripts:

  • MAIN_Master.ps1 – This is the main scripts that calls all the other scripts that do all the work.
  • MAIN_RemoveVM.ps1 – This script will remove and delete everything created inside the domain.
  • MAIN_SaveMoney_StopAll.ps1 – This script to turn off all the VM’s in the domain.  You need to update 1 value in this file to run it.
  • MAIN_SpendMoney_StartAll.ps1 – This script to turn on all the VM’s in the domain.  You need to update 1 value in this file to run it.
  • variables.ps1 – Core variable file, you need to update 3 values in here.
  • Various other helper scripts and files

Detailed Post Script Configuration Steps (this is outlined in the ReadMe.docx downloaded to each server)

On BizTalk 02:

  1. Once the PowerShell scripts are complete log into the BizTalk 02 server with the domain admin account.
  2. Open a PowerShell windows as Administrator.

  3. Change directories as follows “cd c:\BizTalk_Provisioning”
  4. Run the following command “MicrosoftCloudProvisioningLocalService.exe” – you should see this running as a service.

  5. Leave the Remote Desktop Session open and go to the BizTalk 01 Server.

On BizTalk 01:

  1. Once the PowerShell scripts are complete and the service is started on BizTalk 02, log into the BizTalk 01 server with the domain admin account.
  2. Open two PowerShell windows as Administrator.

  3. In the first window, change directories as follows “cd c:\BizTalk_Provisioning”
  4. Run the following command “MicrosoftCloudProvisioningLocalService.exe” – you should see this running as a service.

  5. In the second window, change directories as follows “cd c:\BizTalk_Provisioning”
  6. Run the following command “.\Microsoft.Cloud.Provisioning.Client.exe .\multinodeconfigDemo.xml” – you should see several pop-up windows.  This should fail.

  7. Run the following command again “.\Microsoft.Cloud.Provisioning.Client.exe .\multinodeconfigDemo.xml” – you should see several pop-up windows again but this time it should Complete.

  8. The end result is a fully configured, multi-server BizTalk Domain inside Windows Azure!

Make sure you use the provided scripts to start, stop, and remove the artifacts created.  I look forward to your feedback!

BizTalk and SQL Azure Publisher Name, Offer, and SKUs for Azure Resource Manager PowerShell Module

With the introduction of Azure Resource Manager (ARM) the world of Infrastructure as a Service (IaaS) inside Azure changed – for the better.

ARM introduced a new way to organize and deploy resources across various aspects of Windows Azure.  Now you can create configuration scripts for complex Azure scenarios that include storage, web apps, virtual machines, networks, SQL databases, and more.  

With these changes introduced the AzureResourceManager PowerShell module.  I could write many posts on this along, but not to get into to many details you now have two ways to do many things in Windows Azure using PowerShell.  This gets a little more complex considering additional breaking changes are coming soon when Switch-AzureMode is deprecated and the introduction of both traditional and classic versions of some Azure Artifacts like storage and virtual machines.   Going forward I would recommend using AzureResourceManager based PowerShell commands for all new scripts.

Never the less, the way to create a new Virtual Machine is a little more complex now using AzureResourceManager.  This is due to the greatly enhanced feature set in Azure that we just did not have a few years ago.  As part of these changes, you need to call out your base image disk differently than before.  Lets take a look at the two options.

Using Azure Service Manager (ASM – default module in PowerShell right now)

$imageWindows = ‘bd507d3a70934695bc2128e3e5a255ba__RightImage-Windows-2012-x64-v13.5’
$MyDC = New-AzureVMConfig -name $vmnamePDC -InstanceSize $sizePDC –ImageName $imageWindows

Using Azure Resource Manager (ARM- will be the new default)

$VirtualMachine = Set-AzureVMSourceImage -VM $VirtualMachine –PublisherName 2012-R2-Datacenter –Offer BizTalk-Server –Skus 2013-R2-Developer –Version "latest"

With Azure Service Manger you only need to supply the operating system image name and this can easily be found doing a single PowerShell query. 
With Azure Resource Manger you need to specify a Publisher Name, Offer, SKU, and Version of the Operating System Azure Image you want to use.  It is not as easy or straight forward to get these values.

Below I have put together a quick reference list related to BizTalk Server, SQL Server, and Windows as well as the PowerShell scripts to get these values for any other operating system image.

Publisher

Offer

SKU

MicrosoftBizTalkServer

BizTalk-Server

2013-Developer

MicrosoftBizTalkServer

BizTalk-Server

2013-Standard

MicrosoftBizTalkServer

BizTalk-Server

2013-Enterprise

MicrosoftBizTalkServer

BizTalk-Server

2013-R2-Developer

MicrosoftBizTalkServer

BizTalk-Server

2013-R2-Standard

MicrosoftBizTalkServer

BizTalk-Server

2013-R2-Enterprise

MicrosoftSQLServer

SQL2008R2SP3-WS2008R2SP1

Enterprise, Standard, Web

MicrosoftSQLServer

SQL2012SP2-WS2012

Enterprise, Standard, Web *

MicrosoftSQLServer

SQL2012SP2-WS2012R2

Enterprise, Standard, Web *

MicrosoftSQLServer

SQL2014-WS2012R2

Enterprise, Standard, Web *

MicrosoftSQLServer

SQL2014SP1-WS2012R2

Enterprise, Standard, Web *

MicrosoftSQLServer

SQL2016CTP2-WS2012R2

Enterprise

MicrosoftWindowsServer

WindowsServer

2008-R2-SP1

MicrosoftWindowsServer

WindowsServer

2012-Datacenter

MicrosoftWindowsServer

WindowsServer

2012-R2-Datacenter

MicrosoftWindowsServer

WindowsServer

2016-Technical-Preview-3-with-Containers

MicrosoftWindowsServer

WindowsServer

Windows-Server-Technical-Preview

* some of the SQL SKUs contain other types of optimized versions.

If you want to get the Publisher Name, Offer, and SKU for other Azure Images you can use these PowerShell commands.

# Gets all Publishers in a specific datacenter
$locName="West US"
Get-AzureVMImagePublisher -Location $locName | Select PublisherName | Select * | Out-Gridview -Passthru

# Gets all Offers for a given Publisher in one location
$locName="West US"
$pubName="MicrosoftWindowsServer"
Get-AzureVMImageOffer -Location $locName -Publisher $pubName | Select Offer | Select * | Out-Gridview -Passthru

# Gets all SKUS for a giving Offer for a given Publisher in one location
$locName="West US"
$pubName="MicrosoftWindowsServer"
$offerName="WindowsServer"
Get-AzureVMImageSku -Location $locName -Publisher $pubName -Offer $offerName | Select Skus

Enjoy.

Data Synchronization Options Between Multiple Systems

While I usually only blog about BizTalk and Windows Azure, for this post I am going for something different.  This post is talking about data synchronization between different computers systems; like between a laptop and desktop.

 I am sure I am like most readers who have more than one computer at home.  I specifically have one main desktop and one main laptop.  I use the laptop when I travel and I like to have a lot of data from home with me just in case I need it.  This includes about 1 TB of pictures, movies, client data, and other files. 

Below I outline two options to help you keep data in sync between multiple systems. 

Option 1: Synchronization via the Cloud

Cloud based storage is the new thing.  In the past few years numerous services have launched such as Dropbox, Google Drive, and Microsoft OneDrive (just to name a few).  They offer much more than just storage in the cloud.  They offer a whole cloud-based content management system with the ability for collaboration with per user permissions, download links, sharing large files that could not be sent via email, and more.

I currently use Dropbox for syncing frequently used and smaller files.  I also use Dropbox for sharing files with Pluralsight, the training company I contract with to create online training courses like “Intro to BizTalk Server 2013 Enterprise Service Bus (ESB) Toolkit“.  With Dropbox, sharing large files with my editor is as easy as drag and drop into my Dropbox folder.

Pros of using Cloud-based Synchronization:

  • Automatic, real-time synchronization when all systems are online
  • Typically simple and easy to use interfaces
  • Ability to share large files with others through a download link
  • User permission management tools

Cons Include:

  • Data is in the cloud
  • Upload speed is dependent on the internet connection
  • Limited amount space in most free accounts
  • Usually a monthly or yearly charge for more space and additional features

Option 2: Software synchronization

Software synchronization typically runs on a schedule to either copy all the data from one system to another or do a compare to ensure only new & changed files are copied over.

When looking for the best software for me needs I evaluated several different options I found online.  I selected SyncBackFree by 2BrightSparks over 5 years ago and have since  upgraded to a paid version.  The free version is really free with no ads and packed full of features.  Since it is free, it is well worth everyone giving it a try.

They offer two paid versions: SyncBackSE and SyncBackPro.  The SE version includes support and the ability to copy open and locked files.  The Pro version includes support for syncing with popular cloud platforms and scripting support for custom integration into your workflows.  See a complete feature comparison

I use software synchronization as my primary source of keeping data desktop and laptop data in sync.  This is due to the large volume of data I want to have access to both at home and on the road.  Plus I would not want client files or code exposed on the internet in the event of a hack on one of the cloud providers. It is now part of my packing routine to run the synchronization program right before I pack up my laptop and first thing when I get home from a trip.

I also use SyncBackPro to sync data between my computer and my network attached storage (NAS) for nightly scheduled backups.

Pros of using Software-based Synchronization:

  • Synchronization of unlimited amounts of data
  • Fast synchronization using your home network
  • Secure
  • Free software options available
  • Can be used for NAS storage backups

Cons Include:

  • Data can be out of sync until the program runs
  • If not scheduled, the user needs to remember to run the program before disconnecting a device like a laptop
  • No ability to share large files with others

 

What type of data sync do you use between systems?

Limited Number of Free 30-day Pluralsight Trials Available

I have a limited number of no credit card required, unlimited, 30-day trials for Pluralsight available.

Request your free trial at: http://www.biztalkguru.com/30-day-pluralsight-free-trial-request/

With these accounts you have full access to all 3700+ courses for 30 days. 

This is a great way to boost your Tech and BizTalk skills for free.

Make sure you check out my BizTalk Learning Paths to see what areas you need to brush up on.

How To Convert a VMware vmkd Disk to a Hyper-V vhdx Disk

How To Convert a VMware vmkd Disk to a Hyper-V vhdx Disk

I have been using VMware off and on for years mostly to maintain environments for older version of BizTalk like BizTalk 2009 and BizTalk 2010. That said, I have been stuck using VMware version 9 because I did not want to keep paying the upgrade fees each year to get the latest version.  With my recent upgrade to Windows 10, my VMware 9 installation ran into some issues.  I was no longer able to connect to an internet connection inside the VM.  I decided the time was right to migrate to Hyper-V on Windows 10.

I found a lot of articles about converting vmkd files to a vhdx but they seemed to state you needed to use Microsoft Virtual Machine Converter witch in the GUI and in the online documentation talked about only supporting VMware Server products. 

The reality is Microsoft Virtual Machine Converter works for direct conversion of a single vmkd file into a vhdx.  The catch is you need to use the PowerShell command and not the GUI.

If you want to convert a single VMKD file into a VHDX file do the following:

  1. For each Virtual Machine you want to convert, first remove the VM Tool and do a full shutdown
  2. Remove VMware from your computer (if you install Hyper-V first you will run into un-installation issues with VMware.  You’ll have to edit the undeploy script to remove it)
  3. Enable Hyper-V Windows 10  
  4. Download and install Microsoft Virtual Machine Converter 3.0 (Link)
  5. Open PowerShell or PowerShell ISE as an Administrator
  6. Enter the following (update the paths and file names as needed):
    Import-Module "C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1"
    ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "D:\YourPathToVMKD\ZZZZ.vmdk" -DestinationLIteralPath "C:\PathToVHDX"
  7. This process will take about an hour for a 50 GB disk.  See the image below.
  8. Once complete, create a new Generation1 Hyper-V virtual machine using the newly created vhdx image

PS: While this post is targeted toward virtual machines running locally, at this point 90% of my virtual machines are hosted in Azure using BizTalk 2013 / BizTalk 2013 R2.  I only use virtual machines for maintaining legacy environments.

Hope this helps someone out!

 

What’s New in BizTalk 2013 Course has lots of Relevant Content for BizTalk 2013 R2

What’s New in BizTalk 2013 Course has lots of Relevant Content for BizTalk 2013 R2

I have revamped and updated my site: http://www.whats-new-in-biztalk-2013.com/  This site is dedicated to my course at Pluralsight with the same name.  While this course was geared to BizTalk 2013, a lot of the content is still relevant for BizTalk 2013 R2.

This course has 6 modules:
BizTalk Server 2013 Overview
Using Windows Azure Service Bus with BizTalk 2013
REST Adapter Deep Dive
SharePoint Adapter Enhancements
Using BizTalk 360 with BizTalk 2013
Setting up BizTalk 2013 in Windows Azure IaaS

Of these, the module on the BizTalk REST Adapter is one of the best in the course!  It is a great resources for anyone working with the REST Adapter in any version of BizTalk.

In the SharePoint chapter, I walk through integration with SharePoint Online in Office 365.

Check out the http://www.whats-new-in-biztalk-2013.com/ to see a 7-minute sample video.

As always, anyone can get a free 7 day, 200 minute trial of Pluralsight.

Pluralsight Free Trial

BizTalk Enterprise Service Bus (ESB) Training on Pluralsight

A little over a year ago I released a new Pluralsight training course called “Intro to BizTalk Server 2013 Enterprise Service Bus (ESB) Toolkit”.

This course is still getting a lot of views and the overall feedback has been positive.  If you are new to working with the BizTalk ESB or you are looking for more information on what it can do, this is a great course for you.  The whole course is just under 2 1/2 hours long.  If you are short on time, you can watch it at 2x speed!

I setup a simple one page website that outlines this course, has a sample video, and details on how to get your free 7-day trial of Pluralsight to watch the whole course for free.

Check out: http://www.BizTalkESBToolkit.com for all the details.

Enjoy.

BizTalk Server Learning Path for Pluralsight

BizTalk Server Learning Path for Pluralsight

I have been an author with Pluralsight for the past 3 years.  Before I was an author I was always a huge fan and I found that for just $29 a month for unlimited access to all training courses is a deal!  They now have over 3,700+ courses to pick from.  What is even better you can get a free 7-day, 200 minute trial or for a limited time get your first month for only $9.95.  See details below.

One of the best covered subjects in the Pluralsight library is Microsoft BizTalk Server!  This is a little surprising because BizTalk is a relatively niche product.  Never the less, they currently have 14 courses covering BizTalk.  Below is a complete list of the BizTalk courses at Pluralsight. 

What I hear a lot is with so many courses and some of them being a little older, what is the best learning path for someone wanting to learn BizTalk?  Lets take a look at my recommendations.

Brand New to BizTalk Server

  1. Consider Mastering Visual Studio 2013 or C# Fundamentals with C# 5.0
  2. BizTalk 2006 Fundamentals
  3. Advanced BizTalk Server 2010
  4. Intro to BizTalk Server 2013 Enterprise Service Bus (ESB) Toolkit
  5. Using Functoids in the BizTalk 2013 Mapper (if you need to do lots of maps)

 

Some Experience with BizTalk Server

  1. Advanced BizTalk Server 2010
  2. Intro to BizTalk Server 2013 Enterprise Service Bus (ESB) Toolkit (if you need to use the ESB)
  3. BizTalk Server 2013 from Ground Up: An End to End Scenario
  4. What Is New in BizTalk Server 2013
  5. Using Functoids in the BizTalk 2013 Mapper (if you need to do lots of maps)

Anyone can get a free 7-day, 200 minute trial of Pluralsight using the banner link below.

Pluralsight


Pluralsight is currently running a special so for a limited time you can get your first month for $9.95!  Then it’s the normal price of $29 after that.  This offer may end at anytime so act fast. 

New Pluralsight Course: Traveling and Loyalty Programs Best Practices

New Pluralsight Course: Traveling and Loyalty Programs Best Practices

While my main passion in life is Integration with Microsoft Technologies, a close second is traveling.  With traveling comes my “addiction” to earning airline miles, hotel points, and chasing status!

The way I see it is by using miles and points we can travel cheaper or even for free! 

Have you ever wondered if it was really worth it though?  Maybe you think you do not travel enough to benefit from miles and points?  Or do not know the first thing about Loyalty programs?  I cover this and more in my training course with Pluralsight titled “Traveling and Loyalty Programs Best Practices”. 

It is broken down into 5 modules:

    • Traveling Developer Best Practices
    • Air Travel Deep Dive and Airline Best Practices
    • Detailed Airline Loyalty Program Review
    • Ins and Outs of Earning and Using Hotel Points
    • Driving Off with Car Rental Credits

Here are two demo videos outlining the basics of loyalty programs and why having status matters.

[View:http://www.youtube.com/watch?v=7Kqd9wp_zwU]

[View:http://www.youtube.com/watch?v=CVsLFVeqcY0]

If you already have a Pluralsight account you can watch the course now.  If you do not have an account, you can get a free 10 day, 200 minute trial using the banner below.  What is even better – my course is 193 minutes long so anyone can get a free trial and watch the whole course.

Pluralsight Free Trial

Looking forward to hearing feedback, comments, and suggestions!