Modern API development in a serverless world with Azure Functions BRK2234 Modern API development in a serverless world with Azure Functions Eduardo Laureano Matthew Henderson © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Eduardo Laureano Principal PM Lead @ Microsoft Azure Functions / App Service Impressed by serverless possibilities Loves programming learning process Keeps tweets at 140 chars Email: eduardo.laureano@microsoft.com Twitter: @eduardolaureano Team blog: https://aka.ms/AppServiceBlog
Matthew Henderson Senior Program Manager @ Microsoft Azure Functions / App Service Passionate about serverless applications Keeps a printed OAuth 2.0 spec on his desk Grew a beard since this photo was taken Email: matthew.henderson@microsoft.com Twitter: @mattchenderson Team blog: https://aka.ms/AppServiceBlog
Building APIs Challenges Microsoft Build 2017 7/19/2018 12:54 PM Building APIs Challenges Designing the API contract Controlling your API surface in a single place Modify requests and responses to match your backend Defining AuthN / AuthZ Implementing APIs in a serverless model © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Overview Intro to Serverless in Azure Serverless integrations 7/19/2018 12:54 PM Overview Intro to Serverless in Azure Serverless integrations API Proxies Identity Serverless API consumption © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Serverless application platform components Development Local development Monitoring IDE support Integrated DevOps Visual Debug History Platform Functions Logic apps Event Grid Developer productivity Visual designer Manage all events in one place Triggers and Bindings 100+ connectors Near real-time delivery Flexible deployment options Functions orchestration Broad coverage Analytics Database Storage IoT Security & Access Control Intelligence
by top external customer Build 2015 7/19/2018 12:54 PM >30K Active customers >100k Function apps >1 Billion Executions per day 20% Monthly customer growth 40% Monthly traffic growth >10 Billion Monthly Executions by top external customer © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Demo Logic App + Function Integration 7/19/2018 12:54 PM Demo Logic App + Function Integration Contoso Insurance: Claims auto-approver © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Scenario: SaaS Integration 7/19/2018 12:54 PM Scenario: SaaS Integration Transalta Deliver a chat bot to aid field technicians © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
? Dream Topology Bot Framework Existing Platform 7/19/2018 12:54 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
TransAlta: Final Topology 7/19/2018 12:54 PM TransAlta: Final Topology Logic Apps API Management Bot Framework Functions Existing Platform © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Transalta Scenario: Features 7/19/2018 12:54 PM Transalta Scenario: Features Logic Apps SaaS connectors Function Integration Functions Custom Business Logic Serverless A la carte billing Interchangeable back end Fast time to market © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Functions Proxies 7/19/2018 12:54 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Deployment and management isolation customers.azurewebsites.net products.azurewebsites.net orders.azurewebsites.net deployment Customers API calls Products Orders
HttpTrigger function endpoints Function app B /products Function2 /products /orders Function app A /customers Function1 Function app C /orders Function3 Key: HttpTrigger function endpoints API proxy endpoints
Demo Azure Function Proxies Static Webpage NYT Movies API /time 7/19/2018 12:54 PM Demo Azure Function Proxies Function app A Static Webpage /time Function1 / /mock NYT Movies API /movies © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
7/19/2018 12:54 PM Identity © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
App Service Authentication / Authorization Provider Web/Function App User Code App ServiceAuthN/AuthZ “Server-directed flow” Provider “Client-directed flow”
Azure AD Managed Service Identity Keep credentials out of code Auto-managed identity in Azure AD for Azure resource Use local MSI endpoint to get access tokens from Azure AD Direct authentication with services, or retrieve creds from Azure Key Vault App Service Azure Service (e.g., ARM, Key Vault) Your code 3 1 Local token service 2 Credentials Azure (inject and roll credentials)
7/19/2018 12:54 PM Easy API Export © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
OpenAPI Definition Support 7/19/2018 12:54 PM OpenAPI Definition Support Definition Quickstart Paths Verbs Security Route Parameters Integrated Development Built in visualization and testing Streamlined Export PowerApps & Flow Logic Apps Visual Studio © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Export Functions to PowerApps + Flow 7/19/2018 12:54 PM Export Functions to PowerApps + Flow Capture your function app’s OpenAPI definition Establish authentication Automatically create custom connector for PowerApps and Microsoft Flow © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Customer Success Stories
Microsoft 2016 7/19/2018 12:54 PM “We were able to move development along smoothly and cost-effectively, even when unexpected issues arose, by taking advantage of Azure capabilities” JYuki Chiba Design Leader, Advanced Solutions Group Transformed its popular IMAGE WORKS service through Azure serverless technologies. Benefits: Latency reduced by 95% Development time reduced by 75% Higher reliability Ability to add new features and releases faster and more frequently © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
7/19/2018 12:54 PM © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Roadmap Expanded Authentication Providers GA Proxies 7/19/2018 12:54 PM Roadmap Expanded Authentication Providers GA Proxies GA OpenAPI Support Additional Export Options © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Serverless growth Frameworks Triggers Connectivity Tooling .NET, Node, Python, PHP Triggers Native, 1st party, 3rd party, custom Connectivity Bindings + Connectors Tooling VS, VS Code, CLI, MacOS / Linux
Serverless Sessions at Ignite! 7/19/2018 12:54 PM Title Level Speaker Time Code Room Serverless compute explained and your options with Azure Functions, Logic Apps & more 200 Jeff Hollan Tuesday, 9/27, 9:50am THR2129 OCCC West Overview of the Microsoft Azure Serverless platform Chris Anderson Raman Sharma Tuesday, 9/26, 4:00pm BRK2237 OCCC S310 Azure Event Grid: Powering Serverless through Eventing Dan Rosanova Wednesday, 9/27, 10:45am BRK2176 A day in the life of an Azure serverless developer 300 Donna Malayeri Wednesday, 9/27, 12:30pm BRK3246 OCCC S330 Delivering simple and powerful serverless business applications Matthew Henderson Thursday, 9/28, 12:30pm BRK2180 Modern API development in a serverless world with Azure Functions Eduardo Laureano Thursday, 9/28, 3:15pm BRK2234 OCCC S210 © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
In review: session objectives and takeaways Tech Ready 15 7/19/2018 12:54 PM In review: session objectives and takeaways Benefits of Serverless API development Common Serverless API patterns How to build APIs with Azure Functions and Logic Apps Strong scenarios for Serverless APIs © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Session resources GitHub repo: github.com/Azure/Azure-Functions 7/19/2018 12:54 PM Session resources GitHub repo: github.com/Azure/Azure-Functions Twitter: @AzureFunctions, @mattchenderson, @eduardolaureano Team blog: blogs.msdn.microsoft.com/appserviceteam YouTube channel: youtube.com/AzureFunctions Discussion Alias: Azure Functions Discussions (funcdisc) Announcements: Azure Functions Announcements © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Please evaluate this session Tech Ready 15 7/19/2018 Please evaluate this session From your Please expand notes window at bottom of slide and read. Then Delete this text box. PC or tablet: visit MyIgnite https://myignite.microsoft.com/evaluations Phone: download and use the Microsoft Ignite mobile app https://aka.ms/ignite.mobileapp Your input is important! © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
7/19/2018 12:54 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.