Chad Green Serverless in Action CodeStock April 13, 2019
Who is Chad Green • Director of Software Development at ScholarRx • Community Involvement • Code PaLOUsa Conference Chair • Louisville .NET Meetup Organizer • Louisville Tech Leaders Meetup Co-Organizer • Louisville Tech Ladies Committee Member • Contact Information chadgreen@chadgreen.com chadgreen.com ChadGreen ChadwickEGreen
Agenda • What is Serverless Computing • Functions as a Service • Serverless Options • Azure Functions Overview • Azure Functions in Action • Pricing • Best Practices Serverless in Action 3
What is Serverless Computing Serverless in Action
The evolution of application platforms How do I deploy new code to my servers ? How can I increase server utilization? Which packages should be on my server? What size of servers should I buy? Who has physical access to my servers ? How often should I patch my servers ? It takes how long to provision a new server ? On-Premises Serverless in Action 5
The evolution of application platforms What is the right size of servers for my business needs? How can I increase server utilization? How many servers do I need? How can I scale my application? How do I deploy new code to my server ? How often should I patch my servers ? Which Operating System should I use? How often should I backup my server ? Who monitors my application? Which packages should be on my server ? IaaS On-Premises Serverless in Action 6
The evolution of application platforms What is the right size of servers for my business needs? How can I increase server utilization? How many servers do I need? How can I scale my application? PaaS On-Premises IaaS Serverless in Action 7
The evolution of application platforms The platform for next generation applications On-Premises IaaS Serverless PaaS Serverless in Action 8
What is Serverless? Abstraction of Servers Event-Driven/Instant Scale Micro-Billing Serverless in Action 9
Benefits of Serverless Manage apps not Reduced DevOps Faster Time to Market servers Serverless in Action 10
Challenges of Serverless Architecture Organizational No Runtime Complexity Support Optimization Serverless in Action 11
Function as a Service Serverless in Action
Serverless is more than just one thing Backend as a Service Functions as a Services (FaaS) (BaaS) • • Applications that significantly or fully Application run in stateless compute depend on services (in the cloud) to containers that are event-triggered, ephemeral, and fully managed by a 3 rd manage server-side logic and state party Serverless in Action 13
Function Scale Function Microservice Function Function Function Microservice Function Nano Services Monolith Function Function Microservice Function Function Microservice Function Function Serverless in Action 14
FaaS is at the center of serverless Short lived Single responsibility Stateless Event driven & scalable Functions don’t stick around when Functions don’t hold any persistent state Functions are single-purposed, reusable Functions respond to predefined events, and don’t rely on the state of any other pieces of code that process an input and finished executing, freeing up resources and are instantly replicated as many return a result for further executions processes times as needed Functions-as-a-Service programming model use functions to achieve true serverless compute Serverless in Action 15
Serverless Options Serverless in Action
Market Landscape AWS Azure Google IBM Auth0 Lambda Cloud Functions Cloud WebTask Functions Execute code on demand in a highly scalable serverless Run code without thinking about servers. Pay only for Event-driven serverless compute platform All you need is code Your vision. Your cloud. the compute time you consume. environment Serverless in Action 17
Azure Serverless Offerings Event Grid Logic Apps Functions Manage all events that Design workflows and Execute your code based can trigger code or logic orchestrate processes on events you specify Storage Database Security IoT Analytics Intelligence Serverless in Action 18
Code Events + data Azure Functions Serverless in Action
Features of Azure Functions • Choice of language Batch Serverless in Action 20
Features of Azure Functions • Choice of language • Pay-per-use pricing model Batch Serverless in Action 21 21
Features of Azure Functions • Choice of language • Pay-per-use pricing model • Bring your own dependencies Serverless in Action 22
Features of Azure Functions • Choice of language • Pay-per-use pricing model • Bring your own dependencies • Integrated security Serverless in Action 23
Features of Azure Functions • Choice of language • Pay-per-use pricing model • Bring your own dependencies • Integrated security • Simplified integration Serverless in Action 24
Features of Azure Functions • Choice of language • Pay-per-use pricing model • Bring your own dependencies • Integrated security • Simplified integration • Flexible development Serverless in Action 25
Features of Azure Functions • Choice of language • Pay-per-use pricing model • Bring your own dependencies • Integrated security • Simplified integration • Flexible development • Open-source Serverless in Action 26
Triggers and Bindings 2.x Trigger Input Output Type 1.x Blob Storage Cosmos DB Event Grid Event Hubs External File External Table HTTP Microsoft Graph Excel tables Microsoft Graph OneDrive Files Microsoft Graph Outlook email Microsoft Graph Events Microsoft Graph Auth tokens Mobile Apps Notification Hubs Queue Storage SendGrid Service Bus Table Storage Timer Twilio 27 Webhooks Serverless in Action
Develop How You Want • Azure Portal • Quickly get started without having to install anything else • Visual Studio 2017 • First class C# development experience • Visual Studio Code • First class Node.js development experience • Edit any function project generated via CLI • Azure Functions Core Tools (CLI) • Build any kind of function and edit in IDE of your choice Serverless in Action 28
Runtime Versions Runtime 1.x Runtime 2.x • • .NET Framework 4.6 .NET Core 2.0 • Cross Platform • Language Extensions • Java • Binding Extensions • Microsoft Graph • Durable Functions Serverless in Action 29
Runtime Version Languages 2.x 1.x Language C# GA (.NET Core 2) GA (.NET Framework 4.7) GA (Node 8 & 10) JavaScript GA (Node 6) GA (.NET Core 2) F# GA(.NET Framework 4.7) Preview (Java 8) Java N/A Python Preview (Python 3.6) Experimental TypeScript Experimental Supported through transpiling to JavaScript PHP N/A Experimental Batch (.cmd, .bat) N/A Experimental Bash N/A Experimental N/A PowerShell Experimental Serverless in Action 30
Consumption Plan • Pay for what you use without the need to reserve compute resources. • Function Apps are assigned to compute processing instances that are scaled dynamically by the platform. • Functions can have multiple parallel executions minimizing the total time needed to process requests. • Cost is driven by the number of executions and by accounting for memory size used and total execution time across all functions in a Function App as measured in gigabyte-seconds. Selection guidance • Good option if your functions run at elastic scale with potentially intermittent executions. Serverless in Action 31
App Service Plan • Function Apps run on dedicated VMs, just like Web Apps work today • Dedicated VMs are allocated to your apps and they are always available whether code is being actively executed or not. Selection guidance • Good option if you have existing, under-utilized VMs that are already running other code • Good option if you expect to run functions continuously or almost continuously Serverless in Action 32
Premium Plan Serverless in Action 33
Ways to Run Functions App Service App Service Azure Functions Azure IoT Edge Consumption Azure Stack Plan Environment Runtime On Devices Serverless On Premises Free, Basic, Network Isolation Functions on your Standard, Premium Server All the Your own Run your Azure Run on IoT Pay only for what Leverage cloud advantages of dedicated cloud Functions on our Devices by you use! Metering innovations in on- Functions with the environment with local server deploying custom is per execution premises SLA and ‘always network isolation (without the rest modules. and per Gb infrastructure. on’ feature of an for apps, higher of Azure) second. Azure Stack App Service Plan scale, and the brings the power ability to connect of Azure to your securely to local data centers. vNets. Serverless in Action 34
Azure Functions in Action Serverless in Action
Demo: Create an Azure Function from the Portal
Demo: Create an Azure Function from Visual Studio
Deployment and Monitoring Deployment Options Monitoring Options • • Visual Studio Azure App Insights • • Functions CLI Function Logs • • Azure DevOps Azure Monitor (preview) • Azure Resource Manager • Maven / Jenkins Serverless in Action 42
Recommend
More recommend