Angewandte Serverless Microservices mit Azure Functions & Co.

Angewandte Serverless Microservices mit Azure Functions & Co.

Warum muss es "Serverless oder Microservices" sein? Es sollte vielmehr "Microservices mit Serverless" heißen! Basierend auf einigen der allgemein anerkannten Prinzipien von Microservices können wir serverlose Architekturen und Technologien verwenden, um hochfokussierte Microservices zu erstellen - nennen wir sie mal Nanoservices. Christian Weyer zeigt Ihnen einen pragmatischen Ansatz zum Erstellen von Nanoservices mit Azure Functions, Azure Service Bus, Azure Storage und weiteren Diensten & Tools. Erleben Sie Serverless Azure mit .NET Core, JavaScript und Java in bester Cross-Plattform-Manier in Aktion - jenseits der typischen Functions-as-a-Service-Beispiele.

7e0087a19318ded4ba2203187694740f?s=128

Christian Weyer

May 22, 2019
Tweet

Transcript

  1. 2.

    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 christian.weyer@thinktecture.com @christianweyer https://www.thinktecture.com Christian Weyer Mit Azure Functions & Co. Angewandte Serverless Microservices
  2. 3.

    3 § Microservices, Nanoservices § Serverless in Azure § Serverless

    Compute: Azure Functions § Serverless Messaging: Azure Service Bus § Summary Angewandte Serverless Microservices Mit Azure Functions & Co. Our Journey Today
  3. 4.

    How large is small? Microservices Mit Azure Functions & Co.

    Angewandte Serverless Microservices 4
  4. 5.

    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? Angewandte Serverless Microservices Mit Azure Functions & Co. (Some) Principles of Microservices 5
  5. 7.

    Angewandte Serverless Microservices Mit Azure Functions & Co. Sample Architecture

    – Shopping Order Monitoring 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… 7
  6. 9.

    9 § We can choose from a continuum § VM

    ➔ § Containers ➔ § Orchestrators ➔ § PaaS ➔ § Serverless Angewandte Serverless Microservices Mit Azure Functions & Co. Evolution to Cloud Compute Continuum PaaS IaaS On-Premises Serverless
  7. 10.

    10 Serverless? Programming Model (FaaS) § Event-driven § Stateless §

    Service-full Operational Model § Fully managed § Automatically scaling § Usage priced Mit Azure Functions & Co. Angewandte Serverless Microservices
  8. 11.

    11 § Serverless Compute → Azure Functions § Serverless SQL

    Database → Azure SQL Database Serverless § Serverless NoSQL 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 Angewandte Serverless Microservices Mit Azure Functions & Co. Serverless in Azure (my personal choice)
  9. 12.

    Angewandte Serverless Microservices Mit Azure Functions & Co. Sample Architecture

    – Shopping Order Monitoring: Serverless 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 12
  10. 14.

    14 § 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 § Cost-optimized, automatic scale (Consumption plan) § V2 Runtime built on .NET Core § Available for self-hosting § Local tooling & runtime § Multiple language bindings supported Angewandte Serverless Microservices Mit Azure Functions & Co. Azure Functions: Functions-as-a-Service
  11. 15.

    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 Angewandte Serverless Microservices Mit 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
  12. 16.

    16 Functions Triggers & Bindings in Code Mit Azure Functions

    & Co. Angewandte Serverless Microservices
  13. 17.

    17 § Azure Functions host instances are automatically managed §

    Spawning new instances → cold start § Reusing existing instances → warm start Angewandte Serverless Microservices Mit Azure Functions & Co. Triggers & Scalability: Cold vs. Warm Start https://azure.microsoft.com/en-us/blog/understanding-serverless-cold-start/
  14. 18.
  15. 19.

    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 Angewandte Serverless Microservices Mit Azure Functions & Co. Service Bus: Messaging-as-a-Service
  16. 20.

    20 Sender § Sender sends message to queue § Queue

    ACKs receipt § Receiver connects to queue & retrieves message § Receiver ACKs complete (or other action) Angewandte Serverless Microservices Mit Azure Functions & Co. Service Bus Queues Receiver
  17. 22.

    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 Angewandte Serverless Microservices Mit Azure Functions & Co. (Some) Principles of Microservices – with Serverless Azure 22