azure integration services - .net framework

167
Azure Integration Services Karim Vaes Specialist – Azure Application Development @kvaes

Upload: others

Post on 02-Oct-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Azure Integration Services - .NET Framework

Azure Integration ServicesKarim Vaes

Specialist – Azure Application Development

@kvaes

Page 2: Azure Integration Services - .NET Framework

Agenda• Digital Transformation

powered by Integration

• Azure Integration Services

APIs API Management

Workflows Logic Apps

Messages Service Bus

Events Event Grid

Page 3: Azure Integration Services - .NET Framework

Why is integration more

important now than ever?

Page 4: Azure Integration Services - .NET Framework
Page 5: Azure Integration Services - .NET Framework
Page 6: Azure Integration Services - .NET Framework

Integration scenarios

Page 7: Azure Integration Services - .NET Framework

Integration challenges

Page 8: Azure Integration Services - .NET Framework

Integration Platform as a Service

Page 9: Azure Integration Services - .NET Framework

Azure Integration Services

Page 10: Azure Integration Services - .NET Framework

APIs Workflows

Messages Events

Page 11: Azure Integration Services - .NET Framework

API Management Logic Apps

Service Bus Event Grid

Page 12: Azure Integration Services - .NET Framework

Azure API ManagementPublish APIs safely and connect to backend systems hosted anywhere

• Work with any host, API, and scale

• Attract more developers

• Secure and optimize your APIs

• Gain insights into your APIs

Page 13: Azure Integration Services - .NET Framework

Azure Logic Apps

Automate workflows and orchestrate business processes easily

• Out-of-the-box connectors reduce integration challenges

• Connect and integrate data from the cloud to on-premises

• B2B and enterprise messaging in the cloud

• Powerful web-based workflow designer

Page 14: Azure Integration Services - .NET Framework

Azure Service Bus

Scalable and reliable cloud messaging as a service

• Simplify enterprise cloud messaging

• Build reliable, scalable cloud solutions

• Implement complex messaging routing

Page 15: Azure Integration Services - .NET Framework

Azure Event Grid

Simplify event-based app development with a publish-subscribe model

• Simple HTTP-based event delivery

• Build better, more reliable applications through reactive programming

• Focus on product innovation

Page 16: Azure Integration Services - .NET Framework

Azure Integration Services

Page 17: Azure Integration Services - .NET Framework

A complete, industry leading integration platform

That is simple to use yet powerful

That is tried and trusted

Integrated and cohesive

Where you need it

Our Vision

API

ManagementLogic Apps Service Bus Event Grid

Integration for the many, not the few

Page 18: Azure Integration Services - .NET Framework
Page 19: Azure Integration Services - .NET Framework

Business

Integration

Specialist

Integration

Developer

Page 20: Azure Integration Services - .NET Framework

Bring your technology investments together

Azure servicesOn-premises or cloud-based apps

Packaged or SaaS apps

Page 21: Azure Integration Services - .NET Framework

© Microsoft Corporation

Learn more about Azure Integration Services

Microsoft Integration Platform as a Service

White paper Introducing Azure Integration Services

Gartner’s Magic Quadrant for Enterprise Integration Platform as a Service

Azure Essentials – Integrating your Apps with Azure

White paper Driving Digital Transformation in Today’s API Economy

Integration Services Customer Stories

Integration Services Reference Architecture

Page 22: Azure Integration Services - .NET Framework

©Microsoft Corporation

Azure

A New Free Whitepaper…

https://aka.ms/integrationpaper

Page 23: Azure Integration Services - .NET Framework

API Economy

Page 24: Azure Integration Services - .NET Framework

.”

- .

Page 25: Azure Integration Services - .NET Framework

Incremental Revolution

Digital

Transformation

Agile

Mobile

Machine Learning

Customer Centered Design

Data Driven Decision Making

Automated Marketing

Data Science

DevOps

Cloud

Page 26: Azure Integration Services - .NET Framework

Application Programming Interface (API)

A set of procedures or protocols that allow the data and functionality of an application or service to be accessed and integrated into another

application or service.

Page 27: Azure Integration Services - .NET Framework

What’s in common?

Mobile

Cloud

Computing

Internet

of

Things

Machine

Learning

Software

as a

Service

Blockchain

APIs

Page 28: Azure Integration Services - .NET Framework

APIs: Connecting applications

Page 29: Azure Integration Services - .NET Framework

Benefits of APIs

Lower

TCO

Highly scalable

business models

Foster

innovation

Expand

market reach

Page 30: Azure Integration Services - .NET Framework

Strategic value of APIs

Business models

Channels

Ecosystems

Mobility

User experience

Crowdsourcing

Agility

Empowerment

Productivity

User engagement Ecosystems Multi-modal IT

Based on Gartner research note “Articulating the Business Value of APIs”

Anne Thomas and Kristin R. Moyer

24 March 2016

Page 31: Azure Integration Services - .NET Framework

APIs: Internal architecture for the Enterprise

MAXIMISE IP REUSE ACCELERATE

DEVELOPMENT

CONSISTENCY OF

INFORMATION

CONTROL ACCESS INTRAPRENEURSHIP INSIDE-OUT

TRANSFORMATION

Page 32: Azure Integration Services - .NET Framework

.”

- .

Page 33: Azure Integration Services - .NET Framework

©Microsoft Corporation

Azure

The rise of the API Economy

TECHNOLOGY

TRENDS

NEW BUSINESS

STRATEGIES

NEW

REGULATIONS

TECHNOLOGY

STANDARDS

Page 34: Azure Integration Services - .NET Framework

Commercial Models in the API Economy

API Commercial

Models

Developer Pays

Tiered

Pay As You Go

Unit-based

Freemium

Developer Gets

Paid

Ad Revenue-

ShareAffiliate

Cost Per Action Cost Per Click Referal

One-time

Recurring

Indirect

Internal ROIContent

AcquisitionSaaS

Included

Upsell

Traffic

Generation

Page 35: Azure Integration Services - .NET Framework

Who are building successful API businesses?

Page 36: Azure Integration Services - .NET Framework

©Microsoft Corporation

Azure

Risks of exposing APIs

CYBER ATTACKS OVER EXPOSURE OF

ASSETS

REPUTATION

DAMAGE

CANNIBALIZATION

OF CORE BUSINESS

Page 37: Azure Integration Services - .NET Framework

Who is using API Management?

Page 38: Azure Integration Services - .NET Framework

Joining the API Economy

UNDERSTAND THE

VALUE PROPOSITION

DETERMINE

MONETISATION

STRATEGY

ASSESS TECHNICAL

SKILLS

UNDERSTAND DATA

PRIVACY

IMPLICATIONS

MANAGE SECURITY

POLICIES

DEFINE LEGAL

TERMS AND

CONDITIONS

PLAN THE PRODUCT

LIFECYCLE

Page 39: Azure Integration Services - .NET Framework

API Management

Page 40: Azure Integration Services - .NET Framework

API Management

The process of creating and publishing APIs, enforcing their usage policies, controlling access, supporting the subscriber community, collecting and analyzing usage statistics, and reporting on performance.

Page 41: Azure Integration Services - .NET Framework

APIs as products

How do you make your legacy API modern?

How do you protect your core business systems?

How do you enforce your IT and business policies?

How do you engage with developers?

How do you reduce “Time to First Successful Call”?

How do you measure their use and impact?

API Management

Page 42: Azure Integration Services - .NET Framework

Roles of an API management platform

API RegistryFeatures

Structures

Capabilities

Sensitivities

API GatewayManifestation

Security

Entitlement

Standardisation

Logging

Developer PortalLearning

Exploration

Implementation

Feedback

Page 43: Azure Integration Services - .NET Framework

Developer portal

Publisher portal

Gateway

Key Features

Hosted anywhere.

Developed using any

technology.

Page 44: Azure Integration Services - .NET Framework

.”

-

Page 45: Azure Integration Services - .NET Framework

Azure API Management

Cloud hosted, turnkey solution

Works with any host, API, and scale

Promotes and supports developer engagement

Secures and optimizes APIs

Provides API insights and analytics

Page 46: Azure Integration Services - .NET Framework

Integration with the Azure ecosystem

Page 47: Azure Integration Services - .NET Framework

©Microsoft Corporation

Azure

API Management - a hub for enterprise APIs

Consume PublishMediate

Azure portalGatewayDeveloper portal

Abstract

Secure & protect

Evolve

Monitor

Analyze

Productize

Monetize

Discover

Learn

On-board

Try

Get support

SDKs and samples

Page 48: Azure Integration Services - .NET Framework

API ManagementDeep Dive

Page 49: Azure Integration Services - .NET Framework

There is a policy for that

Encapsulate common API management functionsAccess control, Protection, Transformation, Caching, …

Mutate request context or change API behaviorAdd a header or throttle for example

Set in the inbound and outbound directions

Applied at a variety of scopes or on errorScope determines which APIs are affected

Can define custom scopes in addition to four available b default

Composed into a pipeline from effective scopesDegree of control over inheritance of scopes, i.e. <base/> element

Don’t delete <base/> inadvertently

Page 50: Azure Integration Services - .NET Framework

Policy scopes

global

product

api

operation

to backend

from backend

from caller

to caller

GET /foo/bar HTTP/1.1

Host: api.constoso.com

Key: 01234567890123456789

/foo

/bar

Page 51: Azure Integration Services - .NET Framework

©Microsoft Corporation

Azure

Policy expressions

C# “snippets” embedded in policy documents

Have read-only access to the request context

Can only use whitelisted .NET types

Dynamically configure and conditionally execute policies

Page 52: Azure Integration Services - .NET Framework

Façade and front door

Developer portal

Azure portal

Gateway

Publish

Mediate

Consume

contosoapi-foo.azurewebsites.com

Page 53: Azure Integration Services - .NET Framework

contosoapi-foo.azurewebsites.comcontosoapi-bar.azurewebsites.com

Façade and front door

Gateway

Mediate

contoso.azure-api.net/fooapi.contoso.com/foo

Page 54: Azure Integration Services - .NET Framework

Security and protection

• Username/Password

• Microsoft account

• Google account

• Facebook account

• Twitter account

• Azure AD (Premium)

• Azure AD B2C (Premium)

• Delegated• Key

• OAuth 2

• OpenID Connect

• Client certificate

• IP filter

• Rate limits and quotas

• Azure account

• RBAC

• HTTP Basic

• Mutual certificate

• Shared secret

• IP filter

• VNET/NSG

Developer portal

Azure portal

Gateway

Publish

Mediate

Consume

Page 55: Azure Integration Services - .NET Framework

VNETs and Hybrid

Developer portal

Azure portal

Gateway

Publish

Mediate

Consume

VNET

Page 56: Azure Integration Services - .NET Framework

VNETs and Hybrid

Gateway

Mediate

VPN

VNET

Page 57: Azure Integration Services - .NET Framework

©Microsoft Corporation

Azure

Multi-region and scaling

27 public regions in Americas, Europe, Asia and Australia

6 US government and DoD regions (preview)

Preview in China!

Page 58: Azure Integration Services - .NET Framework

©Microsoft Corporation

Azure

Multi-region and scaling

Page 59: Azure Integration Services - .NET Framework

©Microsoft Corporation

Azure

Multi-region and scaling

Page 60: Azure Integration Services - .NET Framework

©Microsoft Corporation

Azure

Multi-region and scaling

Page 61: Azure Integration Services - .NET Framework

Versioning is a highly debated subject

Version or not?

Semantic versioning?

What is a breaking change?

Where to place version information?Path? Query? Header? Media type?

What format to use?Number? Date? Name?

Page 62: Azure Integration Services - .NET Framework

Our approach to versioning

Versioning is opt-in

Choose appropriate versioning scheme for an API

Create new API versions as first-class objects

Revise in-use APIs with confidence

Make developers aware of revisions and versions

Page 63: Azure Integration Services - .NET Framework

A note about Swagger (Open API)…

Page 64: Azure Integration Services - .NET Framework

Swagger became OpenAPI Specification

Page 65: Azure Integration Services - .NET Framework

©Microsoft Corporation

Azure

Page 66: Azure Integration Services - .NET Framework

DevOps Integration

https://github.com/Azure/azure-api-management-devops-example

Page 67: Azure Integration Services - .NET Framework

Azure API Management

Cloud hosted, turnkey solution

Works with any host, API, and scale

Promotes and supports developer engagement

Abstracts, protects and optimizes APIs

Provides API governance, insights, and analytics

Page 68: Azure Integration Services - .NET Framework

Stay in touch

Page 69: Azure Integration Services - .NET Framework

Logic Apps

Page 70: Azure Integration Services - .NET Framework

Azure Logic Apps

• Create business processes and workflows visually

• Integrate with SaaS and enterprise applications

• Unlock value from on-premises and cloud applications

• Automate Enterprise Application Integration , Electronic

Data Interchange, and business processes

• Leverage the Microsoft Cloud to enhance integration

solutions

Page 71: Azure Integration Services - .NET Framework

Azure Logic Apps

Fast integration using innovative Visual Designer

Easy workflow creation with triggers and actions

More than 200 connectors to mashup

applications, data and services

No code logic: If, For Each, Do Until, variables and

much more

Built for mission critical 24x7 Enterprise

Integration

DevOps built-in: Create, deploy, manage and

monitor

Page 72: Azure Integration Services - .NET Framework
Page 73: Azure Integration Services - .NET Framework

At the center

Connect on-premises, hybrid

and cloud applications

Run mission-critical, complex

integration scenarios with ease

Page 74: Azure Integration Services - .NET Framework

Connected

Built-in connectivity to 200+ SaaS cloud

services, file providers, databases, web

APIs, productivity apps, and more

Connect to on-premises systems via

Data Gateway

Pluggable extensibility via Custom

Connectors to integrate existing LOB

systems into Logic Apps including SOAP

support

Page 75: Azure Integration Services - .NET Framework

SAP ECC / S/4 HANA connector

• Easy bi-directional SAP integration with Azure

• Send data to SAP ECC and S/4 HANA systems

• Push data from SAP

• Put and Get data from Logic Apps

• IDOC, RFC and BAPI support

• No SAP system footprint

• Generate schemas for mapping

• http://aka.ms/saplogicapps to get started

Page 76: Azure Integration Services - .NET Framework

B2B and EDI Features

• X12

• EDIFACT

• AS2

• RosettaNet (preview)

• Trading Partner Management

• XML processing

• Data Mapping – XSLT 1.0, 2.0, 3.0 and Liquid

Page 77: Azure Integration Services - .NET Framework

Inline CodeJavaScript

• Write code in Logic Apps

• Reference Logic App tokens directly in your

code

• Pass structured results back to Logic Apps

• JavaScript support today

• PowerShell coming soon

• C# and more on roadmap

• http://aka.ms/inlinecode to get started

Page 78: Azure Integration Services - .NET Framework

IBM 3270 Screen Scraping

• Drive mainframe applications via their

screens – “RPA”

• Simple to use Logic Apps connector

• Create mapping and navigation

• 5250, CICS and Host File planned

Page 79: Azure Integration Services - .NET Framework

Developer-centric

• Visual Studio 2019

• Visual Studio Code

• Testability – Static Results

• DevOps

Page 80: Azure Integration Services - .NET Framework

Azure Hybrid Integration Platform

Connect on-premises data and

applications with SaaS, PaaS

and cloud applications

Run mission-critical, complex

integration scenarios with ease

Connect to Azure services with

dozens of Azure connectors

Connect with business partners

Page 81: Azure Integration Services - .NET Framework

Integration Service Environments

• VNET connectivity

• Private static outbound IPs

• Dedicated compute

• Isolated storage

• Higher data transfer rate

• Rules-based Auto-scale

• Flat cost

Page 82: Azure Integration Services - .NET Framework

A complete integration platform

Page 83: Azure Integration Services - .NET Framework

Example - Enterprise integration using message queues and events

https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/enterprise-integration/queues-events

Page 84: Azure Integration Services - .NET Framework

References

Logic Apps Documentation http://aka.ms/logicapps-docs

Logic Apps Blog http://aka.ms/logicappsblog

Logic Apps Monthly Webcast http://aka.ms/logicappslive

Microsoft Integration on Channel 9 https://channel9.msdn.com/Blogs/Microsoft-Integration

Logic Apps Ideas http://aka.ms/logicapps-wish

Page 85: Azure Integration Services - .NET Framework

Logic AppsDeep Dive

Page 86: Azure Integration Services - .NET Framework

Recurrence & Adv. Scheduling

Polling

Webhook

Request

Page 87: Azure Integration Services - .NET Framework

Triggers

An event that starts a workflow instance

Two TypesPolling Trigger

Push Trigger

Not all connectors support triggersOnly specific connectors

Only for specific actions

Page 88: Azure Integration Services - .NET Framework

Recurrence

88

Uses the Schedule – Recurrence connector

Specify how often to start a new instance

Can specify when recurrence should startUseful for controlling time it will run

Page 89: Azure Integration Services - .NET Framework

Polling Triggers

89

Most connector-based triggers use polling

Frequency can be specified

If no events fetched, action still billed

ExamplesService Bus Queues / Topics

Blob Storage

Azure Queues

Event Hubs

Dynamics

Page 90: Azure Integration Services - .NET Framework

HTTP & API Triggers

90

Kinds of Polling Triggers

When frequency is hitCall an external HTTP or API

Start workflow with results

API:API App published on App Service

Page 91: Azure Integration Services - .NET Framework

Request Trigger

91

Push Trigger

Exposes Logic App as an HTTP Endpoint

Uses POST by defaultBut can specify the method

Can receive parameters in URI / Query{parameterName}

Body can be JSONDefine a schema for body

Used to support Nested Workflows

Page 92: Azure Integration Services - .NET Framework

Request / Response

92

If only Request TriggerReturns “202 Accepted” immediately

Can use Response action to:Set HTTP status

Set HTTP headers

Set response body

Page 93: Azure Integration Services - .NET Framework

WebHook Trigger

93

Push-based Trigger

On Save:logic app registers with remote API

Remote API invokes Logic App through

HTTP requests

On Deleted:Logic app unregisters with remote API

Page 94: Azure Integration Services - .NET Framework

WebHook Trigger

94

Page 95: Azure Integration Services - .NET Framework

Debatching

95

Uses “splitOn” the trigger

Alternative to handling array of data in

ForEachStarts a new Workflow Instance for each part

Each instance can be resubmitted

independently

Each instance has the same Correlation ID

Page 96: Azure Integration Services - .NET Framework

Invoke APIs &

Services

Behaviors

Flow Control

Variables

Message Handling

Expressions & Operators

Page 97: Azure Integration Services - .NET Framework

Variables

97

Use “Initialize Variable” to create new one

Supported Data Types:Boolean

String

Integer

Float

Array

Object

Retrieve variable value through

expression:@variable('variableName')

Page 98: Azure Integration Services - .NET Framework

Data Operations

98

Data conversionsGenerate CSV / HTML

Parse JSON

Data ProcessingFiltering arrays

Querying arrays

Join array elements into a string

Author a JSON object

Page 99: Azure Integration Services - .NET Framework

Miscellaneous

99

Page 100: Azure Integration Services - .NET Framework

Expressions

Conditions

Switch Blocks

ForEach

Do Until

Page 101: Azure Integration Services - .NET Framework

Workflow ExpressionsAny input that will be dynamic (change every run) is an expression

@triggerBody() @body(‘actionName’) @items()

@guid() @utcnow() @rand(0, 2)

@json() @xml() @formDataValue(‘actionName’)

Page 102: Azure Integration Services - .NET Framework

@Used to indicate an expression, can be escaped with @@

e.g. @UtcNow()

Page 103: Azure Integration Services - .NET Framework

( )Encapsulate expression parameters

e.g. @length(‘Hello World’)

Page 104: Azure Integration Services - .NET Framework

{ }Curly braces means string. Same as doing @string(), but allows for interpolation

e.g. This is @{add(1,1)} == @concat(‘This is ’, string(add(1,1)))

Page 105: Azure Integration Services - .NET Framework

[ ]Used to parse properties in JSON objects

e.g. @body(‘JsonBody’)[‘person’][‘address’][‘streetName’] 🙂

Page 106: Azure Integration Services - .NET Framework

Conditions

106

IF/Else statement

Condition evaluates to Boolean value[Yes] branch

[No] branch

Is a billable action

Page 107: Azure Integration Services - .NET Framework

Condition

107

By default, simple conditionIs equal to

Is not equal to

Is greater than

Is greater or Equal to

Is less than

Is less than or equal to

Custom expression can be definedOnly in advanced mode

Page 108: Azure Integration Services - .NET Framework

Switch

108

Like a Switch / Case statement

A single input value

Uses equality comparison

[N] case blocks

1 Default Block

Page 109: Azure Integration Services - .NET Framework

ForEach

109

Executes 1..N actions for each item

in an array

Can have 1 or more child actions

Maximum 100,000 items

Pre-filter array using Query action if

necessary

Page 110: Azure Integration Services - .NET Framework

ForEach – Parallel / Sequential

110

Parallel

• Used by Default

• Default of 20

• Maximum 50

Sequential

• Optional

• Enabled in settings

Page 111: Azure Integration Services - .NET Framework

Do Until

111

Runs at least once

1 minute delay after each iteration

Iterates until limits are reachedCondition is true, or

Timeout expires, or

Max iterations are reached (up to 5000)

Used to wait for Async operationsInvoking long running workflow / http

Page 112: Azure Integration Services - .NET Framework

Er

Expressions

Conditions

Switch Blocks

ForEach

Do Until

Page 113: Azure Integration Services - .NET Framework

Retry Policies

113

Automatic retries for any action that failed429 or 5xx error

By default: 4 retries, 20 second interval

Policy can be customized per action

Retry Policy can be disabled (None)

Page 114: Azure Integration Services - .NET Framework

Scopes

114

Groups multiple actions

Can be nested

When an action in a scope fails, execution

can jump to next step after scope

Page 115: Azure Integration Services - .NET Framework

Run After

115

Order in Logic Apps is built out of Run-After chains:Every action specifies after which action it should run

Workflow is not a strict sequence

By default, Run-After is configured to run “on success”

You can specify multiple conditions

Page 116: Azure Integration Services - .NET Framework

Run After - Failure

116

You can change default flow:Run this step only if previous step fails

Allows for compensating actions

Use @result('action name') to get detailed information of errorThis returns an array

Page 117: Azure Integration Services - .NET Framework

Run After - Parallelism

117

Run After can also introduce parallel branches of execution

Can also be used to rejoin parallel branchesSpecify multiple parent actions

Page 118: Azure Integration Services - .NET Framework
Page 119: Azure Integration Services - .NET Framework

Triggers & Run History

Trigger HistoryPopulated when trigger runs

Indicates if any workflows were fired

Inputs & Outputs can be obtained

Run HistoryPopulated when a new workflow instance is created

Visual representation of execution

Can review inputs & outputs for every step

Page 120: Azure Integration Services - .NET Framework

Triggers & Run History

120

Data retained for 90 days

Can only be searched by Instance Identifier

Page 121: Azure Integration Services - .NET Framework

Resubmission

121

Run History allows you to “resubmit” a workflow instance

Resolve issues manually and process messages again

Design workflows to support resubmission

Batching

Completing queues

Often requires using nested logic-apps design

Page 122: Azure Integration Services - .NET Framework

Diagnostics Logs

122

Can be turned on to persist / export diagnostic dataStorage Account (retention can be specified)

Stream to Event Hub

Send to Log Analytics

Two kinds:WorkflowRuntime

Metrics

Page 123: Azure Integration Services - .NET Framework

Using Log Analytics

123

Can connect logic app to OMS workspaceturn on diagnostics

Add the “Logic Apps Management (Preview)” solution to OMS Workspace

Page 124: Azure Integration Services - .NET Framework
Page 125: Azure Integration Services - .NET Framework

Security – Authorization on HTTP endpoints

125

• All calls are done over HTTPS

• Request should be authenticated with Shared Access Signature (SAS)

• HMACSHA256 signed with access key

• Specifies HTTP methods allowed

• Access keys can be rotated

• Invalidates any existing tokens

Page 126: Azure Integration Services - .NET Framework

Security – IP Restrictions

126

Used to control where HTTP calls are allowed fromAny IP

Only other Logic Apps (any subscription)

Specific IP Ranges

IP Restrictions can also be applied to run history APIs.

More complex security:Put Logic Apps behind API Management

Page 127: Azure Integration Services - .NET Framework

Limits – HTTP Requests

127

Limit Value

Request Timeout 120 seconds

Message Size 100MB (depends on connector)

Expression Evaluation Limit 131,072 characters

Retry Attempts 90 (default 4)

Retry Max Delay 1 day

Retry Min Delay 5 seconds

These limits apply to a single HTTP request or connector call

Page 128: Azure Integration Services - .NET Framework

Run Duration and Retention

128

These limits apply to a single workflow run

Limit Value

Run Duration 90 days

Storage Retention 90 days from start time

Min recurrence Interval 1 second

Max recurrence interval 500 days

Page 129: Azure Integration Services - .NET Framework

Looping and Debatching Limits

129

These limits apply to a single workflow run

Limit Value

ForEach items 100,000

Until Iterations 5,000

SplitOn items 100,000

ForEach Parallelism 50 (default 20)

Page 130: Azure Integration Services - .NET Framework

Throughput Limits

130

These limits apply to a single workflow run

Limit Value

Action executions per 5 minutes 100,000

Actions concurrent outgoing calls ~2,500

Runtime Endpoint: Concurrent Incoming Calls ~1,000

Runtime Endpoint: Read calls per 5 minutes 60,000

Runtime Endpoint: Invoke calls per 5 minutes 45,000

Page 131: Azure Integration Services - .NET Framework
Page 132: Azure Integration Services - .NET Framework

Pattern: Claim Check

132

Purpose• Avoid sending large payloads on Logic App Messages

Description• Store payload in Storage Blob

• Send metadata in message to Logic App (say, ServiceBus)

• Include URL of payload in message

Page 133: Azure Integration Services - .NET Framework

Pattern: Nested Workflows

133

Purpose• Support easier resubmission of messages for re-processing in case of failures

Description• Split workflow in two:

• Receiver (receives request, sends reply if needed)

• Processor (processes one message)

• Allows resubmission of Processor instance only

• Receiver workflow can do debatching

• Can re-process individual messages rather than entire batch

Page 134: Azure Integration Services - .NET Framework

Pattern: In-order Processing

134

Purpose• Process events in the order they arrive

Description• Use transport capable of order (like Service Bus Queue)

• Use a singleton workflow

• Make ForEach sequential (remove parallelism)

Page 135: Azure Integration Services - .NET Framework

Pattern: Keep messages in Queue on failures

135

Purpose• Prevent lost messages due to transient failures

Description• Use a peek-lock trigger to receive messages from Service Bus queue

• If processed successfully, complete the message (remove from queue)

• On failure, message eventually goes back to queue to get reprocessed

• Consider moving messages to dead-letter as an option

• Note: Be careful with retries, as lock could expire while waiting for retries to

complete

Page 136: Azure Integration Services - .NET Framework

Pattern: Maximum Throughput

136

Purpose• Maximize processing capabilities in the platform

Description• Increase batch sizes (for triggers that support it)

• Use multiple logic apps sharing a connection or use multiple connections

Page 137: Azure Integration Services - .NET Framework
Page 138: Azure Integration Services - .NET Framework

Logic App Deployment

138

ARM

Resource

Workflow

Definition

Connections

Page 139: Azure Integration Services - .NET Framework

Logic Apps – ARM Resource

139

1 per Logic App

Resource of type Microsoft.Logic/workflows

Defines:Pricing Plan

Location

Workflow definition

Host information

Page 140: Azure Integration Services - .NET Framework

Logic Apps – Workflow Definition

140

JSON document describing workflow

Stored in the definition property of the ARM resource

Usually has parameters for things such as connections

Page 141: Azure Integration Services - .NET Framework

Logic Apps - Connections

141

A connection stores:Metadata for a connector

Securely stores credentials for the connector

Is an ARM resource of type Microsoft.Web/connections

A connection:Can be used by more than one logic app

Must be in same Resource Group as logic app

Page 142: Azure Integration Services - .NET Framework

Exporting Logic App Template

142

Use ArmClient + LogicAppTemplateCreator:https://github.com/jeffhollan/LogicAppTemplateCreator

Exports Logic App + Connectors to new ARM Template

Adds basic parameters

armclient token $subscriptionId | `Get-LogicAppTemplate -LogicApp $appName `

-ResourceGroup $resourceGroup `-SubscriptionId $subscriptionId | `

Out-File template.json

Page 143: Azure Integration Services - .NET Framework

Authorizing connections

143

Some connections can be completely scripted:Example: Service Bus connection resource includes connection stringOAuth-based connections require explicit authorization stepGo into portal and complete authorization processUse https://github.com/logicappsio/LogicAppConnectionAuthOAuth authorization process requires manual intervention

Page 144: Azure Integration Services - .NET Framework

Azure Logic Apps Tools for Visual Studio

144

Create/Edit logic app and get deployable

ARM template

To use:Create new Azure Resource Group project

Add new Logic Apps resource to template

Right click and select “Open with Logic Apps

designer”

Page 145: Azure Integration Services - .NET Framework

Service Bus

Page 146: Azure Integration Services - .NET Framework

Azure Service Bus

Auto-complete

Peek-lock and complete/abandon

Immediate triggering

High throughput

Page 147: Azure Integration Services - .NET Framework

The basics of a queue

Page 148: Azure Integration Services - .NET Framework

Topics & Subscriptions

“type” = “order”

“type” = “quote”

Topic

Subscription 1

Subscription 2

Page 149: Azure Integration Services - .NET Framework

Relay: Real-time communication proxy

Firewall Firewall

Page 150: Azure Integration Services - .NET Framework

How Relay works

Firewall Firewall

Page 151: Azure Integration Services - .NET Framework

Where does Service Bus fit in?

Decoupling and providing durability are primary drivers for using Service Bus

Frontend / UX Backend / Processing

Queue

Page 152: Azure Integration Services - .NET Framework

Service Bus Capabilities

Scheduled delivery

Time to live

ForwardTo

Defer

Sessions

Batching

Ordering

Auto-delete on idle

OnMessage

Duplicate detection

Lambda Filters

Actions

Transactions

Poison message handling

Page 153: Azure Integration Services - .NET Framework

Event Grid

Page 154: Azure Integration Services - .NET Framework
Page 155: Azure Integration Services - .NET Framework
Page 156: Azure Integration Services - .NET Framework
Page 157: Azure Integration Services - .NET Framework

Azure Event Grid

Page 158: Azure Integration Services - .NET Framework

Benefits

Page 159: Azure Integration Services - .NET Framework

PubSub for two different models

Service BusEnterprise Messaging

Event GridReactive Programming

Page 160: Azure Integration Services - .NET Framework

Event Grid: Manage all events in one place

Azure Functions

Logic Apps

Azure Automation

WebHooks

Event Hubs

Storage Queues

Hybrid Connections

IoT Hub

Blob Storage

Resource Groups

Azure Subscriptions

Event Hubs

Custom Topics

Azure Media

Services

Service Bus

Page 161: Azure Integration Services - .NET Framework

Manage all events in one place

Page 162: Azure Integration Services - .NET Framework

Build applications efficiently

Page 163: Azure Integration Services - .NET Framework

Ensure reliability and performance in your apps

Page 164: Azure Integration Services - .NET Framework

Benefit from broad coverage

Page 165: Azure Integration Services - .NET Framework

Scenarios

Page 166: Azure Integration Services - .NET Framework
Page 167: Azure Integration Services - .NET Framework

© Copyright Microsoft Corporation. All rights reserved.