At INTEGRATE 2014 Microsoft detailed the new Application platform concepts on how they were going to build their PaaS story in Azure around the Microservices architecture and how the integration capabilities would fit in. Today they released the preview for these capabilities.
The Azure Websites hosting model is being renamed to better reflect what it really is, it is now called Azure App Services. It comes out of the box with built-in DevOps, continuous integration, staging and production support, and automatic patching. App Services include all the existing capabilities of Azure Websites, Mobile Service, and BizTalk Services. You can host Web Apps, Mobile Apps, Logic Apps, and API Apps.
For the integration professionals, there are important new capabilities that are being launched which will enable integration scenario in the PaaS world of Azure. Those are specifically the API Apps which allow to discover, host, manage and monetize API’s and SaaS connectors and Logic Apps enable automation of business process execution via an easy to use visual designer.
Microsoft has been saying all along, the features we all love and care about when using BizTalk would be built as capabilities in the cloud that cannot simply be used in integration scenarios but in any application. Most of these features has been built as an API App, think of things like Validating an XML Message, transforming between messages from one schema to another, apply business rules, communicate with an LOB App or event using a transport Adapter. As for Orchestrations capabilities those are being implemented as Logic Apps that allow to control multiple API Apps to communicate with each other in a business logic, sharing information along the way and providing the logic required.
What Is An API App?
API Apps in Azure App Service make it easy to develop, publish, manage, and monetize APIs. If you have some capability you want to expose as an API you should deploy it as API App and benefit from scalable RESTful API with enterprise grade security, simple access control, automatic SDK and Access on-premises data using Hybrid Connections.
Microsoft built a significant amount of those API Apps for the preview:
- Social Connectors: Facebook, Yammer, Twitter, Chatter, Twilio
- Enterprise Connectors: Salesforce, SAP, Marketo, QuickBooks, SugarCRM
- App + Data Services: Azure Media Services, Azure Mobile Services, Azure Service Bus, Azure Storage Blog, Azure Storage Table, Azure WebJobs, Box, Dropbox, HDInsight, Microsoft SQL, Mobile App, MongoDb, Office365, OneDrive, Oracle Database, Sharepoint
- Integration: AS2, BizTalk EDIFACT, BizTalk Flat file encoder, BizTalk JSON Encoder, BizTalk Rules, BizTalk Trading Partner, BizTalk Transformation Service, BizTalk X12, BizTalk XML Validator, BizTalk XPath Extractor, Informix Connector, MQ Connector, Wait
- Protocol Connectors: File, FTP, HTTP, POP3, SFTP, SMTP
These are special types of API Apps that work as building blocks for your integration applications.
What Is A Logic App?
Logic Apps allow to automate business process execution via an easy to use visual designer, this is the Workflow/Orchestrations in the cloud. Logic Apps can be combined with API Apps and Connectors from the Marketplace to help solve integration scenarios.
Logic Apps are workflows that you can create in a graphical way to articulate business logic, Logic Apps communicate with the outside to receive or send data or even trigger its execution. The rich suite of BizTalk API Apps allows you to build for the complex work of integration.
A Walk Around The Preview
We tried the preview to view what comes in the box and how easy it is to use.
Creating a Logic App is the first logical intention when you start testing, this uses the new Azure Portal experience where you provide information in multiple blades, you simply need to provide a Name and a App Service Plan.
Once you create the Logic App you will see its blade, here you can its settings, run the App, Enable/Disable/Delete Operations, navigating to the editor or simply visualizing the execution details and information:
Then you want to start and design your Logic App, for that you click in the definition, you get a full page editor where you can define you process:
On the right hand side, you can see the API Apps available in the resource group where this API App is deployed and that can be used. To make an Logic App the first thing you need to do is define how it starts, you can make a Logic App start in multiple ways, by manually invoking it, by running it according to a schedule or by using an activating Connector. Here you have an example of a scheduled activation Connector which performs a GET every hour:
Another important feature is how to flow information between Connectors so that we are actually create a business process automation. When a Connector provides and output you see which “variables” have been made available by it in the bottom of the Connector shape. And you will be able to use those variables for the next connectors.
Once you are happy with your Logic App you can save this in the editor which will make it immediately available for execution, once an Logic App has executed you will be able to see the details of the execution from the corresponding blade, in this tracking information you can analyse the individual execution of each API App and obtain detailed information on the execution:
Here you can see the execution of one BizTalk Rules Policy with details like what was summited to it and what was the result, giving a good visibility to the whole process.
Another thing we also tested is the API Apps, and it is interesting to see which capabilities are available specially for someone that comes from a BizTalk background. To be able to use a API App in a Logic App you first need to add that API App to the same resource group of the Logic App.
When you create an API App you might be presented with a custom experience for more complex application like the BizTalk Business Rules. In this case, you have a similar experience to what you have in the BizTalk Server Rules Composer with the creation of Policies with their rules and vocabularies.
What is not there for the BizTalk guys?
What if you are using BizTalk and thinking if you can move to Azure App Platform for you integration scenarios? What is not available from what we became used to in BizTalk Server? Some of the more traditional type of EAI integration scenarios are currently not covered. Here are some of those missing capabilities:
- Control flow in the Logic Apps is still limited, the BizTalk Orchestrations allow you to run a much more complex scenario where you use control shapes like the Listen Shape, Parallel Shape or Loop. For now, you can expect the IFTTT like scenarios to be covered by Logic Apps.
- There is no easy way to make routing, pub/sub or correlation of messages easy but you can still do it by using the available connectors in combination with Service Bus Queues, Topics or even the Azure Table or Blob Storage
- Design time vs runtime experience for Logic Apps, on the of the great values of BizTalk is the separation of design time and deployment time, or even the ability to deploy new bindings in an automated way without having to go through the trouble of performing manual steps
- Reliability, no message lost guarantee, de/batching, large messages and transaction support are very niche requirements and have not been fully addressed in this release
- End to end tracking, currently there is no such thing that is equivalent of BAM, or an ability to extract important business critical information to be consumed by someone that is not interested in the technical details of the solution
- If you want to create maps you still have to rely on the BizTalk Services Mapper for the time being, but a full web version of the mapper has been promised
This is a great start for the Azure App Platform as whole and for the cloud integration scenarios, this means that integration is no longer the niche market it was and is available as part of the Azure App Platform. It will be interesting to see what is coming next. We will see how we can create complex API Apps that explore the Azure Portal capabilities and then taking them into production, making them available in the marketplace and monetizing on the creation of rich APIs. Logic Apps will certainly evolve to be a full feature workflow platform that will allow for very complex integration scenarios, all with scale and resilience built-in at the distance of a click.
I think all integration experts should go ahead and try out what is available in the Azure App Service now.
Public Announcements from Microsoft on Azure App Services:
- Scott Gu’s Announcement
- Bill Staples Announcement
- Channel9: Logic App (Josh Twist and Scott Hanselman)
- Channel9: API App (Scott Hunter and Scott Hanselman)