Slide 1

Slide 1 text

Serverless-Architekturen: Event-basierte 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 Event-basierte Microservices mit Azure Functions und Co. Serverless-Architekturen

Slide 3

Slide 3 text

3 § Microservices, Nanoservices § Serverless in Azure § Azure Functions § Azure Service Bus Serverless-Architekturen Event-basierte Microservices mit Azure Functions und Co. Topics

Slide 4

Slide 4 text

How large is small? Microservices Event-basierte Microservices mit Azure Functions und Co. Serverless-Architekturen 4

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

6 End-to-End Sample – Architecture Overview Event-basierte Microservices mit Azure Functions und Co. Serverless-Architekturen

Slide 7

Slide 7 text

7 Serverless-Architekturen Event-basierte Microservices mit Azure Functions und Co. End-to-End Sample – Architecture Overview

Slide 8

Slide 8 text

8 § Microservice: unit of independent deployment for a business domain-specific service § Nanoservice: like Microservice, but more focused & lightweight; can be coded, deployed & replaced easier § Functions as the mental model § Make things easier, get productive earlier Serverless-Architekturen Event-basierte Microservices mit Azure Functions und Co. Microservices – or rather: Nanoservices?

Slide 9

Slide 9 text

A different approach Serverless Event-basierte Microservices mit Azure Functions und Co. Serverless-Architekturen 9

Slide 10

Slide 10 text

10 § We can choose from a continuum § VM ➔ § Containers ➔ § Orchestrators ➔ § PaaS ➔ § Serverless Serverless-Architekturen Event-basierte Microservices mit Azure Functions und Co. Evolution to Cloud Compute Continuum PaaS IaaS On-Premises Serverless

Slide 11

Slide 11 text

11 Serverless Sweet Spot Programming Model (FaaS) § Event-driven § Stateless § Service-full Operational Model § Fully managed § Automatically scaling § Usage priced Event-basierte Microservices mit Azure Functions und Co. Serverless-Architekturen

Slide 12

Slide 12 text

12 § 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 Serverless-Architekturen Event-basierte Microservices mit Azure Functions und Co. Serverless in Azure

Slide 13

Slide 13 text

Azure Functions Serverless Compute Event-basierte Microservices mit Azure Functions und Co. Serverless-Architekturen 13

Slide 14

Slide 14 text

14 § Azure Functions: code being triggered by an event § 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 § Local tooling & runtime § Multiple language bindings supported Serverless-Architekturen Event-basierte Microservices mit Azure Functions und Co. Azure Functions: Functions-as-a-Service

Slide 15

Slide 15 text

15 § Incoming event triggers function § Input bindings enable easy access to data from various data sources § Output bindings offer easy access to outbound data sinks Serverless-Architekturen Event-basierte Microservices mit Azure Functions und Co. Functions Triggers & Bindings Your code logic Runtime Azure Function HTTP Trigg er Storage Input Binding Push Notification Output Binding Database Output Binding Email Output Binding Example

Slide 16

Slide 16 text

16 Functions Triggers & Bindings in Code Event-basierte Microservices mit Azure Functions und Co. Serverless-Architekturen

Slide 17

Slide 17 text

Azure Service Bus Serverless Messaging Event-basierte Microservices mit Azure Functions und Co. Serverless-Architekturen 17

Slide 18

Slide 18 text

18 § Asynchronous communication for decoupling Microservices § Different messaging services in Azure § Events, data points, messages § Event Grid § Reactive programming § Event Hubs § Big data streams § Service Bus § Enterprise-grade messaging Serverless-Architekturen Event-basierte Microservices mit Azure Functions und Co. Communication is Key to Cloud Architectures

Slide 19

Slide 19 text

19 § 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 Serverless-Architekturen Event-basierte Microservices mit Azure Functions und Co. Service Bus: Messaging-as-a-Service

Slide 20

Slide 20 text

20 Sender § Sender sends message to queue § Queue ACKs receipt § Receiver connects to queue & retrieves message § Receiver ACKs complete (or other action) Serverless-Architekturen Event-basierte Microservices mit Azure Functions und Co. Service Bus Queues Receiver

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

Summary Event-basierte Microservices mit Azure Functions und Co. Serverless-Architekturen 22

Slide 23

Slide 23 text

Serverless-Architekturen Event-basierte Microservices mit Azure Functions und Co. https://twitter.com/swardley/status/1024764547436085249 23

Slide 24

Slide 24 text

Single Responsibility § Focused around business domain § ‘Small’ unit ➡ Dedicated Azure Functions App Isolation § Choice of technology ➡ .NET, Java, node.js, Python supported § Well-defined technology-agnostic API (event-triggered) ➡ HTTPS, AMQP, MQTT, custom § Mobility ➡ Portable runtime ➡ Can use Docker with Functions Autonomy § Exclusive state (data storage) ➡ Use separate Azure Storage, Azure SQL, Azure CosmosDB instances Decoupling § Asynchronous communication (Really, always?) ➡ Azure Service Bus with queues or topics & subscriptions Serverless-Architekturen Event-basierte Microservices mit Azure Functions und Co. (Some) Principles of Microservices – with Serverless Azure 24

Slide 25

Slide 25 text

25 § 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 processing Serverless-Architekturen Event-basierte Microservices mit Azure Functions und Co. Summary – Serverless-all-the-things?

Slide 26

Slide 26 text

26 Remember: there are NO servers! https://twitter.com/jeffhollan/status/1030244102082682880 Event-basierte Microservices mit Azure Functions und Co. Serverless-Architekturen

Slide 27

Slide 27 text

Christian Weyer, Thinktecture AG @christianweyer [email protected] h9ps://github.com/thinktecture/serverless-microservices