using azure functions for integration
TRANSCRIPT
![Page 1: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/1.jpg)
PRESENTSTECHNOLOGY PARTNER
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10,
2016
Tulika Chaudharie / Harikharan Krishnaraju Escalation Engineer, Microsoft
Using Azure Functions for Integration
![Page 2: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/2.jpg)
2
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
What is Azure App Service?
![Page 3: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/3.jpg)
AzureFunctions
APIM
Notification Hubs Web
Apps
Mobile Apps
API Apps
Logic Apps
Custom AppseCommerce Digital Global Presence LOBApps
Services
App ServiceDeveloper Experience • Languages and Frameworks
• Superior DevOps• Self service supportability
Fully Managed Platform• Auto scale• OS and Framework patching• Load balancing
Enterprise Grade
• Enterprise grade SLA• Security and
Compliance• On-Premise
ConnectivityPlatform
API / Services / ISV
![Page 4: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/4.jpg)
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
Demo: Azure WebJob
4
![Page 5: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/5.jpg)
Azure FunctionsProcess events with Serverless code.
Make composing Cloud Apps insanely easyDevelop Functions in C#, Node.js, F#, Python, PHP, Batch and more Easily schedule event-driven tasks across servicesExpose Functions as HTTP API endpointsScale Functions based on customer demandEasily integrate with Logic Apps
Code Events + data
Azure Functions
AzureFunctions
![Page 6: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/6.jpg)
6
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016Azure Functions architecture
Built on top of App Service and WebJobs SDK
App Service Dynamic RuntimeHosting, CI, Deployment Slots, Remote Debugging, etc.
WebJobs CoreProgramming model, common abstractions
WebJobs ExtensionsTriggers, input and output bindings
WebJobs Script RuntimeAzure Functions Host – Dynamic Compilation, Language abstractions, etc.
Code Config
• Language RuntimeC#, Node.js, F#, PHP, etc.
![Page 7: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/7.jpg)
7
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
Dual abstraction• Serverless compute abstracts away the compute• Bindings abstract away the services you interact with
Business Logic
Serverless PaaS
Other Services
![Page 8: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/8.jpg)
8
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
• App Service offers dedicated and dynamic tiers.• Dedicated is the existing App Service plan tiers
• Basic, Standard, Premium• Pay based on # of reserved VMs• You’re responsible for scale
• Dynamic • Pay on number of executions• Platform responsible for scale
Platform and scaling
![Page 9: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/9.jpg)
9
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
Pay per execution model - two meters, three units
• Number of executions• Duration of execution x reserved memory
Dynamic Tier Pricing
![Page 10: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/10.jpg)
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
Demo: Function – Getting Started
10
![Page 11: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/11.jpg)
11
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
• Function as the unit of work• Functions are executed; they start and finish• Functions have inputs and outputs
What is the “Functions” programming model?
![Page 12: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/12.jpg)
12
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
• Functions should “do one thing”• Functions should be idempotent• Functions should finish as quickly as possible
Best practices for the “Functions” model
1
![Page 13: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/13.jpg)
13
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016Functions programming concepts
Trigger Input
OutputCode
![Page 14: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/14.jpg)
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
Demo: Storage Queue Trigger
14
![Page 15: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/15.jpg)
15
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
• GeneralizingWebJobs SDK == more freedom -> more workAzure Functions == less responsibilities -> less work
• CommonalitiesProgramming model differencesHosting model differences
WebJobs SDK vs Azure Functions
![Page 16: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/16.jpg)
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
• Both use the ”Function” oriented programming model• Both support ”bindings” for trigger/input/output• Both support WebJobs SDK extensions model• Both support external libraries being used• Both can run locally and be debugged• Both have runtime telemetry via the WebJobs
Dashboard
16
Commonalities
![Page 17: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/17.jpg)
17
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
Programming Model DifferencesWebJobs SDK
C# onlyAttributes for configuring
bindingsTraditional .NET developer
experience (Visual Studio, NuGet, MSBuild)
Many functions per classCan access and manipulate
many core SDK featuresCan’t listen for HTTP
requests*
Azure FunctionsC# & Node.js + more Config files for configuring
bindingsMore diverse development
experience (Web portal, VSCode, dynamically builds itself)
Limited access to manipulate core SDK features, but (C# only) still some access
Supports HTTP!
![Page 18: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/18.jpg)
18
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
Hosting Model Differences• WebJobs SDK
• You configure host• Build a console app which is
run
• WebJobs and Dedicated App Service plans• Runs the service in the
background of Web/Mobile/API app
• Runs any console app (not just SDK based ones)
• You manage scale
• Azure Functions• Limited control over the host• Just give it your code/config
• Function App + Dynamic App Service Plans• Function app owns the whole host,
including web frontend.• Only runs Azure Functions stuff – no
other things• Scale is managed for you
![Page 19: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/19.jpg)
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
Demo: Integration with Logic Apps
19
![Page 20: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/20.jpg)
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
Questions?
20
![Page 21: Using Azure Functions for Integration](https://reader035.vdocument.in/reader035/viewer/2022062400/586fb5db1a28abe57d8b771d/html5/thumbnails/21.jpg)
INTEGRATION DAYMICROSOFT GTSC,
BengaluruSeptember 10, 2016
Thank You!
21