This document provides an overview of serverless computing using Azure Functions. It begins with an introduction to serverless computing and what it means for servers to be fully abstracted and for scaling to be event-driven. It then discusses the value of serverless computing in terms of availability, speed, and paying only for what you use. The remainder of the document discusses Logic Apps as a serverless integration technology, provides a list of Software as a Service (SaaS) applications that can be connected in Logic Apps, and concludes with an announcement about a new pricing model for Logic Apps.
2. Dan Toomey
• Principal Consultant, Mexia
• Microsoft Azure MVP
• MCSE, MCT, MCPD, MCTS BizTalk & Azure
• Pluralsight Author
• www.mindovermessaging.com
• @daniel2me
Who Am I?
3. Jim Harrer
Principal Group Program Manager, Microsoft
Limitless Possibilities with Azure Integration Services
Acknowledgements
4. Jeff Hollan / Kevin Lam
Program Manager / Principal Program Manager- Microsoft
Azure Logic Apps – build cloud-scale integrations faster
Acknowledgements
27. GA
Performance improvements
Visual Studio 2015 tooling
Visual Studio 2017 tooling
Integration Account
Monitoring view
Diagnostic Alerts
Tracked properties
Parallel actions
EDIFACT
X12
XML transformation parameters
Service Bus batching
Designer improvements
splitOn
Native binary data handling
IP whitelisting
Regenerate access keys
Static Ips
Metadata lookup
Insert action
Table action
Connection resource picker
Multipart formdata/formencoded
Terminate with succeeded
Open Azure Function from designer
Azure Function with HTTP binding
Variables
Multiple actions in Do Until
Nested foreach
Foreach supports 100K entities
Version promotion
Date-time filter for run history
Open nested logic app from
Monitoring
India
Canada
Select action
Join action
Retry information in monitoring
28. Concurrency control
Request trigger OAuth
Draft slot
Run action
Mock Testing
Resubmit from failed action
XSLT with assemblies
JSON message handling
OMS download
Snippets
Condition builder
Configurable logic app lifetime
29. New Pricing Model
Actions Price per execution
Native Actions $0.000025
Standard Connectors $0.000125
Enterprise Connectors $0.001
39. Logic Apps and Functions in Integration
Implement and orchestrate visually
designed integration workflows
Orchestrate distributed microservices
100+ Connectors (Protocols, SaaS apps
and services, and hybrid)
B2B Integrations with AS2 and EDI
Languages supported: C#, F#, Node.js,
Php, PowerShell, Python, bash, batch.
Implement code-based microservices
Different Trigger, Input and Output
bindings
Synchronous and Asynchronous
execution
41. Deployment and management isolation
Customers
Products
Orders
API calls
customers.azurewebsites.net
products.azurewebsites.net
orders.azurewebsites.net
deployment
42. Function app A
/customer
s
Function app B
/products
Function app C
Function
3
/orders
Function
1
API proxy endpoints
HttpTrigger function endpoints
Key:
/products
/orders
Function
2
Interested in all things integration – which of course includes MS Flow
Most of these slides are taken from this presentation at Integrate 2017 USA
Most of these slides are taken from this presentation at Integrate 2017 USA
Most of these slides are taken from this presentation at Integrate 2017 USA
BYO – Data centre, or “server room”; HA?
IaaS – Rent a server
PaaS – Rent a Platform (worry about the app, not the server)
“Serverless” – just gimme the app!
Abstraction of servers
Event=driven / instant scaling
- Micro-billing
Focus on the business logic
Faster time to market
Focus on the business logic!
Lets talk about what really makes up MSFT’s Serverless platform: At the center of the Serverless platform, is our compute offerings: Azure Functions and Azure Logic Apps. Azure Functions is an event based Serverless compute experience that helps you accelerate your development. Logic Apps is a powerful workflow and orchestration tool. It enables building a Serverless app in minutes – by orchestrating multiple functions using a visual workflow tool.
Say you have your apps up and running using Serverless. Congratulations! You now need to collect intelligence from different apps across platforms to take actions upon. There are a few essential components which we think are core to building Serverless applications are:
Data/ Storage –Functions has triggers and bindings with Azure document DB and Azure Blob storage
** Triggers: Triggers are event responses used to trigger your custom code. They allow you to respond to events across the Azure platform or on premise.
** Bindings: Bindings represent the necessary meta data used to connect your code to the desired trigger or associated input or output data.
Messaging such as queues and topics using Azure Service Bus and Azure Event Hubs
Integration – that includes core LOB apps and SaaS apps integration via Azure Logic Apps.
Intelligence on data and sentiment/ predictive analysis using Cognitive services and Machine learning
Conversation as a service – how do we equip developers to build apps that offer an end-to-end experience for their end users – Azure Bot Service offers a Serverless interactive bot experience.
More, developers are spending more time writing code that allows them to add huge business impact with Serverless. MSFT offers numerous development tools such as IDE Support for Visual Studio in functions and Logic Apps, enables local development (vs web browser coding environment), visual debugging capability, all with your tools of choice.
Lastly, I also want to highlight top scenarios and use cases for Serverless:
Real-time Stream analytics: Customers can use Functions to feed real-time streams of data from application tracking into structured data and store it in SQL online.
SaaS event processing: Customers can use Functions and Logic Apps to analyze data from an excel file in Onedrive and perform validation, filtration, sorting and convert data into consumable business charts
Web app architecture: Used a lot in creating targeted marketing collaterals – when a customer clicks on a webpage, it triggers a webhook, that uses a function to create an ad that matches the customer profile and displays a completed webpage.
Real-time bot messaging: When customers send a message to a chatbox, Functions calls Cortana analytics to generate appropriate answers and sends a response back.
//from before: Customers have different paths to build a Serverless app – start by building the distributed application components using functions by leveraging the numerous templates and declarative bindings Or
Start with the workflow and orchestration of Serverless application using Azure Logic Apps. The visual designer enables developers to quickly and easily author, edit and visualize orchestration of multiple functions and workflow.
Call out that we now support SQL Triggers
Any REST API
Postman export, swagger/open api definition,
A custom Logic Apps Connector allows you to register a custom HTTP endpoint with operations that will be exposed within Azure Logic Apps", "description": "Use the Logic Apps Connector and editor to build and deploy custom APIs to be consumed within Logic Apps. These APIs can be any RESTful endpoint, including Azure Web APIs, API Management APIs, Azure Functions, and more. Once created, you can open the connector editor to describe the endpoint (via OpenAPI definition or a postman collection), configure how it will display within the Logic Apps designer, and publish the changes
Call out that we now support stored procs on-prem
Invokes Services
Managed connectors
App Service APIs
API Management
Azure Functions
Workflow
HTTP + Swagger
HTTP
Behaviors
Retry policy
Run after
Limit
Operation Options
Response
Webhook
Delay
Terminate
Message Handling
Compose
Query
Table
Request schema
Parse JSON
Xpath & XSLT
XML Validation
Flow Control
Scope
Foreach
DoUntil
Switch
Condition
Expressions & Operators
Invokes Services
Managed connectors
App Service APIs
API Management
Azure Functions
Workflow
HTTP + Swagger
HTTP
Behaviors
Retry policy
Run after
Limit
Operation Options
Response
Webhook
Delay
Terminate
Message Handling
Compose
Query
Table
Request schema
Parse JSON
Xpath & XSLT
XML Validation
Flow Control
Scope
Foreach
DoUntil
Switch
Condition
Expressions & Operators
HIPAA - Health Insurance Portability & Accountability Act with Business Associate Agreements (BAAs).
PCI DSS - Payment Card Industry Data Security Standards Level 1 version 3.1.
SOC - Service Organization Controls standards for operational security
GDPR – General Data Protection Regulation
What else
What else
Native actions 32x savings
Standard connectors 6x savings
Basic has 50 maps, 50 schemas, 2 partners, 1 agreement
As I mentioned earlier, triggers and bindings are the things that facilitate easy communication with other services. This chart shows us the triggers and bindings currently supported. As we can see, there are a number of Azure services supported here…. for Storage, Database, Messaging, Notifications and so on. In addition to those, Functions also support generic Http triggers, which means you can easily write a piece of code that can be used to respond to REST requests or requests from any service that supports webhooks. This also provides a really fast and easy mechanism for building extensions to SaaS applications. We are fully committed to making this list grow and making more check-marks appear in that table.
AK
EL
Azure Functions supports an event based on a timer using CRON job syntax. For example, you could execute code that runs every 15 minutes and cleans up a database table based on custom business logic.
Azure Functions supports triggering an event based on an activity in an Azure service. For example, you could execute serverless code that reads newly discovered test log files in an Azure Blob Storage container and transforms this into a row in an Azure SQL Database table.
Azure Functions can power a single page app. The app calls functions using the WebHook URL, saving user data and deciding what data to display. Or, you can do simple customizations, such as changing ad targeting by calling a function and passing it user profile information.
Azure Functions supports triggers based on activity in a SaaS service. For example, when a file is saved in OneDrive, this triggers a function that uses the Microsoft Graph API to modify the spreadsheet, creating additional charts and calculated data.
For example, IoT devices send messages to Azure Stream Analytics, which then calls an Azure Function to transform the message. This function processes the data and creates a new record in an Azure SQL Database.
Azure Functions can be used to customize the behavior of a bot using a WebHook. For example, you can create an Azure Function that processes a message using Cortana Analytics and call this function using Bot Framework.
OOTB Publishers + CustomCapabilities
Here are some of the key features of Azure Event Grid:
Simplicity - Point and click to aim events from your Azure resource to any event handler or endpoint.
Advanced filtering - Filter on event type or event publish path to ensure event handlers only receive relevant events.
Fan-out - Subscribe multiple endpoints to the same event to send copies of the event to as many places as needed.
Reliability - Utilize 24-hour retry with exponential backoff to ensure events are delivered.
Pay-per-event - Pay only for the amount you use Event Grid.
High throughput - Build high-volume workloads on Event Grid with support for millions of events per second.
Built-in Events - Get up and running quickly with resource-defined built-in events.
Custom Events - use Event Grid route, filter, and reliably deliver custom events in your app.
Tord Glad Nordahl : “With dynamic scale and consistent performance Azure Event grid lets you focus on your app logic rather than the infrastructure around it."
Based on Service Fabric
99.99% availability
https://docs.microsoft.com/en-us/azure/event-grid/delivery-and-retry
10 seconds
30 seconds
1 minute
5 minutes
10 minutes
30 minutes
1 hour
Event Grid adds a small randomization to all retry intervals.
Service Bus: High-value enterprise messaging - Order processing and financial transactions
Event Hubs: Big data pipeline - Telemetry and distributed data streaming
Event Grid: Reactive programming - React to status changes
West US, East US, West US 2, East US 2, West Central US, Central US, West Europe, North Europe, Southeast Asia, and East Asia with more coming soon.
Connect data sources and event handlers.
Speed automation and simplify policy enforcement.
Connect your app with other services.
In this fourth lab, we will be receiving the orders from the business customer’s topic in a new Logic App, and check the total amount of the invoice. In case the customer placed a large order (over $50000), we will create a task for one of our sales employees to contact the customer to verify the order. In case the order is correct, the invoice will be emailed to the customer. The Logic App will then call a function, in which we will check a storage table to determine how much discount the customer will be given (based on the total order amount), and finally will place a file on blob storage, which will be used by an employee to refund the customer.