Slide 1

Slide 1 text

Kaa Sörwa unn Söavis-Gschmarri – so Cloud-Gwerch hald Pragmatische Serverless Microservices mit Azure Functions & Co. 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 https://www.thinktecture.com Christian Weyer Azure Functions & Co. Pragmatische Serverless Microservices

Slide 3

Slide 3 text

3 § Microservices, Nanoservices § Serverless in Azure § Serverless Compute: Azure Functions § Serverless Messaging: Azure Service Bus § Azure Functions Extensibility § Summary Pragmatische Serverless Microservices Azure Functions & Co. Our Journey Today

Slide 4

Slide 4 text

How large is small? Microservices Azure Functions & Co. Pragmatische Serverless Microservices 4

Slide 5

Slide 5 text

Single Responsibility § Focused around business domain § ‘Small’ Isolation § Well-defined technology-agnostic API § Mobility § Choice of technology Autonomy § Exclusive state (data storage) Decoupling § Asynchronous communication § Really, always? Pragmatische Serverless Microservices Azure Functions & Co. (Some) Principles of Microservices 5

Slide 6

Slide 6 text

Pragmatische Serverless Microservices Azure Functions & Co. Sample Architecture – Shopping Order Monitoring 6 Orders Service Products Service Shipping Service AuthN Service Order Monitoring SPA Shopping Web Site (simulated by Postman) 1 - authenticate 2 - register for push 3 - send new order 5 - new order created push 6 - get updated orders 4 - processing order…

Slide 7

Slide 7 text

A different approach Serverless Azure Functions & Co. Pragmatische Serverless Microservices 7

Slide 8

Slide 8 text

8 § We can choose from a continuum § VM ➔ § Containers ➔ § Orchestrators ➔ § PaaS ➔ § Serverless Pragmatische Serverless Microservices Azure Functions & Co. Evolution to Cloud Compute Continuum PaaS IaaS On-Premises Serverless

Slide 9

Slide 9 text

9 What Do We Want – With & From Serverless? Programming Model (FaaS) § Event-driven § Stateless § Service-full Operational Model § Fully managed § Automatically scaling § Usage priced Azure Functions & Co. Pragmatische Serverless Microservices

Slide 10

Slide 10 text

10 § 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 Pragmatische Serverless Microservices Azure Functions & Co. Serverless in Azure (my personal choice)

Slide 11

Slide 11 text

Pragmatische Serverless Microservices Azure Functions & Co. Sample Architecture – Shopping Order Monitoring: Serverless 11 Orders Service Products Service Shipping Service AuthN Service Order Monitoring SPA Shopping Web Site (simulated by Postman) Azure Function App – C# Azure Function App - C# Azure Function App - JS Azure Function App - Java Azure Service Bus Azure Blob Storage Azure SignalR Service Azure Table Storage Azure Cosmos DB Identity Server

Slide 12

Slide 12 text

Azure Functions Serverless Compute Azure Functions & Co. Pragmatische Serverless Microservices 12

Slide 13

Slide 13 text

13 § Azure Functions: code being triggered by an event § Use Façade pattern for your business logic § Basic principles enable powerful use cases § Events ➔ Triggers & Bindings § Two ways of operation § Cost-optimized, automatic scale (Consumption plan) § Always-on (App Service plan) § V2 Runtime built on .NET Core § Available for self-hosting § Local tooling & runtime § Multiple language bindings supported Pragmatische Serverless Microservices Azure Functions & Co. Azure Functions: Functions-as-a-Service

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 Pragmatische Serverless Microservices Azure Functions & Co. Functions Triggers & Bindings 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 Functions Triggers & Bindings in Code Azure Functions & Co. Pragmatische Serverless Microservices

Slide 16

Slide 16 text

16 § Azure Functions host instances are automatically managed § Spawning new instances → cold start § Reusing existing instances → warm start Pragmatische Serverless Microservices Azure Functions & Co. Scalability: Cold vs. Warm Start https://azure.microsoft.com/en-us/blog/understanding-serverless-cold-start/

Slide 17

Slide 17 text

Azure Service Bus Serverless Messaging Azure Functions & Co. Pragmatische Serverless Microservices 17

Slide 18

Slide 18 text

18 § Queues & Topics § Reliable asynchronous communication § Rich features for temporal control § Routing and filtering § Transactions § Convoys & Sessions (related messages with state) § Bindings for Azure Functions available Pragmatische Serverless Microservices Azure Functions & Co. Service Bus: Messaging-as-a-Service

Slide 19

Slide 19 text

19 Sender § Sender sends message to queue § Queue ACKs receipt § Receiver connects to queue & retrieves message § Receiver ACKs complete (or other action) Pragmatische Serverless Microservices Azure Functions & Co. Service Bus Queues Receiver

Slide 20

Slide 20 text

20 § Sender only knows about Topic § Receivers only know about Subscriptions § Filters and Actions exist on Subscriptions Pragmatische Serverless Microservices Azure Functions & Co. Service Bus Topics & Subscriptions Type == ‘order‘ Sender type=quote type=order Topic Type == ‘quote‘ Filter Filter Subscrip- tion 1 Subscrip- tion 2

Slide 21

Slide 21 text

Azure Functions Extensibility Custom Bindings & Triggers Azure Functions & Co. Pragmatische Serverless Microservices 21

Slide 22

Slide 22 text

22 § Connecting your own data sources and data sinks to Azure Functions § Beyond available bindings & triggers § We can implement custom bindings § Input § Output § Triggers (with limitations) § E.g. build input binding for your own ERP system – or SQL Server § E.g. provide output binding for Web Push protocol (used in PWAs) Pragmatische Serverless Microservices Azure Functions & Co. Azure Functions Custom Bindings & Triggers

Slide 23

Slide 23 text

Summary Azure Functions & Co. Pragmatische Serverless Microservices 23

Slide 24

Slide 24 text

Single Responsibility § Focused around business domain § ‘Small’ unit ➡ Dedicated Azure Functions App ➡ Dedicated Azure DevOps Pipeline Isolation § Choice of technology ➡ .NET, Java, node.js, Python supported § Well-defined technology-agnostic APIs ➡ HTTPS, AMQP, MQTT, custom § Mobility ➡ Portable runtime ➡ Can use Docker, k8s with Functions ➡ Easily deploy & run in Cloud Autonomy § Exclusive state (data storage) ➡ Use separate Azure Storage, Azure SQL, Azure CosmosDB instances Decoupling § Asynchronous communication ➡ Azure Service Bus with queues or topics & subscriptions Pragmatische Serverless Microservices Azure Functions & Co. (Some) Principles of Microservices – with Serverless Azure 24

Slide 25

Slide 25 text

Pragmatische Serverless Microservices Azure Functions & Co. https://twitter.com/swardley/status/1024764547436085249 25

Slide 26

Slide 26 text

26 § Serverless (as FaaS) is just one option in the Cloud Continuum § Always think about the use cases and requirements § Serverless hosting model will be pre-dominant on the ‘server’ in a couple of years for many use cases § Serverless Azure tries to offer solutions in the Serverless space § Storage § Functions § Service Bus § SignalR Service & more § Azure Functions is way more than just a Web API framework – preferred for async decoupled processing Pragmatische Serverless Microservices Azure Functions & Co. Summary

Slide 27

Slide 27 text

27 Remember: there are NO servers! https://twitter.com/jeffhollan/status/1030244102082682880 Azure Functions & Co. Pragmatische Serverless Microservices

Slide 28

Slide 28 text

Chris&an Weyer, Thinktecture AG @chris&anweyer chris&[email protected] h:ps://github.com/thinktecture/serverless-microservices h:ps://github.com/thinktecture/azure-func&ons-extensibility