For a while now the Microsoft Azure Cloud has had a service called the Azure File Service. In this article I want to look at the option of using this with BizTalk.
How do I use it?
The below video will show you how you can set up the file share and connect to it with BizTalk.
Limitations and Constraints
I think there are a few limitations and constraints you need to be aware of if you are considering this option. These include:
- You will need to make sure TCP port 445 is open outbound from your BizTalk Server
- There are a list of features not supported by SMB which may affect some scenarios – https://msdn.microsoft.com/en-us/library/dn744326.aspx
- Possibly one of the biggest limitations is the lack of fine grained ACL’s for directories within the share. That said it’s possible to have many storage accounts so you could work around that easily for most cases.
The following are usage scenarios where I think you can potentially use Azure File Service with BizTalk.
Cloud Hosted BizTalk
In the diagram below we represent how a cloud hosted BizTalk may be used to receive files from a share in the Azure File Service. BizTalk would use the standard file adapter to send or receive files from the share. The share could be hosted in the same subscription and resource group as the BizTalk environment and effectively be considered a core part of the integration solution.
The application that wishes to send files to BizTalk could be hosted on premise and would be able to send messages to the file share just like it was any other file share. The key difference is that the application server would need to have access to the cloud over outbound port 445. The application should be using SMB 3.0 where encryption is supported for the communication.
On Premise BizTalk
In this example we may have a web application or API hosted in the cloud which users interact with. Let’s imagine the user uploads a document to the web app and the app saves the document to a file share in Azure. BizTalk could then use the file adapter to connect to the file share and collect these documents and process them into downstream applications.
In this final example lets imagine we have 2 organisations who need to exchange files with each other. Often they may use SFTP servers and other such mechanisms. Some of the main reasons for this approach is the inability to have network line of sight to a network share in both organisations without having to setup various VPN’s and servers.
In this scenario we could have both organisations who are using BizTalk (or any other integration tool with File/SMB capability) and then we could focus on testing our process quickly rather than spending ages setting up infrastructure. We could use the Azure File Share in place of an SFTP server to exchange files and prove each organisations process and data was good. We should be able to implement this quickly and without much effort and still find it has the potential to be a production option of we didn’t want to deal with VPN’s or SFTP servers.
The below diagram illustrates this option.
Even today a hell of a lot of integration scenarios we encounter still use file based communication mechanisms and being realistic we know that these scenarios are going to be around for a long time to come. Hopefully this article has shown how we can use a file share in the cloud to allow our BizTalk environment participate in a number of different scenarios where a traditional integration pattern is still leveraging the cloud to support a hybrid approach.