An overview of Azure integration services
A typical organization uses many applications that provide functionality that help them run their businesses. To do this effectively these applications need to work together to support business processes. This is where integration comes into play.
There are many products and services, both on-premises and in the cloud, that can help organizations to do this. Now that many organizations are moving their workloads to the cloud, integration in the cloud becomes more and more important. Therefor in this blogpost I will give you an overview of the set of cloud services for mission critical enterprise integration that Microsoft provides.
The set of cloud services is called integration Platform as a Service or iPaaS in short. It consists out of the following four services:
- API management (https://azure.microsoft.com/nl-nl/services/api-management)
- Logic Apps (https://azure.microsoft.com/en-us/services/logic-apps/)
- Service Bus (https://azure.microsoft.com/en-us/services/service-bus/)
- Event Grid (https://azure.microsoft.com/en-us/services/event-grid/)
In the following paragraphs I will describe what these services are and for what purposes you can use them. To show how they can work together I will conclude this post with an example scenario.
Azure Logic Apps is an orchestration or workflow service which you can use it to integrate systems and data. Basically, a Logic App is a workflow that implements a proces.
Because Logic Apps provides connectors and logic objects it is possible to design the solution without writing any code. You can for example easily connect to your on-premises SAP system, SQL databases, Azure services and to SAAS solutions. It also offers flow control objects such as conditions, for each loops, etc. As it is a serverless service there is no need to install and manage the infrastructure.
When building integrations, it is important to consider potential unavailability of systems. What if your web shop accepts an order and payment from the customer, but your ERP system is not available to handle the message? For these kind of use cases, you need to implement an asynchronous pattern.
This is what Azure Service Bus can help you with. A Service Bus will let you create a queue or topic where you can place you message on. Azure Service Bus will guarantee the delivery of this message. If your consuming system is unavailable, the message will stay on the queue/topic until the message can be processed.
Some integrations start when a message is pushed to that integration (for example API calls), but other integrations need to check if a message arrived. Imagine an integration that starts when a message arrives at a Service Bus queue, it needs to check periodically if a message arrived, even if nothing happened. This is not only wasting system resources, but it also adds a delay in the message handling.
This is the issue that Event Grid can help you solve. Many Azure services generate events when something happens. To use the same example, placing a message on a Service Bus queue will generate an event that is published in a topic. By subscribing to specific events, you can trigger an integration to start processing. This eliminates the need for polling.
Even though Service Bus and Event Grid are similar, the major difference is that Event Grid processes events and Service Bus processes messages.
Most modern applications expose functionality through API’s. With API Management you can expose both REST and SOAP API’s from your backend systems. By doing so you will create a facade of the actual backend API’s.
By using API Management, you can add a layer of security to your API’s by applying authentication, authorization and IP filtering. API management can also help you with the performance of your API’s by adding quotas and limits for specified consumers limiting the number of calls that can be made. This helps with preventing the backend API’s from being overwhelmed with requests and leading to degraded performance. By utulizing caching features you can further increase your performance.
Basically, API management can help you securely expose all your API’s as modern REST API’s.
Each service described in this post provides a specific set of functionalities. In most real-world integration you will need multiple services to create the functionality that is needed. In this paragraph I will show you an example scenario where these services come together.
In the scenario below a potential customer requests a loan from a financial services corporation via a web application (1). The web application calls an API in API management that exposes a Service Bus queue (2). The loan request is persisted on a queue. After placing the request message on the queue Event Grid generates an event (3) which triggers a Logic App (4).
The Logic App implements a business process. It first calls an external web service to calculate the risk associated to with the loan (6). It also updates the CRM system with the customer data (7) and sends the request with the risk score to the financial system (8) where the request is further handled.
With their integration Platform as a Service Microsoft offers a group of services on their cloud platform that you can use to integrate your systems. The services that you can use are:
- Logic Apps, for creating workflows
- Service Bus, for messaging
- Event Grid, for event-based communication
- API management, for exposing and managing API’s
With these four service Microsoft offers a mature and full-featured iPaas that is capable of integrating both cloud and on-premises systems.