Serverless
Computing
Senthil Kumar Palanisamy
Evolution of Serverless Computing
Serverless Computing (FaaS)
• Function as a Service (Azure Functions)
• Platform to develop, run, and manage application
• Without the complexity of building and maintaining the
infrastructure
Similar Technologies
• AWS Lambda
• Google Cloud Functions
• Open Whisk (IBM)
Serverless Apps Lifecycle
Desig Develo Deplo Monitor
n p y
Azure Serverless Apps Design
Distributed Architecture
• Design stateless and ASync solutions to enable scaling.
• Connect with other Azure Services via triggers and bindings.
• Use Logic Apps to orchestrate workflows
• Use managed connectors to abstract calls to cloud and on-
premises services.
Cloud DevOps
• Design for automation. Use ARM templates.
• Design DevOps for the cloud: safe deployment with
test/development and production environment separation and test
on the target platform.
• Monitor the running apps with App Insights and tune for best
experience.
Triggers and Bindings
Triggers
and
Bindings
Use Bindings in Your Code
[Link]
public static class OrderHandler "bindings": [
{ {
[FunctionName("OrderWebhook")] "type": "httpTrigger",
public static async Task<HttpResponseMessage> Run( "direction": "in",
[HttpTrigger] HttpRequestMessage req, "webHookType": "genericJson",
[Queue("aievents1", Connection = "AiStorageConnection")] "name": "req"
IAsyncCollector<String> eventOutput, },
TraceWriter log) {
{ "type": "http",
[Link]($"Webhook was triggered!"); "direction": "out",
"name": "res"
string jsonContent = await },
[Link](); {
dynamic data = "type": "queue",
[Link](jsonContent); "name": "eventOutput",
"queueName": "aievents1",
await [Link](
[Link](GetLogData(data))); "connection":"AiStorageConnection",
"direction": "out"
int orderId = PlaceOrder(data); }
]
return [Link]([Link],
new {orderNumber = orderId });
}
. . .
Logic Apps Workflow Designer
Logic Apps
SaaS
• appFigures • DocuSign • Office 365 Protocols/Native
• Asana • Dropbox • Office 365 Users • HTTP, HTTPS
• Azure API • Dynamics AX Online • Office 365 Video • HTTP Webhook
Management • Dynamics CRM • OneDrive • FTP, SFTP
• Azure App Services Online • OneDrive for • SMTP
• Azure Automation • Dynamics CRM Business • RSS
Cloud APIs and platform • Azure Cognitive Face Service Bus • OneNote • Compose, Query,
API • Dynamics Financials • [Link] Parse JSON
• Supports over 125 built-in • Azure Cognitive LUIS • Dynamics Operations • Outlook Tasks • Wait
• Azure Cognitive Text • Easy Redmine • PagerDuty
connectors Analytics • Eventbrite • Pinterest
• Terminate
• Workflow
• Azure Cognitive • Facebook
• Scales to meet your needs Vision • FreshBooks
•
•
Pipedrive
Pivotal Tracker
• Enables rapid development • Azure Data Lake • Freshdesk • Power BI XML and EDI
Store • GitHub • Project Online • XML Validation
• Azure Document DB
• Extends with custom APIs and • Azure Event Hub
•
•
Gmail • Redmine • Transform XML
(+Mapper)
Google Calendar • Salesforce
Functions • Azure Functions • Google Contacts • Salesforce Chatter • Flat File Encode
• Azure Machine • Google Drive • SendGrid • Flat File Decode
Learning • Google Sheets • SharePoint Online • X12
• Azure Resource • Google Tasks • • EDIFACT
Slack
API connections Manager
• Azure Service Bus
• GoTo Meeting • SmartSheet • AS2
• GoTo Training • SparkPost • Integration Account
• Authenticate once and reuse • Azure SQL • GoTo Webinar • Stripe Artifact Lookup
• Azure Storage Blob
• Azure Storage
• Harvest • Survey Monkey Hybrid
• HelloSign • Todoist
Queues • BizTalk Server
• Infusionsoft • Toodledo
• Basecamp • File System
• JIRA • Trello
• Bing Search • IBM DB2
• Insightly • Twilio
• BitBucket • Informix
• Instagram • Twitter
• Bitly • Oracle DB
• Instapaper • Typeform
• Blogger • SharePoint Server
• MailChimp • UserVoice
• Box • SQL Server
• Mandrill • VS Team Services
• Buffer • SAP
• Medium • Webmerge
• Campfire • Websphere MQ
• Microsoft Project • Wordpress
• Chatter
Online • Wunderlist
Logic Apps Connect Everything
Develop
Desig Develo Deplo Monitor
n p y
Local Development Tooling Options
Azure Functions Core Tools
Provides the entire Functions runtime
Trigger off of Azure events and debug locally
JavaScript
Use Visual Studio Code or any Node debugger
C#
Use Visual Studio 2015 or 2017
Use class libraries with attributes in Visual Studio 2017
C# and Visual Studio
Based on class libraries
Get the full power of
IntelliSense, unit testing,
and local debugging
Use Web Jobs attributes
to define triggers and
bindings
Learn more at [Link]
Deploy
Desig Develo Deplo Monitor
n p y
Deployment Options
Resource deployment
• Azure Resource Manager (i.e. ARM)
Content deployment
• Visual Studio
• Azure CLI (Logic App)
• Azure Functions Core Tools (Function App)
• CI/CD
[Link]
d-azure-automatic
Safe deployment practices
• Use Azure Functions deployment slots for environment separation
and swap deployments
Monitor
Desig Develo Deplo Monitor
n p y
Key Scenarios for Monitoring
Alert
Monit Learn
or
Optimi
ze
Extensible Application
Performance Management
(APM)
Rich data: Metrics, Traces,
Exception tracking,
Dependencies, Page
Views, User data, custom
events
Easy to use graph/alerts,
powerful analytics portal,
integration with PowerBI
and other analytics
services
Azure Functions Runtime
Developer experience
Same consistent Programming Model
Same Azure Functions portal
Publish directly from Visual Studio tooling
Leverage triggers: timer trigger and new SQL Service Broker trigger
Administrator features
Take advantage of Azure Functions on premises
Workers can run in spare compute – i.e. desktops left on overnight
within orgs
Only provision two types of roles
Management Role – Hosts Portal, Publishing Endpoint and
Worker Role – Runs Function in Windows Server Containers
Summary
Azure offers a comprehensive Serverless Application
Platform
Azure Functions bindings and local DevEx optimize time to
market
Azure Logic Apps provide orchestration and integration
with 125+ connectors
Try Azure Functions : [Link]
Join the Azure Functions Community
[Link]
Questions
?