Slide 1

Slide 1 text

eXtreme Serverless Azure Data, Compute, Realtime - in Action! Christian Weyer @christianweyer CTO

Slide 2

Slide 2 text

2 § Founder & CTO at Thinktecture AG § Personal focus on § Mobile & web-based application architectures § Interoperability, cross-device § Pragmatic end-to-end solutions § Cloud-native & serverless architectures § Independent Microsoft Regional Director § Microsoft MVP for ASP.NET (Architecture) ASPInsider, AzureInsider § Google GDE for Web Technologies § [email protected] § ! @christianweyer Christian Weyer Data, Compute, Realtime - in Action! eXtreme Serverless Azure

Slide 3

Slide 3 text

3 § Microservices, Nanoservices § Serverless in Azure § Azure Functions § Azure Cosmos DB § Azure SignalR Service eXtreme Serverless Azure Data, Compute, Realtime - in Action! Topics

Slide 4

Slide 4 text

4 How ‘large’ is ‘small’? Microservices Data, Compute, Realtime - in Action! eXtreme Serverless Azure

Slide 5

Slide 5 text

5 § Modern business applications architectures: we strive for isolating functional services § Choice of technology, use best communication means § Microservice: unit of independent deployment for a business domain-specific service § Nanoservice: like Microservice, but more focused & lightweight; can be replaced easier § Functions as the mental model § Make things easier, get productive eXtreme Serverless Azure Data, Compute, Realtime - in Action! Microservices – or rather: Nanoservices !

Slide 6

Slide 6 text

6 A different approach Serverless Data, Compute, Realtime - in Action! eXtreme Serverless Azure

Slide 7

Slide 7 text

7 § We can choose from a continuum § VM ➔ § Containers ➔ § Orchestrators ➔ § PaaS ➔ § Serverless eXtreme Serverless Azure Data, Compute, Realtime - in Action! Evolution to Cloud Compute Continuum PaaS IaaS On-Premises Serverless

Slide 8

Slide 8 text

8 What is Serverless, anyway? Data, Compute, Realtime - in Action! eXtreme Serverless Azure

Slide 9

Slide 9 text

9 § Serverless Compute → Azure Functions § Serverless Database → Azure Cosmos DB § Serverless Storage → Azure Storage § Serverless Realtime → Azure SignalR Service § Serverless Events → Azure Event Grid § Serverless Messaging → Azure Service Bus § Serverless Workflows → Azure Logic Apps Azure Durable Functions § Serverless IoT → Azure IoT Hub § Serverless Analytics → Azure Application Insights § Serverless Containers → Azure Container Instances Data, Compute, Realtime - in Action! Serverless in Azure eXtreme Serverless Azure

Slide 10

Slide 10 text

10 eXtreme Serverless Azure Data, Compute, Realtime - in Action! There are NO servers! https://twitter.com/jeffhollan/status/1030244102082682880

Slide 11

Slide 11 text

11 eXtreme Serverless Azure Data, Compute, Realtime - in Action! Sample Architecture

Slide 12

Slide 12 text

12 Azure Functions Serverless Code / Compute Data, Compute, Realtime - in Action! eXtreme Serverless Azure

Slide 13

Slide 13 text

13 § Azure Functions is code being triggered by an event § Focused code + events § Basic principles enable powerful use cases § Events § Triggers § Bindings § Two ways of operation § Cost-optimized, automatic scale (aka Consumption Plan) § Always-on § V2 Runtime built on .NET Core § Available for e.g. self-hosting Data, Compute, Realtime - in Action! Azure Functions: Functions-as-a-Service eXtreme Serverless Azure

Slide 14

Slide 14 text

14 § Incoming event triggers function § Input bindings enable easy access to data from various data sources § Output bindings offer easy access to outbound data sinks Data, Compute, Realtime - in Action! Triggers & Bindings eXtreme Serverless Azure Your code logic Runtime Azure Function HTTP Trigger Storage Input Binding Push Notification Output Binding Database Output Binding Email Output Binding Example

Slide 15

Slide 15 text

15 Data, Compute, Realtime - in Action! Triggers & Bindings in Code eXtreme Serverless Azure

Slide 16

Slide 16 text

16 § In portal, via CLI, or in IDE § Visual Studio wizards for pre-compiled Functions § Local tooling & runtime available § Debugging locally or remote § Multiple language bindings supported § C# & C# Script (CSX) § F# § JavaScript, TypeScript (node.js) § Java (preview) Data, Compute, Realtime - in Action! Developing Functions eXtreme Serverless Azure

Slide 17

Slide 17 text

17 Data, Compute, Realtime - in Action! eXtreme Serverless Azure https://docs.microsoft.com/en-us/azure/azure-functions/functions-triggers-bindings Triggers & Bindings

Slide 18

Slide 18 text

18 Azure Cosmos DB Serverless Database Data, Compute, Realtime - in Action! eXtreme Serverless Azure

Slide 19

Slide 19 text

19 § Globally distributed, elastically scalable § Fully managed by Azure § But not yet fully automatically scaling § Pricing not (yet?) suitable for low-entry projects § Multi-model database § Key-value, document, graph ➔ NoSQL § Multiple APIs § DocumentDB, with SQL & JS APIs § MongoDB API § Cassandra API § Table Storage API § Graph Database with Gremlin API Data, Compute, Realtime - in Action! Cosmos DB: A Database with Many Faces eXtreme Serverless Azure

Slide 20

Slide 20 text

20 § Building event-driven architectures with Cosmos DB § Listening to Azure Cosmos DB collection for any changes § Inserts, updates, soft-deletes § Subscribe to collection changes § Can be used as a trigger for Azure Functions Data, Compute, Realtime - in Action! Cosmos DB Change Feed eXtreme Serverless Azure

Slide 21

Slide 21 text

21 Serverless Realtime Azure SignalR Service Data, Compute, Realtime - in Action! eXtreme Serverless Azure

Slide 22

Slide 22 text

22 § Realtime is a wanted feature nowadays § Dashboards and monitoring apps § Collaborative apps § Apps that require notifications § ASP.NET Core SignalR provides programming model for bi-directional ‘method invocation’ – via WebSockets, SSE or Long Polling § Wanted: “SignalR messaging & scale-out”-as-a-Service ➔ Azure SignalR Service § Azure Functions bindings available (in preview) eXtreme Serverless Azure Data, Compute, Realtime - in Action! Azure SignalR Service

Slide 23

Slide 23 text

23 eXtreme Serverless Azure Data, Compute, Realtime - in Action! Azure SignalR Service & Azure Functions

Slide 24

Slide 24 text

24 Summary Data, Compute, Realtime - in Action! eXtreme Serverless Azure

Slide 25

Slide 25 text

25 § Serverless is just one option in the Cloud Continuum § Always think about the use cases and requirements § Serverless will be pre-dominant on the ‘server’ in a couple of years § Event-driven thinking & modeling of services & interfaces feels like a natural approach to systems design § Serverless Azure tries to offer solutions in the Cloud Continuum § Functions § Cosmos DB § SignalR Service § Event Grid … & more § Azure Functions is way more than just a Web API framework Summary Data, Compute, Realtime - in Action! eXtreme Serverless Azure

Slide 26

Slide 26 text

26 Christian Weyer, Thinktecture AG @christianweyer [email protected] Data, Compute, Realtime - in Action! eXtreme Serverless Azure https://github.com/thinktecture/extreme-serverless-demo

Slide 27

Slide 27 text

27 § Processing 100,000 Events Per Second on Azure Functions § https://blogs.msdn.microsoft.com/appserviceteam/2017/09/19/processing- 100000-events-per-second-on-azure-functions/ § Azure Functions – Significant Improvements in HTTP Trigger Scaling § https://www.azurefromthetrenches.com/azure-functions-significant- improvements-in-http-trigger-scaling/ § Azure Functions: Cold Starts in Numbers § https://mikhail.io/2018/04/azure-functions-cold-starts-in-numbers/ eXtreme Serverless Azure Data, Compute, Realtime - in Action! Interesting reading

Slide 28

Slide 28 text

28 § Azure Functions Dependency Injection (with AutoFac) § https://github.com/introtocomputerscience/azure-function-autofac- dependency-injection eXtreme Serverless Azure Data, Compute, Realtime - in Action! Resources